From abc672e3489bb30b316e786f5dfd72d82f37571b Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Thu, 23 Oct 2014 17:50:10 +0200 Subject: [PATCH 001/310] Fixes VS14 build. SqlCEHelper.cs - the compiler in Vs14 doesn't like that we're callng `public IRecordsReader ExecuteReader(string commandText, params IParameter[] parameters)` like this: `ExecuteNonQuery("alter table [" + table + "] drop constraint [" + constraint + "]");` Added two internal method overloads that just send an empty parameter array instead. --- src/umbraco.datalayer/Properties/AssemblyInfo.cs | 2 ++ src/umbraco.datalayer/SqlHelper.cs | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/umbraco.datalayer/Properties/AssemblyInfo.cs b/src/umbraco.datalayer/Properties/AssemblyInfo.cs index 7f5caaee39..2062f36415 100644 --- a/src/umbraco.datalayer/Properties/AssemblyInfo.cs +++ b/src/umbraco.datalayer/Properties/AssemblyInfo.cs @@ -25,3 +25,5 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("6210756f-436d-4536-bad3-d7b000e1694f")] + +[assembly: InternalsVisibleTo("SqlCE4Umbraco")] \ No newline at end of file diff --git a/src/umbraco.datalayer/SqlHelper.cs b/src/umbraco.datalayer/SqlHelper.cs index db5514b34c..b39c38e0b7 100644 --- a/src/umbraco.datalayer/SqlHelper.cs +++ b/src/umbraco.datalayer/SqlHelper.cs @@ -235,6 +235,11 @@ namespace umbraco.DataLayer } } + internal int ExecuteNonQuery(string commandText) + { + return ExecuteNonQuery(commandText, new P[0]); + } + /// /// Executes a command and returns a records reader containing the results. /// @@ -259,6 +264,11 @@ namespace umbraco.DataLayer } } + internal IRecordsReader ExecuteReader(string commandText) + { + return ExecuteReader(commandText, new P[0]); + } + /// /// Executes a command that returns an XML value. /// From 6c2750b0cc67d9379c95c14d244246cf97f843ad Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 24 Oct 2014 10:32:41 +0200 Subject: [PATCH 002/310] Moves fix for VS14 to the SqlCEHelper class itself, InternalsVisibleTo didn't seem to work in VS (worked on command line build though) --- src/SQLCE4Umbraco/SqlCEHelper.cs | 12 ++++++++++++ src/umbraco.datalayer/Properties/AssemblyInfo.cs | 2 -- src/umbraco.datalayer/SqlHelper.cs | 14 ++------------ 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/SQLCE4Umbraco/SqlCEHelper.cs b/src/SQLCE4Umbraco/SqlCEHelper.cs index 1787c05912..26a781360e 100644 --- a/src/SQLCE4Umbraco/SqlCEHelper.cs +++ b/src/SQLCE4Umbraco/SqlCEHelper.cs @@ -229,5 +229,17 @@ namespace SqlCE4Umbraco return new SqlCeDataReaderHelper(SqlCeApplicationBlock.ExecuteReader(ConnectionString, CommandType.Text, commandText, parameters)); } + + + internal IRecordsReader ExecuteReader(string commandText) + { + return ExecuteReader(commandText, new SqlCEParameter(string.Empty, string.Empty)); + } + + + internal int ExecuteNonQuery(string commandText) + { + return ExecuteNonQuery(commandText, new SqlCEParameter(string.Empty, string.Empty)); + } } } \ No newline at end of file diff --git a/src/umbraco.datalayer/Properties/AssemblyInfo.cs b/src/umbraco.datalayer/Properties/AssemblyInfo.cs index 2062f36415..7f5caaee39 100644 --- a/src/umbraco.datalayer/Properties/AssemblyInfo.cs +++ b/src/umbraco.datalayer/Properties/AssemblyInfo.cs @@ -25,5 +25,3 @@ using System.Runtime.InteropServices; // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("6210756f-436d-4536-bad3-d7b000e1694f")] - -[assembly: InternalsVisibleTo("SqlCE4Umbraco")] \ No newline at end of file diff --git a/src/umbraco.datalayer/SqlHelper.cs b/src/umbraco.datalayer/SqlHelper.cs index b39c38e0b7..db850e6832 100644 --- a/src/umbraco.datalayer/SqlHelper.cs +++ b/src/umbraco.datalayer/SqlHelper.cs @@ -234,12 +234,7 @@ namespace umbraco.DataLayer throw new SqlHelperException("ExecuteNonQuery", commandText, parameters, e); } } - - internal int ExecuteNonQuery(string commandText) - { - return ExecuteNonQuery(commandText, new P[0]); - } - + /// /// Executes a command and returns a records reader containing the results. /// @@ -263,12 +258,7 @@ namespace umbraco.DataLayer throw new SqlHelperException("ExecuteReader", commandText, parameters, e); } } - - internal IRecordsReader ExecuteReader(string commandText) - { - return ExecuteReader(commandText, new P[0]); - } - + /// /// Executes a command that returns an XML value. /// From 69c3962f213aa505e9dabf85dca48ff9df2bf970 Mon Sep 17 00:00:00 2001 From: Jeavon Leopold Date: Tue, 28 Oct 2014 08:46:07 +0000 Subject: [PATCH 003/310] Fix for U4-5698 - EntityService.GetObjectType throws for deleted Id's --- src/Umbraco.Core/Persistence/PetaPoco.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Umbraco.Core/Persistence/PetaPoco.cs b/src/Umbraco.Core/Persistence/PetaPoco.cs index 21f97643ec..c387373a3b 100644 --- a/src/Umbraco.Core/Persistence/PetaPoco.cs +++ b/src/Umbraco.Core/Persistence/PetaPoco.cs @@ -562,6 +562,12 @@ namespace Umbraco.Core.Persistence { object val = cmd.ExecuteScalarWithRetry(); OnExecutedCommand(cmd); + + if (val == null && typeof(T) == typeof(Guid)) + { + val = Guid.Empty; + } + return (T)Convert.ChangeType(val, typeof(T)); } } From 419531f373fdf4b1dfab2ee21fa6fc558b0c027c Mon Sep 17 00:00:00 2001 From: Jeavon Leopold Date: Fri, 31 Oct 2014 13:29:03 +0000 Subject: [PATCH 004/310] Fix for U4-5698 - using method logic from NPoco as it works :) --- src/Umbraco.Core/Persistence/PetaPoco.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Core/Persistence/PetaPoco.cs b/src/Umbraco.Core/Persistence/PetaPoco.cs index c387373a3b..8839504791 100644 --- a/src/Umbraco.Core/Persistence/PetaPoco.cs +++ b/src/Umbraco.Core/Persistence/PetaPoco.cs @@ -563,12 +563,13 @@ namespace Umbraco.Core.Persistence object val = cmd.ExecuteScalarWithRetry(); OnExecutedCommand(cmd); - if (val == null && typeof(T) == typeof(Guid)) - { - val = Guid.Empty; - } + if (val == null || val == DBNull.Value) + return default(T); - return (T)Convert.ChangeType(val, typeof(T)); + Type t = typeof(T); + Type u = Nullable.GetUnderlyingType(t); + + return (T)Convert.ChangeType(val, u ?? t); } } finally From e36dc368d9b6b2825205482d541a4a14c6a386ca Mon Sep 17 00:00:00 2001 From: Stephan Date: Fri, 14 Nov 2014 10:26:12 +0100 Subject: [PATCH 005/310] U4-5802 - fix Ancestor, AncestorOrSelf + document --- src/Umbraco.Web/PublishedContentExtensions.cs | 254 ++++++++++++------ 1 file changed, 170 insertions(+), 84 deletions(-) diff --git a/src/Umbraco.Web/PublishedContentExtensions.cs b/src/Umbraco.Web/PublishedContentExtensions.cs index c771debbad..29a96f30b0 100644 --- a/src/Umbraco.Web/PublishedContentExtensions.cs +++ b/src/Umbraco.Web/PublishedContentExtensions.cs @@ -1,7 +1,3 @@ -// ENABLE THE FIX in 7.0.0 -// TODO if all goes well, remove the obsolete code eventually -#define FIX_AXES - using System; using System.Collections.Generic; using System.Data; @@ -911,148 +907,270 @@ namespace Umbraco.Web // - the relative order of siblings is the order in which they occur in the children property of their parent node. // - children and descendants occur before following siblings. - // SO, here we want to walk up the tree. which is what AncestorOrSelf does but NOT what AncestorsOrSelf does since - // it reverses the list, so basically ancestors are NOT XPath-compliant in Umbraco at the moment -- but fixing that - // would be a breaking change. Defining FIX_AXES would fix the situation. - + /// + /// Gets the ancestors of the content. + /// + /// The content. + /// The ancestors of the content, in down-top order. + /// Does not consider the content itself. public static IEnumerable Ancestors(this IPublishedContent content) { return content.AncestorsOrSelf(false, null); } - public static IEnumerable Ancestors(this IPublishedContent content, int level) + /// + /// Gets the ancestors of the content, at a level lesser or equal to a specified level. + /// + /// The content. + /// The level. + /// The ancestors of the content, at a level lesser or equal to the specified level, in down-top order. + /// Does not consider the content itself. Only content that are "high enough" in the tree are returned. + public static IEnumerable Ancestors(this IPublishedContent content, int maxLevel) { - return content.AncestorsOrSelf(false, n => n.Level <= level); + return content.AncestorsOrSelf(false, n => n.Level <= maxLevel); } + /// + /// Gets the ancestors of the content, of a specified content type. + /// + /// The content. + /// The content type. + /// The ancestors of the content, of the specified content type, in down-top order. + /// Does not consider the content itself. Returns all ancestors, of the specified content type. public static IEnumerable Ancestors(this IPublishedContent content, string contentTypeAlias) { return content.AncestorsOrSelf(false, n => n.DocumentTypeAlias == contentTypeAlias); } + /// + /// Gets the ancestors of the content, of a specified content type. + /// + /// The content type. + /// The content. + /// The ancestors of the content, of the specified content type, in down-top order. + /// Does not consider the content itself. Returns all ancestors, of the specified content type. public static IEnumerable Ancestors(this IPublishedContent content) where T : class, IPublishedContent { return content.Ancestors().OfType(); } - public static IEnumerable Ancestors(this IPublishedContent content, int level) + /// + /// Gets the ancestors of the content, at a level lesser or equal to a specified level, and of a specified content type. + /// + /// The content type. + /// The content. + /// The level. + /// The ancestors of the content, at a level lesser or equal to the specified level, and of the specified + /// content type, in down-top order. + /// Does not consider the content itself. Only content that are "high enough" in the trees, and of the + /// specified content type, are returned. + public static IEnumerable Ancestors(this IPublishedContent content, int maxLevel) where T : class, IPublishedContent { - return content.Ancestors(level).OfType(); + return content.Ancestors(maxLevel).OfType(); } + /// + /// Gets the content and its ancestors. + /// + /// The content. + /// The content and its ancestors, in down-top order. public static IEnumerable AncestorsOrSelf(this IPublishedContent content) { return content.AncestorsOrSelf(true, null); } - public static IEnumerable AncestorsOrSelf(this IPublishedContent content, int level) + /// + /// Gets the content and its ancestors, at a level lesser or equal to a specified level. + /// + /// The content. + /// The level. + /// The content and its ancestors, at a level lesser or equal to the specified level, + /// in down-top order. + /// Only content that are "high enough" in the tree are returned. So it may or may not begin + /// with the content itself, depending on its level. + public static IEnumerable AncestorsOrSelf(this IPublishedContent content, int maxLevel) { - return content.AncestorsOrSelf(true, n => n.Level <= level); + return content.AncestorsOrSelf(true, n => n.Level <= maxLevel); } + /// + /// Gets the content and its ancestors, of a specified content type. + /// + /// The content. + /// The content type. + /// The content and its ancestors, of the specified content type, in down-top order. + /// May or may not begin with the content itself, depending on its content type. public static IEnumerable AncestorsOrSelf(this IPublishedContent content, string contentTypeAlias) { return content.AncestorsOrSelf(true, n => n.DocumentTypeAlias == contentTypeAlias); } + /// + /// Gets the content and its ancestors, of a specified content type. + /// + /// The content type. + /// The content. + /// The content and its ancestors, of the specified content type, in down-top order. + /// May or may not begin with the content itself, depending on its content type. public static IEnumerable AncestorsOrSelf(this IPublishedContent content) where T : class, IPublishedContent { return content.AncestorsOrSelf().OfType(); } - public static IEnumerable AncestorsOrSelf(this IPublishedContent content, int level) + /// + /// Gets the content and its ancestor, at a lever lesser or equal to a specified level, and of a specified content type. + /// + /// The content type. + /// The content. + /// The level. + /// The content and its ancestors, at a level lesser or equal to the specified level, and of the specified + /// content type, in down-top order. + /// May or may not begin with the content itself, depending on its level and content type. + public static IEnumerable AncestorsOrSelf(this IPublishedContent content, int maxLevel) where T : class, IPublishedContent { - return content.AncestorsOrSelf(level).OfType(); + return content.AncestorsOrSelf(maxLevel).OfType(); } + /// + /// Gets the ancestor of the content, ie its parent. + /// + /// The content. + /// The ancestor of the content. + /// This method is here for consistency purposes but does not make much sense. public static IPublishedContent Ancestor(this IPublishedContent content) { return content.Parent; } - public static IPublishedContent Ancestor(this IPublishedContent content, int level) + /// + /// Gets the nearest ancestor of the content, at a lever lesser or equal to a specified level. + /// + /// The content. + /// The level. + /// The nearest (in down-top order) ancestor of the content, at a level lesser or equal to the specified level. + /// Does not consider the content itself. May return null. + public static IPublishedContent Ancestor(this IPublishedContent content, int maxLevel) { - return content.EnumerateAncestors(false).FirstOrDefault(x => x.Level <= level); + return content.EnumerateAncestors(false).FirstOrDefault(x => x.Level <= maxLevel); } + /// + /// Gets the nearest ancestor of the content, of a specified content type. + /// + /// The content. + /// The content type alias. + /// The nearest (in down-top order) ancestor of the content, of the specified content type. + /// Does not consider the content itself. May return null. public static IPublishedContent Ancestor(this IPublishedContent content, string contentTypeAlias) { return content.EnumerateAncestors(false).FirstOrDefault(x => x.DocumentTypeAlias == contentTypeAlias); } + /// + /// Gets the nearest ancestor of the content, of a specified content type. + /// + /// The content type. + /// The content. + /// The nearest (in down-top order) ancestor of the content, of the specified content type. + /// Does not consider the content itself. May return null. public static T Ancestor(this IPublishedContent content) where T : class, IPublishedContent { - return content.Ancestor() as T; + return content.Ancestors().FirstOrDefault(); } - public static T Ancestor(this IPublishedContent content, int level) + /// + /// Gets the nearest ancestor of the content, at the specified level and of the specified content type. + /// + /// The content type. + /// The content. + /// The level. + /// The ancestor of the content, at the specified level and of the specified content type. + /// Does not consider the content itself. If the ancestor at the specified level is + /// not of the specified type, returns null. + public static T Ancestor(this IPublishedContent content, int maxLevel) where T : class, IPublishedContent { - return content.Ancestor(level) as T; + return content.Ancestors(maxLevel).FirstOrDefault(); } - // note: that one makes no sense and should return self -- but fixing that - // would be a breaking change. Defining FIX_AXES would fix the situation. + /// + /// Gets the content or its nearest ancestor. + /// + /// The content. + /// The content. + /// This method is here for consistency purposes but does not make much sense. public static IPublishedContent AncestorOrSelf(this IPublishedContent content) { -#if FIX_AXES return content; -#else - return content.EnumerateAncestors(true).FirstOrDefault(x => x.Level == 1); -#endif } - public static IPublishedContent AncestorOrSelf(this IPublishedContent content, int level) + /// + /// Gets the content or its nearest ancestor, at a lever lesser or equal to a specified level. + /// + /// The content. + /// The level. + /// The content or its nearest (in down-top order) ancestor, at a level lesser or equal to the specified level. + /// May or may not return the content itself depending on its level. May return null. + public static IPublishedContent AncestorOrSelf(this IPublishedContent content, int maxLevel) { - return content.EnumerateAncestors(true).FirstOrDefault(x => x.Level <= level); + return content.EnumerateAncestors(true).FirstOrDefault(x => x.Level <= maxLevel); } + /// + /// Gets the content or its nearest ancestor, of a specified content type. + /// + /// The content. + /// The content type. + /// The content or its nearest (in down-top order) ancestor, of the specified content type. + /// May or may not return the content itself depending on its content type. May return null. public static IPublishedContent AncestorOrSelf(this IPublishedContent content, string contentTypeAlias) { return content.EnumerateAncestors(true).FirstOrDefault(x => x.DocumentTypeAlias == contentTypeAlias); } + /// + /// Gets the content or its nearest ancestor, of a specified content type. + /// + /// The content type. + /// The content. + /// The content or its nearest (in down-top order) ancestor, of the specified content type. + /// May or may not return the content itself depending on its content type. May return null. public static T AncestorOrSelf(this IPublishedContent content) where T : class, IPublishedContent { - return content.AncestorOrSelf() as T; + return content.AncestorsOrSelf().FirstOrDefault(); } - public static T AncestorOrSelf(this IPublishedContent content, int level) + /// + /// Gets the content or its nearest ancestor, at a lever lesser or equal to a specified level, and of a specified content type. + /// + /// The content type. + /// The content. + /// The level. + /// + public static T AncestorOrSelf(this IPublishedContent content, int maxLevel) where T : class, IPublishedContent { - return content.AncestorOrSelf(level) as T; + return content.AncestorsOrSelf(maxLevel).FirstOrDefault(); } - // broken until we defined FIX_AXES internal static IEnumerable AncestorsOrSelf(this IPublishedContent content, bool orSelf, Func func) { -#if FIX_AXES - return content.EnumerateAncestors(orSelf).Where(x => func == null || func(x)); -#else - var ancestors = new List(); - - if (orSelf && (func == null || func(content))) - ancestors.Add(content); - - while (content.Level > 1) // while we have a parent, consider the parent - { - content = content.Parent; - - if ((func == null || func(content))) - ancestors.Add(content); - } - - ancestors.Reverse(); - return ancestors; -#endif + var ancestorsOrSelf = content.EnumerateAncestors(orSelf); + return func == null ? ancestorsOrSelf : ancestorsOrSelf.Where(func); } + /// + /// Enumerates ancestors of the content, bottom-up. + /// + /// The content. + /// Indicates whether the content should be included. + /// Enumerates bottom-up ie walking up the tree (parent, grand-parent, etc). internal static IEnumerable EnumerateAncestors(this IPublishedContent content, bool orSelf) { if (orSelf) yield return content; @@ -1111,10 +1229,6 @@ namespace Umbraco.Web // - every node occurs before all of its children and descendants. // - the relative order of siblings is the order in which they occur in the children property of their parent node. // - children and descendants occur before following siblings. - - // SO, here we want to implement a depth-first enumeration of children. Which is what EnumerateDescendants does, but NOT what - // DescendantsOrSelf does, so basically descendants are NOT XPath-compliant in Umbraco at the moment -- but fixing that - // would be a breaking change. Defining FIX_AXES would fix the situation. public static IEnumerable Descendants(this IPublishedContent content) { @@ -1224,24 +1338,9 @@ namespace Umbraco.Web return content.DescendantOrSelf(level) as T; } - // broken until we defined FIX_AXES internal static IEnumerable DescendantsOrSelf(this IPublishedContent content, bool orSelf, Func func) { -#if FIX_AXES return content.EnumerateDescendants(orSelf).Where(x => func == null || func(x)); -#else - var init = (orSelf && (func == null || func(content))) ? new[] { content } : new IPublishedContent[] { }; - - var descendants = init - .Union(content.Children - .FlattenList(x => x.Children) - .Where(x => func == null || func(x)) - ) - .OrderBy(x => x.Level) - .ThenBy(x => x.SortOrder); - - return descendants; -#endif } internal static IEnumerable EnumerateDescendants(this IPublishedContent content, bool orSelf) @@ -1279,9 +1378,6 @@ namespace Umbraco.Web { if (number < 0) throw new ArgumentOutOfRangeException("number", "Must be greater than, or equal to, zero."); -#if (!FIX_AXES) - number += 1; // legacy is zero-based ie zero == parent -#endif return number == 0 ? content : content.EnumerateAncestors(false).Skip(number).FirstOrDefault(); } @@ -1305,9 +1401,6 @@ namespace Umbraco.Web { if (number < 0) throw new ArgumentOutOfRangeException("number", "Must be greater than, or equal to, zero."); -#if (!FIX_AXES) - number += 1; // legacy is zero-based ie zero == first child -#endif if (number == 0) return content; content = content.Children.FirstOrDefault(); @@ -1348,9 +1441,6 @@ namespace Umbraco.Web { if (number < 0) throw new ArgumentOutOfRangeException("number", "Must be greater than, or equal to, zero."); -#if (!FIX_AXES) - number += 1; // legacy is zero-based ie zero == next, whereas zero should be current -#endif return number == 0 ? content : content.ContentSet.ElementAtOrDefault(content.GetIndex() + number); } @@ -1418,10 +1508,6 @@ namespace Umbraco.Web { if (number < 0) throw new ArgumentOutOfRangeException("number", "Must be greater than, or equal to, zero."); -#if (!FIX_AXES) - number = -number; // legacy wants negative numbers, should be positive - number += 1; // legacy is zero-based ie zero == previous, whereas zero should be current -#endif return number == 0 ? content : content.ContentSet.ElementAtOrDefault(content.GetIndex() - number); } From df0c297f55e78fd7b642103e4caba4eb8a11e0c4 Mon Sep 17 00:00:00 2001 From: yannisgu Date: Fri, 14 Nov 2014 11:16:20 +0100 Subject: [PATCH 006/310] Fix dotless reference in csproj In the packages.config the version 1.4.1 of dotless is referenced while in the csproj the version 1.4.0 was referenced. --- src/Umbraco.Web/Umbraco.Web.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 315b54da29..c197ae6852 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -113,7 +113,7 @@ ..\packages\xmlrpcnet.2.5.0\lib\net20\CookComputing.XmlRpcV2.dll - ..\packages\dotless.1.4.0.0\lib\dotless.Core.dll + ..\packages\dotless.1.4.1.0\lib\dotless.Core.dll False @@ -2160,4 +2160,4 @@ - \ No newline at end of file + From b20fc225775810aabc45559c2fc69da089d50a42 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 14 Nov 2014 16:51:38 +0100 Subject: [PATCH 007/310] U4-5814 Apply MVC 4.0.0.1 security update --- build/Build.bat | 1 + build/NuSpecs/UmbracoCms.Core.nuspec | 2 +- src/SQLCE4Umbraco/app.config | 2 +- src/Umbraco.Core/Umbraco.Core.csproj | 8 ++++---- src/Umbraco.Core/app.config | 2 +- src/Umbraco.Core/packages.config | 6 +++--- src/Umbraco.Tests/App.config | 2 +- src/Umbraco.Tests/Umbraco.Tests.csproj | 4 ++-- src/Umbraco.Tests/packages.config | 2 +- src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 4 ++-- src/Umbraco.Web.UI/packages.config | 2 +- src/Umbraco.Web.UI/web.Template.config | 6 ++++++ src/Umbraco.Web/Umbraco.Web.csproj | 4 ++-- src/Umbraco.Web/app.config | 2 +- src/Umbraco.Web/packages.config | 2 +- src/UmbracoExamine.PDF/app.config | 2 +- src/UmbracoExamine/app.config | 2 +- src/umbraco.MacroEngines/app.config | 2 +- src/umbraco.MacroEngines/packages.config | 2 +- src/umbraco.MacroEngines/umbraco.MacroEngines.csproj | 4 ++-- src/umbraco.businesslogic/app.config | 2 +- src/umbraco.businesslogic/packages.config | 2 +- src/umbraco.businesslogic/umbraco.businesslogic.csproj | 4 ++-- src/umbraco.cms/app.config | 2 +- src/umbraco.controls/app.config | 2 +- src/umbraco.datalayer/app.config | 2 +- src/umbraco.editorControls/app.config | 2 +- src/umbraco.providers/app.config | 2 +- 28 files changed, 43 insertions(+), 36 deletions(-) diff --git a/build/Build.bat b/build/Build.bat index e7ef051fb4..ed29b25d22 100644 --- a/build/Build.bat +++ b/build/Build.bat @@ -14,6 +14,7 @@ ReplaceIISExpressPortNumber.exe ..\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj %rel ECHO Installing the Microsoft.Bcl.Build package before anything else, otherwise you'd have to run build.cmd twice SET nuGetFolder=%CD%\..\src\packages\ +..\src\.nuget\NuGet.exe sources Remove -Name MyGetUmbracoCore ..\src\.nuget\NuGet.exe sources Add -Name MyGetUmbracoCore -Source https://www.myget.org/F/umbracocore/api/v2/ ..\src\.nuget\NuGet.exe install ..\src\Umbraco.Web.UI\packages.config -OutputDirectory %nuGetFolder% diff --git a/build/NuSpecs/UmbracoCms.Core.nuspec b/build/NuSpecs/UmbracoCms.Core.nuspec index a97a9eaa4a..94f69f7d4a 100644 --- a/build/NuSpecs/UmbracoCms.Core.nuspec +++ b/build/NuSpecs/UmbracoCms.Core.nuspec @@ -15,7 +15,7 @@ en-US umbraco - + diff --git a/src/SQLCE4Umbraco/app.config b/src/SQLCE4Umbraco/app.config index 8f828418f3..53f3b4c80b 100644 --- a/src/SQLCE4Umbraco/app.config +++ b/src/SQLCE4Umbraco/app.config @@ -8,7 +8,7 @@ - + diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index 796d232903..5d72a83243 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -1,4 +1,4 @@ - + Debug @@ -99,14 +99,14 @@ True ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.Helpers.dll - + True - ..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll + ..\packages\Microsoft.AspNet.Mvc.4.0.40804.0\lib\net40\System.Web.Mvc.dll True ..\packages\Microsoft.AspNet.Razor.2.0.30506.0\lib\net40\System.Web.Razor.dll - + False diff --git a/src/Umbraco.Core/app.config b/src/Umbraco.Core/app.config index 8f828418f3..53f3b4c80b 100644 --- a/src/Umbraco.Core/app.config +++ b/src/Umbraco.Core/app.config @@ -8,7 +8,7 @@ - + diff --git a/src/Umbraco.Core/packages.config b/src/Umbraco.Core/packages.config index f01b9e68ba..2c3408452d 100644 --- a/src/Umbraco.Core/packages.config +++ b/src/Umbraco.Core/packages.config @@ -1,12 +1,12 @@ - + - + - + diff --git a/src/Umbraco.Tests/App.config b/src/Umbraco.Tests/App.config index 3d35ae5c93..45a43631f7 100644 --- a/src/Umbraco.Tests/App.config +++ b/src/Umbraco.Tests/App.config @@ -100,7 +100,7 @@ - + diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 11c2021210..57858e72b7 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -128,9 +128,9 @@ ..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.30506.0\lib\net40\System.Web.Http.WebHost.dll - + True - ..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll + ..\packages\Microsoft.AspNet.Mvc.4.0.40804.0\lib\net40\System.Web.Mvc.dll True diff --git a/src/Umbraco.Tests/packages.config b/src/Umbraco.Tests/packages.config index bfd68d9902..a51bdd0072 100644 --- a/src/Umbraco.Tests/packages.config +++ b/src/Umbraco.Tests/packages.config @@ -5,7 +5,7 @@ - + diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index 4a948b43d0..abceabe607 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -230,9 +230,9 @@ ..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.30506.0\lib\net40\System.Web.Http.WebHost.dll True - + True - ..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll + ..\packages\Microsoft.AspNet.Mvc.4.0.40804.0\lib\net40\System.Web.Mvc.dll True diff --git a/src/Umbraco.Web.UI/packages.config b/src/Umbraco.Web.UI/packages.config index 25eee32251..b0a303bf2b 100644 --- a/src/Umbraco.Web.UI/packages.config +++ b/src/Umbraco.Web.UI/packages.config @@ -8,7 +8,7 @@ - + diff --git a/src/Umbraco.Web.UI/web.Template.config b/src/Umbraco.Web.UI/web.Template.config index 38e0b84ee4..912d55f2e3 100644 --- a/src/Umbraco.Web.UI/web.Template.config +++ b/src/Umbraco.Web.UI/web.Template.config @@ -118,6 +118,7 @@ + @@ -254,6 +255,11 @@ + + + + + diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 6be2973fff..ff16c46f65 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -189,9 +189,9 @@ ..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.30506.0\lib\net40\System.Web.Http.WebHost.dll - + True - ..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll + ..\packages\Microsoft.AspNet.Mvc.4.0.40804.0\lib\net40\System.Web.Mvc.dll True diff --git a/src/Umbraco.Web/app.config b/src/Umbraco.Web/app.config index 957569042f..105ebc53f3 100644 --- a/src/Umbraco.Web/app.config +++ b/src/Umbraco.Web/app.config @@ -29,7 +29,7 @@ - + diff --git a/src/Umbraco.Web/packages.config b/src/Umbraco.Web/packages.config index 30b03ca92c..7a9f1d4ab0 100644 --- a/src/Umbraco.Web/packages.config +++ b/src/Umbraco.Web/packages.config @@ -5,7 +5,7 @@ - + diff --git a/src/UmbracoExamine.PDF/app.config b/src/UmbracoExamine.PDF/app.config index b77bae14a4..3a3e923d5b 100644 --- a/src/UmbracoExamine.PDF/app.config +++ b/src/UmbracoExamine.PDF/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/UmbracoExamine/app.config b/src/UmbracoExamine/app.config index b77bae14a4..3a3e923d5b 100644 --- a/src/UmbracoExamine/app.config +++ b/src/UmbracoExamine/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/umbraco.MacroEngines/app.config b/src/umbraco.MacroEngines/app.config index 900c3903d5..d9a8025f65 100644 --- a/src/umbraco.MacroEngines/app.config +++ b/src/umbraco.MacroEngines/app.config @@ -16,7 +16,7 @@ - + diff --git a/src/umbraco.MacroEngines/packages.config b/src/umbraco.MacroEngines/packages.config index 4e08586b64..fcbf6aaa23 100644 --- a/src/umbraco.MacroEngines/packages.config +++ b/src/umbraco.MacroEngines/packages.config @@ -3,7 +3,7 @@ - + diff --git a/src/umbraco.MacroEngines/umbraco.MacroEngines.csproj b/src/umbraco.MacroEngines/umbraco.MacroEngines.csproj index d840056e4f..38cfa95a8d 100644 --- a/src/umbraco.MacroEngines/umbraco.MacroEngines.csproj +++ b/src/umbraco.MacroEngines/umbraco.MacroEngines.csproj @@ -89,9 +89,9 @@ ..\packages\Microsoft.AspNet.WebApi.WebHost.4.0.30506.0\lib\net40\System.Web.Http.WebHost.dll - + True - ..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll + ..\packages\Microsoft.AspNet.Mvc.4.0.40804.0\lib\net40\System.Web.Mvc.dll True diff --git a/src/umbraco.businesslogic/app.config b/src/umbraco.businesslogic/app.config index b77bae14a4..3a3e923d5b 100644 --- a/src/umbraco.businesslogic/app.config +++ b/src/umbraco.businesslogic/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/umbraco.businesslogic/packages.config b/src/umbraco.businesslogic/packages.config index 59350953ba..63fd1fb7c3 100644 --- a/src/umbraco.businesslogic/packages.config +++ b/src/umbraco.businesslogic/packages.config @@ -1,7 +1,7 @@  - + diff --git a/src/umbraco.businesslogic/umbraco.businesslogic.csproj b/src/umbraco.businesslogic/umbraco.businesslogic.csproj index c4c675366f..df821b90ad 100644 --- a/src/umbraco.businesslogic/umbraco.businesslogic.csproj +++ b/src/umbraco.businesslogic/umbraco.businesslogic.csproj @@ -136,9 +136,9 @@ True ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.Helpers.dll - + True - ..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll + ..\packages\Microsoft.AspNet.Mvc.4.0.40804.0\lib\net40\System.Web.Mvc.dll True diff --git a/src/umbraco.cms/app.config b/src/umbraco.cms/app.config index b77bae14a4..3a3e923d5b 100644 --- a/src/umbraco.cms/app.config +++ b/src/umbraco.cms/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/umbraco.controls/app.config b/src/umbraco.controls/app.config index b77bae14a4..3a3e923d5b 100644 --- a/src/umbraco.controls/app.config +++ b/src/umbraco.controls/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/umbraco.datalayer/app.config b/src/umbraco.datalayer/app.config index 8f828418f3..53f3b4c80b 100644 --- a/src/umbraco.datalayer/app.config +++ b/src/umbraco.datalayer/app.config @@ -8,7 +8,7 @@ - + diff --git a/src/umbraco.editorControls/app.config b/src/umbraco.editorControls/app.config index 734aeed7b8..baa57f9ff7 100644 --- a/src/umbraco.editorControls/app.config +++ b/src/umbraco.editorControls/app.config @@ -4,7 +4,7 @@ - + diff --git a/src/umbraco.providers/app.config b/src/umbraco.providers/app.config index b77bae14a4..3a3e923d5b 100644 --- a/src/umbraco.providers/app.config +++ b/src/umbraco.providers/app.config @@ -4,7 +4,7 @@ - + From e59b14b7e728d7bdb88efb4c843120ecfd46ba83 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 14 Nov 2014 17:16:33 +0100 Subject: [PATCH 008/310] Makes sure that the very first build on a fresh machine works immediately (previously you'd get an error saying that some NuGet packages were restored and you need to run the build again). --- build/Build.bat | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build/Build.bat b/build/Build.bat index e063ff4c37..c453740020 100644 --- a/build/Build.bat +++ b/build/Build.bat @@ -17,6 +17,8 @@ SET nuGetFolder=%CD%\..\src\packages\ ..\src\.nuget\NuGet.exe sources Remove -Name MyGetUmbracoCore ..\src\.nuget\NuGet.exe sources Add -Name MyGetUmbracoCore -Source https://www.myget.org/F/umbracocore/api/v2/ >NUL ..\src\.nuget\NuGet.exe install ..\src\Umbraco.Web.UI\packages.config -OutputDirectory %nuGetFolder% +..\src\.nuget\NuGet.exe install ..\src\umbraco.businesslogic\packages.config -OutputDirectory %nuGetFolder% +..\src\.nuget\NuGet.exe install ..\src\Umbraco.Core\packages.config -OutputDirectory %nuGetFolder% ECHO Removing the belle build folder to make sure everything is clean as a whistle RD ..\src\Umbraco.Web.UI.Client\build /Q /S From c0baac2b3846b4fd249a3013704f9aebea69cd2a Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Thu, 23 Oct 2014 17:08:35 +0200 Subject: [PATCH 009/310] Should fix the build for real now. Sets GenerateSerializationAssemblies to Off which then doesn't produce umbraco.XmlSerializers.dll any more. Should be safe as this is only used for updatechecker and packageinstaller. From: http://hashtagfail.com/post/5255977780/sgen-loaderexceptions-error - "Visual Studio attempts to generate a serialization assembly containing the types in your solution, to improve XmlSerializer serialization performance, should you choose to serialize your types." Conflicts: build/NuSpecs/tools/install.core.ps1 --- build/Build.proj | 3 -- build/NuSpecs/UmbracoCms.Core.nuspec | 1 - build/NuSpecs/tools/install.core.ps1 | 56 +++++++++++++++++++++++++++- src/Umbraco.Web/Umbraco.Web.csproj | 2 + 4 files changed, 56 insertions(+), 6 deletions(-) diff --git a/build/Build.proj b/build/Build.proj index d37a9b7bb9..37a73aef7f 100644 --- a/build/Build.proj +++ b/build/Build.proj @@ -252,14 +252,11 @@ - - - diff --git a/build/NuSpecs/UmbracoCms.Core.nuspec b/build/NuSpecs/UmbracoCms.Core.nuspec index 94f69f7d4a..7c994d2b5b 100644 --- a/build/NuSpecs/UmbracoCms.Core.nuspec +++ b/build/NuSpecs/UmbracoCms.Core.nuspec @@ -66,7 +66,6 @@ - diff --git a/build/NuSpecs/tools/install.core.ps1 b/build/NuSpecs/tools/install.core.ps1 index c712b363bc..79133a9f6a 100644 --- a/build/NuSpecs/tools/install.core.ps1 +++ b/build/NuSpecs/tools/install.core.ps1 @@ -10,7 +10,7 @@ if ($project) { New-Item -ItemType Directory -Force -Path $backupPath New-Item -ItemType Directory -Force -Path $copyLogsPath - # After backing up, remove all dlls from bin folder in case dll files are included in the VS project + # After backing up, remove all umbraco dlls from bin folder in case dll files are included in the VS project # See: http://issues.umbraco.org/issue/U4-4930 $umbracoBinFolder = Join-Path $projectDestinationPath "bin" if(Test-Path $umbracoBinFolder) { @@ -19,6 +19,58 @@ if ($project) { New-Item -ItemType Directory -Force -Path $umbracoBinBackupPath robocopy $umbracoBinFolder $umbracoBinBackupPath /e /LOG:$copyLogsPath\UmbracoBinBackup.log - Remove-Item $umbracoBinFolder\*.dll -Force -Confirm:$false + + # Delete files Umbraco brings in + if(Test-Path $umbracoBinFolder\businesslogic.dll) { Remove-Item $umbracoBinFolder\businesslogic.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\cms.dll) { Remove-Item $umbracoBinFolder\cms.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\controls.dll) { Remove-Item $umbracoBinFolder\controls.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\interfaces.dll) { Remove-Item $umbracoBinFolder\interfaces.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\log4net.dll) { Remove-Item $umbracoBinFolder\log4net.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\Microsoft.ApplicationBlocks.Data.dll) { Remove-Item $umbracoBinFolder\Microsoft.ApplicationBlocks.Data.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\Microsoft.Web.Helpers.dll) { Remove-Item $umbracoBinFolder\Microsoft.Web.Helpers.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\SQLCE4Umbraco.dll) { Remove-Item $umbracoBinFolder\SQLCE4Umbraco.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\System.Data.SqlServerCe.dll) { Remove-Item $umbracoBinFolder\System.Data.SqlServerCe.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\System.Data.SqlServerCe.Entity.dll) { Remove-Item $umbracoBinFolder\System.Data.SqlServerCe.Entity.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\TidyNet.dll) { Remove-Item $umbracoBinFolder\TidyNet.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\umbraco.dll) { Remove-Item $umbracoBinFolder\umbraco.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\Umbraco.Core.dll) { Remove-Item $umbracoBinFolder\Umbraco.Core.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\umbraco.DataLayer.dll) { Remove-Item $umbracoBinFolder\umbraco.DataLayer.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\umbraco.editorControls.dll) { Remove-Item $umbracoBinFolder\umbraco.editorControls.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\umbraco.MacroEngines.dll) { Remove-Item $umbracoBinFolder\umbraco.MacroEngines.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\umbraco.providers.dll) { Remove-Item $umbracoBinFolder\umbraco.providers.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\Umbraco.Web.UI.dll) { Remove-Item $umbracoBinFolder\Umbraco.Web.UI.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\UmbracoExamine.dll) { Remove-Item $umbracoBinFolder\UmbracoExamine.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\UrlRewritingNet.UrlRewriter.dll) { Remove-Item $umbracoBinFolder\UrlRewritingNet.UrlRewriter.dll -Force -Confirm:$false } + + # Delete files Umbraco depends upon + $amd64Folder = Join-Path $projectDestinationPath "bin\amd64" + if(Test-Path $amd64Folder) { Remove-Item $amd64Folder -Force -Recurse -Confirm:$false } + $x86Folder = Join-Path $projectDestinationPath "bin\x86" + if(Test-Path $x86Folder) { Remove-Item $x86Folder -Force -Recurse -Confirm:$false } + if(Test-Path $umbracoBinFolder\AutoMapper.dll) { Remove-Item $umbracoBinFolder\AutoMapper.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\AutoMapper.Net4.dll) { Remove-Item $umbracoBinFolder\AutoMapper.Net4.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\ClientDependency.Core.dll) { Remove-Item $umbracoBinFolder\ClientDependency.Core.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\ClientDependency.Core.Mvc.dll) { Remove-Item $umbracoBinFolder\ClientDependency.Core.Mvc.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\CookComputing.XmlRpcV2.dll) { Remove-Item $umbracoBinFolder\CookComputing.XmlRpcV2.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\Examine.dll) { Remove-Item $umbracoBinFolder\Examine.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\HtmlAgilityPack.dll) { Remove-Item $umbracoBinFolder\HtmlAgilityPack.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\ICSharpCode.SharpZipLib.dll) { Remove-Item $umbracoBinFolder\ICSharpCode.SharpZipLib.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\ImageProcessor.dll) { Remove-Item $umbracoBinFolder\ImageProcessor.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\ImageProcessor.Web.dll) { Remove-Item $umbracoBinFolder\ImageProcessor.Web.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\Lucene.Net.dll) { Remove-Item $umbracoBinFolder\Lucene.Net.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\Microsoft.Web.Infrastructure.dll) { Remove-Item $umbracoBinFolder\Microsoft.Web.Infrastructure.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\Microsoft.Web.Mvc.FixedDisplayModes.dll) { Remove-Item $umbracoBinFolder\Microsoft.Web.Mvc.FixedDisplayModes.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\MiniProfiler.dll) { Remove-Item $umbracoBinFolder\MiniProfiler.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\MySql.Data.dll) { Remove-Item $umbracoBinFolder\MySql.Data.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\Newtonsoft.Json.dll) { Remove-Item $umbracoBinFolder\Newtonsoft.Json.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\System.Net.Http.Formatting.dll) { Remove-Item $umbracoBinFolder\System.Net.Http.Formatting.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\System.Web.Helpers.dll) { Remove-Item $umbracoBinFolder\System.Web.Helpers.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\System.Web.Http.dll) { Remove-Item $umbracoBinFolder\System.Web.Http.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\System.Web.Http.WebHost.dll) { Remove-Item $umbracoBinFolder\System.Web.Http.WebHost.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\System.Web.Mvc.dll) { Remove-Item $umbracoBinFolder\System.Web.Mvc.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\System.Web.Razor.dll) { Remove-Item $umbracoBinFolder\System.Web.Razor.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\System.Web.WebPages.dll) { Remove-Item $umbracoBinFolder\System.Web.WebPages.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\System.Web.WebPages.Deployment.dll) { Remove-Item $umbracoBinFolder\System.Web.WebPages.Deployment.dll -Force -Confirm:$false } + if(Test-Path $umbracoBinFolder\System.Web.WebPages.Razor.dll) { Remove-Item $umbracoBinFolder\System.Web.WebPages.Razor.dll -Force -Confirm:$false } } } \ No newline at end of file diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index ff16c46f65..0d6a655573 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -65,6 +65,7 @@ prompt AllRules.ruleset false + Off bin\Release\ @@ -89,6 +90,7 @@ prompt AllRules.ruleset false + Off From 9be3bdb8a5e2e2ca0d9baf97e46f58b339f7d552 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 14 Nov 2014 17:16:33 +0100 Subject: [PATCH 010/310] Makes sure that the very first build on a fresh machine works immediately (previously you'd get an error saying that some NuGet packages were restored and you need to run the build again). --- build/Build.bat | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build/Build.bat b/build/Build.bat index ed29b25d22..5bf6f90cba 100644 --- a/build/Build.bat +++ b/build/Build.bat @@ -17,6 +17,8 @@ SET nuGetFolder=%CD%\..\src\packages\ ..\src\.nuget\NuGet.exe sources Remove -Name MyGetUmbracoCore ..\src\.nuget\NuGet.exe sources Add -Name MyGetUmbracoCore -Source https://www.myget.org/F/umbracocore/api/v2/ ..\src\.nuget\NuGet.exe install ..\src\Umbraco.Web.UI\packages.config -OutputDirectory %nuGetFolder% +..\src\.nuget\NuGet.exe install ..\src\umbraco.businesslogic\packages.config -OutputDirectory %nuGetFolder% +..\src\.nuget\NuGet.exe install ..\src\Umbraco.Core\packages.config -OutputDirectory %nuGetFolder% ECHO Removing the belle build folder to make sure everything is clean as a whistle RD ..\src\Umbraco.Web.UI.Client\build /Q /S From 5aa29cc150ce129c46fd4d799e98906e36c71a99 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Sat, 15 Nov 2014 14:04:19 +0100 Subject: [PATCH 011/310] Adds version comment to UmbracoVersion.txt and makes it possible to overrule by adding arguments to build.bat --- build/Build.bat | 42 +++++++++++++++++++++++++--------------- build/UmbracoVersion.txt | 1 + 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/build/Build.bat b/build/Build.bat index 5bf6f90cba..f120348f1d 100644 --- a/build/Build.bat +++ b/build/Build.bat @@ -2,9 +2,18 @@ IF NOT EXIST UmbracoVersion.txt ( ECHO UmbracoVersion.txt missing! GOTO :showerror -) -SET /p release= .\_BuildOutput\WebApp\App_Code\dummy.txt -echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\App_Data\dummy.txt -echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\App_Plugins\dummy.txt -echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\css\dummy.txt -echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\masterpages\dummy.txt -echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\media\dummy.txt -echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\scripts\dummy.txt -echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\usercontrols\dummy.txt -echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\Views\Partials\dummy.txt -echo This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. > .\_BuildOutput\WebApp\Views\MacroPartials\dummy.txt +SET dummytext=This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete. +ECHO %dummytext% > .\_BuildOutput\WebApp\App_Code\dummy.txt +ECHO %dummytext% > .\_BuildOutput\WebApp\App_Data\dummy.txt +ECHO %dummytext% > .\_BuildOutput\WebApp\App_Plugins\dummy.txt +ECHO %dummytext% > .\_BuildOutput\WebApp\css\dummy.txt +ECHO %dummytext% > .\_BuildOutput\WebApp\masterpages\dummy.txt +ECHO %dummytext% > .\_BuildOutput\WebApp\media\dummy.txt +ECHO %dummytext% > .\_BuildOutput\WebApp\scripts\dummy.txt +ECHO %dummytext% > .\_BuildOutput\WebApp\usercontrols\dummy.txt +ECHO %dummytext% > .\_BuildOutput\WebApp\Views\Partials\dummy.txt +ECHO %dummytext% > .\_BuildOutput\WebApp\Views\MacroPartials\dummy.txt ECHO Adding Web.config transform files to the NuGet package -ren .\_BuildOutput\WebApp\MacroScripts\Web.config Web.config.transform -ren .\_BuildOutput\WebApp\Views\Web.config Web.config.transform -ren .\_BuildOutput\WebApp\Xslt\Web.config Web.config.transform +REN .\_BuildOutput\WebApp\MacroScripts\Web.config Web.config.transform +REN .\_BuildOutput\WebApp\Views\Web.config Web.config.transform +REN .\_BuildOutput\WebApp\Xslt\Web.config Web.config.transform ECHO Packing the NuGet release files ..\src\.nuget\NuGet.exe Pack NuSpecs\UmbracoCms.Core.nuspec -Version %version% diff --git a/build/UmbracoVersion.txt b/build/UmbracoVersion.txt index cdf5fdc526..2c60a02064 100644 --- a/build/UmbracoVersion.txt +++ b/build/UmbracoVersion.txt @@ -1 +1,2 @@ +# Usage: on line 2 put the release version, on line 3 put the version comment (example: beta) 7.1.9 \ No newline at end of file From 403f64eeed4786edf2ed0d7eda864a920b945c54 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Sat, 15 Nov 2014 14:19:26 +0100 Subject: [PATCH 012/310] Only set comment to blank if there's command line arguments --- build/Build.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Build.bat b/build/Build.bat index f120348f1d..41d7088aff 100644 --- a/build/Build.bat +++ b/build/Build.bat @@ -12,7 +12,7 @@ FOR /F "skip=2 delims=" %%i IN (UmbracoVersion.txt) DO IF NOT DEFINED comment SE REM If there's arguments on the command line overrule UmbracoVersion.txt and use that as the version IF [%1] NEQ [] (SET release=%1) -IF [%2] NEQ [] (SET comment=%2) ELSE (SET "comment=") +IF [%2] NEQ [] (SET comment=%2) ELSE (IF [%1] NEQ [] (SET "comment=")) SET version=%release% From 8862b99e6aa679749d96e551132abe23bda13499 Mon Sep 17 00:00:00 2001 From: AndyButland Date: Sun, 16 Nov 2014 21:44:08 +0100 Subject: [PATCH 013/310] Added css style to ensure embedded items don't take up more width than the column they are within when editing --- src/Umbraco.Web.UI.Client/src/less/gridview.less | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/gridview.less b/src/Umbraco.Web.UI.Client/src/less/gridview.less index f9724fa974..7f4c938b64 100644 --- a/src/Umbraco.Web.UI.Client/src/less/gridview.less +++ b/src/Umbraco.Web.UI.Client/src/less/gridview.less @@ -330,7 +330,9 @@ min-height:60px; } - + .usky-grid .usky-cell-embed iframe { + width: 100%; +} // ICONS // ------------------------- From dfdf85fc0badbce23f64d5a7ad8515a81f440acf Mon Sep 17 00:00:00 2001 From: AndyButland Date: Sun, 16 Nov 2014 22:12:21 +0100 Subject: [PATCH 014/310] Fixed filter that was returning all nodes for list view display of recycle bin --- src/Umbraco.Core/Services/ContentService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Core/Services/ContentService.cs b/src/Umbraco.Core/Services/ContentService.cs index 00dd4ddb0e..421beacbf7 100644 --- a/src/Umbraco.Core/Services/ContentService.cs +++ b/src/Umbraco.Core/Services/ContentService.cs @@ -507,7 +507,7 @@ namespace Umbraco.Core.Services var query = Query.Builder; //if the id is -1, then just get all - if (id > 0) + if (id != -1) { query.Where(x => x.ParentId == id); } @@ -537,7 +537,7 @@ namespace Umbraco.Core.Services var query = Query.Builder; //if the id is -1, then just get all - if (id > 0) + if (id != -1) { query.Where(x => x.Path.SqlContains(string.Format(",{0},", id), TextColumnType.NVarchar)); } From 47a78c1bcb6e31c6501898bf0ce483558200124c Mon Sep 17 00:00:00 2001 From: AndyButland Date: Sun, 16 Nov 2014 23:53:36 +0100 Subject: [PATCH 015/310] Applied required setting for text field client-side validation to handle both native and custom properties --- .../src/views/propertyeditors/textbox/textbox.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/textbox/textbox.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/textbox/textbox.html index b2c57b4737..30286fa982 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/textbox/textbox.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/textbox/textbox.html @@ -2,7 +2,7 @@ Required From d61d6008da2ecef2bbc83e002ee9c0d74fd1e0ba Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 17 Nov 2014 18:00:51 +1100 Subject: [PATCH 016/310] Adds internal event for when a package is installed which gives access to the InstalledPackage instance which contains a PackageInstance reference that contains all of the files installed in the package --- .../businesslogic/Packager/Installer.cs | 70 +++++++++++-------- 1 file changed, 41 insertions(+), 29 deletions(-) diff --git a/src/umbraco.cms/businesslogic/Packager/Installer.cs b/src/umbraco.cms/businesslogic/Packager/Installer.cs index 49541df9b3..dfb76d1f7c 100644 --- a/src/umbraco.cms/businesslogic/Packager/Installer.cs +++ b/src/umbraco.cms/businesslogic/Packager/Installer.cs @@ -76,7 +76,7 @@ namespace umbraco.cms.businesslogic.packager /// Indicates that the package contains legacy property editors /// public bool ContainsLegacyPropertyEditors { get; private set; } - + public bool ContainsStyleSheeConflicts { get; private set; } public IDictionary ConflictingStyleSheetNames { get { return _conflictingStyleSheetNames; } } @@ -138,7 +138,7 @@ namespace umbraco.cms.businesslogic.packager } #region Public Methods - + /// /// Imports the specified package /// @@ -175,7 +175,7 @@ namespace umbraco.cms.businesslogic.packager return tempDir; } } - + public int CreateManifest(string tempDir, string guid, string repoGuid) { //This is the new improved install rutine, which chops up the process into 3 steps, creating the manifest, moving files, and finally handling umb objects @@ -256,14 +256,16 @@ namespace umbraco.cms.businesslogic.packager } catch (Exception ex) { - LogHelper.Error("Package install error", ex); + LogHelper.Error("Package install error", ex); } } insPack.Save(); + + } } - + public void InstallBusinessLogic(int packageId, string tempDir) { using (DisposableTimer.DebugDuration( @@ -292,7 +294,7 @@ namespace umbraco.cms.businesslogic.packager #region DataTypes var dataTypeElement = rootElement.Descendants("DataTypes").FirstOrDefault(); - if(dataTypeElement != null) + if (dataTypeElement != null) { var dataTypeDefinitions = packagingService.ImportDataTypeDefinitions(dataTypeElement, currentUser.Id); foreach (var dataTypeDefinition in dataTypeDefinitions) @@ -309,7 +311,7 @@ namespace umbraco.cms.businesslogic.packager var insertedLanguages = packagingService.ImportLanguages(languageItemsElement); insPack.Data.Languages.AddRange(insertedLanguages.Select(l => l.Id.ToString())); } - + #endregion #region Dictionary items @@ -335,7 +337,7 @@ namespace umbraco.cms.businesslogic.packager //if (saveNeeded) { insPack.Save(); saveNeeded = false; } #endregion - + #region Templates var templateElement = rootElement.Descendants("Templates").FirstOrDefault(); if (templateElement != null) @@ -404,7 +406,7 @@ namespace umbraco.cms.businesslogic.packager if (alias.IsNullOrWhiteSpace() == false) { - PackageAction.RunPackageAction(insPack.Data.Name, alias, n); + PackageAction.RunPackageAction(insPack.Data.Name, alias, n); } } } @@ -416,22 +418,24 @@ namespace umbraco.cms.businesslogic.packager new ApplicationTreeRegistrar(); insPack.Save(); + + OnPackageBusinessLogicInstalled(insPack); } } - /// - /// Remove the temp installation folder - /// - /// - /// + /// + /// Remove the temp installation folder + /// + /// + /// public void InstallCleanUp(int packageId, string tempDir) { - if (Directory.Exists(tempDir)) - { - Directory.Delete(tempDir, true); - } + if (Directory.Exists(tempDir)) + { + Directory.Delete(tempDir, true); + } } - + /// /// Reads the configuration of the package from the configuration xmldocument /// @@ -466,10 +470,10 @@ namespace umbraco.cms.businesslogic.packager { badFile = true; } - + if (destPath.ToLower().Contains(IOHelper.DirSepChar + "bin")) { - badFile = true; + badFile = true; } if (destFile.ToLower().EndsWith(".dll")) @@ -514,9 +518,9 @@ namespace umbraco.cms.businesslogic.packager ContainsMacroConflict = true; if (_conflictingMacroAliases.ContainsKey(m.Name) == false) { - _conflictingMacroAliases.Add(m.Name, alias); + _conflictingMacroAliases.Add(m.Name, alias); } - } + } } } @@ -548,8 +552,8 @@ namespace umbraco.cms.businesslogic.packager ContainsStyleSheeConflicts = true; if (_conflictingStyleSheetNames.ContainsKey(s.Text) == false) { - _conflictingStyleSheetNames.Add(s.Text, alias); - } + _conflictingStyleSheetNames.Add(s.Text, alias); + } } } } @@ -566,7 +570,7 @@ namespace umbraco.cms.businesslogic.packager } catch { } } - + /// /// This uses the old method of fetching and only supports the packages.umbraco.org repository. /// @@ -586,9 +590,9 @@ namespace umbraco.cms.businesslogic.packager return "packages\\" + Package + ".umb"; } - + #endregion - + #region Private Methods /// @@ -655,7 +659,7 @@ namespace umbraco.cms.businesslogic.packager string tempDir = IOHelper.MapPath(SystemDirectories.Data) + Path.DirectorySeparatorChar + packageId.ToString(); //clear the directory if it exists if (Directory.Exists(tempDir)) Directory.Delete(tempDir, true); - Directory.CreateDirectory(tempDir); + Directory.CreateDirectory(tempDir); var s = new ZipInputStream(File.OpenRead(zipName)); @@ -697,5 +701,13 @@ namespace umbraco.cms.businesslogic.packager } #endregion + + internal static event EventHandler PackageBusinessLogicInstalled; + + private static void OnPackageBusinessLogicInstalled(InstalledPackage e) + { + EventHandler handler = PackageBusinessLogicInstalled; + if (handler != null) handler(null, e); + } } } From eb4076399e2076f19b56b38723173f13dd52e436 Mon Sep 17 00:00:00 2001 From: jforage Date: Mon, 17 Nov 2014 13:24:58 +0000 Subject: [PATCH 017/310] Fix to issue U4-5758. Branched off from 7.2.0 --- .../DataTypeDefinitionRepository.cs | 74 +++++++++++-------- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs b/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs index 017bb3aeea..f67224f85a 100644 --- a/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs @@ -369,37 +369,53 @@ AND umbracoNode.id <> @id", } var sortOrder = 1; + var newAlias = 0; - foreach (var pre in values) - { - var existing = existingByIds.FirstOrDefault(valueDto => valueDto.Id == pre.Value.Id); - if (existing != null) - { - existing.Value = pre.Value.Value; - existing.SortOrder = sortOrder; - _preValRepository.AddOrUpdate(new PreValueEntity - { - //setting an id will update it - Id = existing.Id, - Alias = existing.Alias, - SortOrder = existing.SortOrder, - Value = existing.Value, - DataType = dataType, - }); - } - else - { - _preValRepository.AddOrUpdate(new PreValueEntity - { - Alias = pre.Key, - SortOrder = sortOrder, - Value = pre.Value.Value, - DataType = dataType, - }); - } + foreach (var pre in values) + { + var existing = existingByIds.FirstOrDefault(valueDto => valueDto.Id == pre.Value.Id); + if (existing != null) + { + existing.Value = pre.Value.Value; + existing.SortOrder = sortOrder; + _preValRepository.AddOrUpdate(new PreValueEntity + { + //setting an id will update it + Id = existing.Id, + Alias = existing.Alias, + SortOrder = existing.SortOrder, + Value = existing.Value, + DataType = dataType, + }); + } + else + { + // adding new prevalue so make sure our alias is unique by adding 1 to the largest existing (or newly added already within this batch) + if (newAlias > 0) + { + newAlias++; + } + else + { + newAlias = + Database.ExecuteScalar( + "SELECT (coalesce(max(alias), 0) + 1) " + + "FROM cmsDataTypePreValues " + + "WHERE datatypeNodeId = @datatypeNodeId", + new { datatypeNodeId = dataType.Id }); + } - sortOrder++; - } + _preValRepository.AddOrUpdate(new PreValueEntity + { + Alias = Convert.ToString(newAlias), + SortOrder = sortOrder, + Value = pre.Value.Value, + DataType = dataType, + }); + } + + sortOrder++; + } } From 168893a8882053b01a83159b8b28e4a8d009a61e Mon Sep 17 00:00:00 2001 From: per ploug Date: Mon, 17 Nov 2014 20:46:30 +0100 Subject: [PATCH 018/310] Fixes issues with image directives Didnt work properly outside property editor --- .../src/common/directives/imaging/umbimagegravity.directive.js | 2 ++ .../common/directives/imaging/umbimagethumbnail.directive.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/imaging/umbimagegravity.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/imaging/umbimagegravity.directive.js index 2e05e662ad..3de777cee9 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/imaging/umbimagegravity.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/imaging/umbimagegravity.directive.js @@ -49,6 +49,8 @@ angular.module("umbraco.directives") if(scope.center){ scope.dimensions.left = scope.center.left * scope.dimensions.width -10; scope.dimensions.top = scope.center.top * scope.dimensions.height -10; + }else{ + scope.center = { left: 0.5, top: 0.5 }; } }; diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/imaging/umbimagethumbnail.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/imaging/umbimagethumbnail.directive.js index 650597e32f..803ab278d0 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/imaging/umbimagethumbnail.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/imaging/umbimagethumbnail.directive.js @@ -44,7 +44,7 @@ angular.module("umbraco.directives") scope.height, scope.maxSize, scope.maxSize, - true); + false); //so if we have a max size, override the thumb sizes scope.width = ratioCalculation.width; From 3c8be919da506aaa26e836d4661db6d0dd984e8b Mon Sep 17 00:00:00 2001 From: per ploug Date: Mon, 17 Nov 2014 20:47:22 +0100 Subject: [PATCH 019/310] Fixes U4-5824 Grid editor lacks localized labels --- .../propertyeditors/grid/dialogs/additem.html | 2 +- .../grid/dialogs/layoutconfig.html | 12 +- .../grid/dialogs/rowconfig.html | 10 +- .../src/views/propertyeditors/grid/grid.html | 15 +- .../propertyeditors/grid/grid.prevalues.html | 197 +++++------------- src/Umbraco.Web.UI/umbraco/config/lang/en.xml | 33 +++ 6 files changed, 109 insertions(+), 160 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/additem.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/additem.html index dec1d8a3bc..d945aa5a26 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/additem.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/additem.html @@ -2,7 +2,7 @@ ng-style="overlayMenu.style" delayed-mouseleave="closeItemOverlay()"> -
Insert control
+
@@ -91,7 +91,7 @@
{{row.name}}
- {{row.areas.length}} configurable cells
+ {{row.areas.length}} cells
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/rowconfig.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/rowconfig.html index 38ead7b06d..855025dc33 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/rowconfig.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/rowconfig.html @@ -3,10 +3,10 @@ ng-controller="Umbraco.PropertyEditors.GridPrevalueEditor.RowConfigController">
/// The version comment. - public static string CurrentComment { get { return "RC"; } } + public static string CurrentComment { get { return ""; } } // Get the version of the umbraco.dll by looking at a class in that dll // Had to do it like this due to medium trust issues, see: http://haacked.com/archive/2010/11/04/assembly-location-and-medium-trust.aspx From 98d72da622011bd0fcf99cf8cb3a292e385b2470 Mon Sep 17 00:00:00 2001 From: per ploug Date: Wed, 3 Dec 2014 10:33:52 +0100 Subject: [PATCH 134/310] Removes .Syntax from grid macro editor This is never used and should not be stored --- .../views/propertyeditors/grid/editors/macro.controller.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/macro.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/macro.controller.js index 7211738732..e9eef022e7 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/macro.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/macro.controller.js @@ -11,14 +11,12 @@ angular.module("umbraco") macroData: $scope.control.value }, callback: function (data) { - $scope.control.value = { - syntax: data.syntax, macroAlias: data.macroAlias, macroParamsDictionary: data.macroParamsDictionary }; - $scope.setPreview(data); + $scope.setPreview($scope.control.value ); } }); }; @@ -40,8 +38,7 @@ angular.module("umbraco") if($scope.control.$initializing){ $scope.setMacro(); }else if($scope.control.value){ - var parsed = macroService.parseMacroSyntax($scope.control.value.syntax); - $scope.setPreview(parsed); + $scope.setPreview($scope.control.value); } }, 200); }); From 6555fd57917f11d33caa886c75d77286d6c5c77b Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 3 Dec 2014 21:06:01 +1100 Subject: [PATCH 135/310] Updated U4-4049 - we now use media formatters instead of IModelBinder (this is actually the preferred way anyways). The validation is then moved to just a filter instead of done in the model binder. This way a media formatter is pure async, so we can ReadFromStreamAsync in a completely native async operation which should hopefuly fix this issue. --- ...terAllowedOutgoingContentAttributeTests.cs | 1 + src/Umbraco.Web/Editors/ContentController.cs | 8 +- .../Editors/ContentModelValidationFilter.cs | 106 +++++ src/Umbraco.Web/Editors/DataTypeController.cs | 1 - .../Filters}/ContentItemBaseBinder.cs | 378 ++++++++--------- .../Filters/ContentItemBaseFormatter.cs | 143 +++++++ .../Filters/ContentItemFormatter.cs} | 89 ++-- ...entModelFormatterConfigurationAttribute.cs | 29 ++ .../Filters/ContentValidationHelper.cs} | 318 +++++++------- .../FilterAllowedOutgoingContentAttribute.cs | 201 +++++---- .../FilterAllowedOutgoingMediaAttribute.cs | 3 +- .../Filters/MediaItemFormatter.cs} | 88 ++-- .../Filters/MemberFormatter.cs} | 394 ++++++++---------- .../Editors/Filters/MemberValidationHelper.cs | 27 ++ src/Umbraco.Web/Editors/MediaController.cs | 8 +- .../Editors/MediaPostValidateAttribute.cs | 1 + src/Umbraco.Web/Editors/MemberController.cs | 8 +- src/Umbraco.Web/Umbraco.Web.csproj | 18 +- 18 files changed, 1037 insertions(+), 784 deletions(-) create mode 100644 src/Umbraco.Web/Editors/ContentModelValidationFilter.cs rename src/Umbraco.Web/{WebApi/Binders => Editors/Filters}/ContentItemBaseBinder.cs (86%) create mode 100644 src/Umbraco.Web/Editors/Filters/ContentItemBaseFormatter.cs rename src/Umbraco.Web/{WebApi/Binders/ContentItemBinder.cs => Editors/Filters/ContentItemFormatter.cs} (71%) create mode 100644 src/Umbraco.Web/Editors/Filters/ContentModelFormatterConfigurationAttribute.cs rename src/Umbraco.Web/{WebApi/Filters/ContentItemValidationHelper.cs => Editors/Filters/ContentValidationHelper.cs} (87%) rename src/Umbraco.Web/{WebApi => Editors}/Filters/FilterAllowedOutgoingContentAttribute.cs (95%) rename src/Umbraco.Web/{WebApi => Editors}/Filters/FilterAllowedOutgoingMediaAttribute.cs (98%) rename src/Umbraco.Web/{WebApi/Binders/MediaItemBinder.cs => Editors/Filters/MediaItemFormatter.cs} (74%) rename src/Umbraco.Web/{WebApi/Binders/MemberBinder.cs => Editors/Filters/MemberFormatter.cs} (82%) create mode 100644 src/Umbraco.Web/Editors/Filters/MemberValidationHelper.cs diff --git a/src/Umbraco.Tests/Controllers/WebApiEditors/FilterAllowedOutgoingContentAttributeTests.cs b/src/Umbraco.Tests/Controllers/WebApiEditors/FilterAllowedOutgoingContentAttributeTests.cs index c0076f17fb..777055dd2d 100644 --- a/src/Umbraco.Tests/Controllers/WebApiEditors/FilterAllowedOutgoingContentAttributeTests.cs +++ b/src/Umbraco.Tests/Controllers/WebApiEditors/FilterAllowedOutgoingContentAttributeTests.cs @@ -8,6 +8,7 @@ using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Models.Membership; using Umbraco.Core.Services; +using Umbraco.Web.Editors.Filters; using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.WebApi.Filters; diff --git a/src/Umbraco.Web/Editors/ContentController.cs b/src/Umbraco.Web/Editors/ContentController.cs index d52a65fcb3..63517b53cf 100644 --- a/src/Umbraco.Web/Editors/ContentController.cs +++ b/src/Umbraco.Web/Editors/ContentController.cs @@ -16,13 +16,13 @@ using Umbraco.Core.Models.Membership; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Publishing; using Umbraco.Core.Services; +using Umbraco.Web.Editors.Filters; using Umbraco.Web.Models; using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Models.Mapping; using Umbraco.Web.Mvc; using Umbraco.Web.Security; using Umbraco.Web.WebApi; -using Umbraco.Web.WebApi.Binders; using Umbraco.Web.WebApi.Filters; using umbraco; using Umbraco.Core.Models; @@ -43,6 +43,7 @@ namespace Umbraco.Web.Editors /// [PluginController("UmbracoApi")] [UmbracoApplicationAuthorizeAttribute(Constants.Applications.Content)] + [ContentModelFormatterConfiguration(typeof(ContentItemFormatter))] public class ContentController : ContentControllerBase { /// @@ -199,9 +200,8 @@ namespace Umbraco.Web.Editors /// [FileUploadCleanupFilter] [ContentPostValidate] - public ContentItemDisplay PostSave( - [ModelBinder(typeof(ContentItemBinder))] - ContentItemSave contentItem) + [ContentModelValidationFilter(typeof(ContentItemSave), typeof(IContent))] + public ContentItemDisplay PostSave(ContentItemSave contentItem) { //If we've reached here it means: // * Our model has been bound diff --git a/src/Umbraco.Web/Editors/ContentModelValidationFilter.cs b/src/Umbraco.Web/Editors/ContentModelValidationFilter.cs new file mode 100644 index 0000000000..69e8c32cba --- /dev/null +++ b/src/Umbraco.Web/Editors/ContentModelValidationFilter.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Concurrent; +using System.Reflection; +using System.Web.Http.Controllers; +using System.Web.Http.Filters; +using Umbraco.Core; +using Umbraco.Core.Models; +using Umbraco.Web.Editors.Filters; +using Umbraco.Web.Models.ContentEditing; +using Umbraco.Web.WebApi.Filters; + +namespace Umbraco.Web.Editors +{ + /// + /// This filter is used on all PostSave methods for Content, Media and Members. It's purpose is to instantiate a new instance of + /// ContentItemValidationHelper{TPersisted, TModelSave} which is used to validate the content properties of these entity types. + /// This filter is then executed after the model is bound but before the action is executed. + /// + internal sealed class ContentModelValidationFilter : ActionFilterAttribute + { + private readonly Type _customValidationHelperType; + private readonly Type _contentItemSaveType; + private readonly Type _contentPersistedType; + + private static readonly ConcurrentDictionary, ValidationHelperReflectedType> ReflectionCache = new ConcurrentDictionary, ValidationHelperReflectedType>(); + + /// + /// Constructor accepting a custom instance of a ContentItemValidationHelper{TPersisted, TModelSave} + /// + /// + public ContentModelValidationFilter(Type customValidationHelperType) + { + if (customValidationHelperType == null) throw new ArgumentNullException("customValidationHelperType"); + _customValidationHelperType = customValidationHelperType; + } + + /// + /// Constructor accepting the types required to create an instance of the desired ContentItemValidationHelper{TPersisted, TModelSave} + /// + /// + /// + public ContentModelValidationFilter(Type contentItemSaveType, Type contentPersistedType) + { + if (contentItemSaveType == null) + throw new ArgumentNullException("contentItemSaveType"); + if (contentPersistedType == null) + throw new ArgumentNullException("contentPersistedType"); + if (TypeHelper.IsTypeAssignableFrom(contentItemSaveType) == false) + throw new ArgumentException("Invalid base type", "contentItemSaveType"); + if (TypeHelper.IsTypeAssignableFrom(contentPersistedType) == false) + throw new ArgumentException("Invalid base type", "contentPersistedType"); + + _contentItemSaveType = contentItemSaveType; + _contentPersistedType = contentPersistedType; + } + + /// + /// Occurs before the action method is invoked. + /// + /// The action context. + public override void OnActionExecuting(HttpActionContext actionContext) + { + var contentItem = actionContext.ActionArguments["contentItem"]; + + //NOTE: This will be an instance of ContentItemValidationHelper + object validator; + MethodInfo validateMethod; + if (_customValidationHelperType != null) + { + //Get the validator for this generic type + validator = Activator.CreateInstance(_customValidationHelperType); + validateMethod = _customValidationHelperType.GetMethod("ValidateItem"); + } + else + { + var reflectedInfo = ReflectionCache.GetOrAdd(new Tuple(_contentItemSaveType, _contentPersistedType), + tuple => + { + var validationHelperGenericType = typeof(ContentValidationHelper<,>); + var realType = validationHelperGenericType.MakeGenericType(_contentPersistedType, _contentItemSaveType); + return new ValidationHelperReflectedType + { + RealType = realType, + ValidateMethod = realType.GetMethod("ValidateItem") + }; + }); + + //Get the validator for this generic type + validator = Activator.CreateInstance(reflectedInfo.RealType); + + validateMethod = reflectedInfo.ValidateMethod; + } + + + //Now call the methods for this instance + validateMethod.Invoke(validator, new object[] { actionContext, contentItem }); + + } + + private class ValidationHelperReflectedType + { + public Type RealType { get; set; } + public MethodInfo ValidateMethod { get; set; } + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/DataTypeController.cs b/src/Umbraco.Web/Editors/DataTypeController.cs index 2b3c75838b..1d405eb0a3 100644 --- a/src/Umbraco.Web/Editors/DataTypeController.cs +++ b/src/Umbraco.Web/Editors/DataTypeController.cs @@ -14,7 +14,6 @@ using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Models.Mapping; using Umbraco.Web.Mvc; using Umbraco.Web.WebApi; -using Umbraco.Web.WebApi.Binders; using Umbraco.Web.WebApi.Filters; using umbraco; using Constants = Umbraco.Core.Constants; diff --git a/src/Umbraco.Web/WebApi/Binders/ContentItemBaseBinder.cs b/src/Umbraco.Web/Editors/Filters/ContentItemBaseBinder.cs similarity index 86% rename from src/Umbraco.Web/WebApi/Binders/ContentItemBaseBinder.cs rename to src/Umbraco.Web/Editors/Filters/ContentItemBaseBinder.cs index b5510ec85d..9804e310bf 100644 --- a/src/Umbraco.Web/WebApi/Binders/ContentItemBaseBinder.cs +++ b/src/Umbraco.Web/Editors/Filters/ContentItemBaseBinder.cs @@ -1,197 +1,183 @@ -using System; -using System.ComponentModel; -using System.IO; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Net.Http.Formatting; -using System.Text; -using System.Threading.Tasks; -using System.Web; -using System.Web.Http; -using System.Web.Http.Controllers; -using System.Web.Http.ModelBinding.Binders; -using System.Web.Http.Validation; -using System.Web.ModelBinding; -using Newtonsoft.Json; -using Newtonsoft.Json.Serialization; -using Umbraco.Core; -using Umbraco.Core.IO; -using Umbraco.Core.Models; -using Umbraco.Web.Editors; -using Umbraco.Web.Models.ContentEditing; -using Umbraco.Web.Security; -using Umbraco.Web.WebApi.Filters; -using IModelBinder = System.Web.Http.ModelBinding.IModelBinder; -using ModelBindingContext = System.Web.Http.ModelBinding.ModelBindingContext; -using ModelMetadata = System.Web.Http.Metadata.ModelMetadata; -using ModelMetadataProvider = System.Web.Http.Metadata.ModelMetadataProvider; -using MutableObjectModelBinder = System.Web.Http.ModelBinding.Binders.MutableObjectModelBinder; -using Task = System.Threading.Tasks.Task; - -namespace Umbraco.Web.WebApi.Binders -{ - /// - /// Binds the content model to the controller action for the posted multi-part Post - /// - internal abstract class ContentItemBaseBinder : IModelBinder - where TPersisted : class, IContentBase - where TModelSave : ContentBaseItemSave - { - protected ApplicationContext ApplicationContext { get; private set; } - - /// - /// Constructor - /// - /// - internal ContentItemBaseBinder(ApplicationContext applicationContext) - { - ApplicationContext = applicationContext; - } - - public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext) - { - //NOTE: Validation is done in the filter - if (actionContext.Request.Content.IsMimeMultipartContent() == false) - { - throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); - } - - var root = IOHelper.MapPath("~/App_Data/TEMP/FileUploads"); - //ensure it exists - Directory.CreateDirectory(root); - var provider = new MultipartFormDataStreamProvider(root); - - var task = Task.Run(() => GetModelAsync(actionContext, bindingContext, provider)) - .ContinueWith(x => - { - if (x.IsFaulted && x.Exception != null) - { - throw x.Exception; - } - - //now that everything is binded, validate the properties - var contentItemValidator = GetValidationHelper(); - contentItemValidator.ValidateItem(actionContext, x.Result); - - bindingContext.Model = x.Result; - }); - - task.Wait(); - - return bindingContext.Model != null; - } - - protected virtual ContentItemValidationHelper GetValidationHelper() - { - return new ContentItemValidationHelper(); - } - - /// - /// Builds the model from the request contents - /// - /// - /// - /// - /// - private async Task GetModelAsync(HttpActionContext actionContext, ModelBindingContext bindingContext, MultipartFormDataStreamProvider provider) - { - var request = actionContext.Request; - - //IMPORTANT!!! We need to ensure the umbraco context here because this is running in an async thread - var httpContext = (HttpContextBase) request.Properties["MS_HttpContext"]; - UmbracoContext.EnsureContext( - httpContext, - ApplicationContext.Current, - new WebSecurity(httpContext, ApplicationContext.Current)); - - var content = request.Content; - - var result = await content.ReadAsMultipartAsync(provider); - - if (result.FormData["contentItem"] == null) - { - var response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest); - response.ReasonPhrase = "The request was not formatted correctly and is missing the 'contentItem' parameter"; - throw new HttpResponseException(response); - } - - //get the string json from the request - var contentItem = result.FormData["contentItem"]; - - //deserialize into our model - var model = JsonConvert.DeserializeObject(contentItem); - - //get the default body validator and validate the object - var bodyValidator = actionContext.ControllerContext.Configuration.Services.GetBodyModelValidator(); - var metadataProvider = actionContext.ControllerContext.Configuration.Services.GetModelMetadataProvider(); - //all validation errors will not contain a prefix - bodyValidator.Validate(model, typeof(TModelSave), metadataProvider, actionContext, ""); - - //get the files - foreach (var file in result.FileData) - { - //The name that has been assigned in JS has 2 parts and the second part indicates the property id - // for which the file belongs. - var parts = file.Headers.ContentDisposition.Name.Trim(new char[] { '\"' }).Split('_'); - if (parts.Length != 2) - { - var response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest); - response.ReasonPhrase = "The request was not formatted correctly the file name's must be underscore delimited"; - throw new HttpResponseException(response); - } - var propAlias = parts[1]; - - var fileName = file.Headers.ContentDisposition.FileName.Trim(new char[] {'\"'}); - - model.UploadedFiles.Add(new ContentItemFile - { - TempFilePath = file.LocalFileName, - PropertyAlias = propAlias, - FileName = fileName - }); - } - - if (ContentControllerBase.IsCreatingAction(model.Action)) - { - //we are creating new content - model.PersistedContent = CreateNew(model); - } - else - { - //finally, let's lookup the real content item and create the DTO item - model.PersistedContent = GetExisting(model); - } - - //create the dto from the persisted model - if (model.PersistedContent != null) - { - model.ContentDto = MapFromPersisted(model); - } - if (model.ContentDto != null) - { - //now map all of the saved values to the dto - MapPropertyValuesFromSaved(model, model.ContentDto); - } - - return model; - } - - /// - /// we will now assign all of the values in the 'save' model to the DTO object - /// - /// - /// - private static void MapPropertyValuesFromSaved(TModelSave saveModel, ContentItemDto dto) - { - foreach (var p in saveModel.Properties.Where(p => dto.Properties.Any(x => x.Alias == p.Alias))) - { - dto.Properties.Single(x => x.Alias == p.Alias).Value = p.Value; - } - } - - protected abstract TPersisted GetExisting(TModelSave model); - protected abstract TPersisted CreateNew(TModelSave model); - protected abstract ContentItemDto MapFromPersisted(TModelSave model); - } +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using System.Web; +using System.Web.Http; +using System.Web.Http.Controllers; +using System.Web.Http.ModelBinding; +using Newtonsoft.Json; +using Umbraco.Core; +using Umbraco.Core.IO; +using Umbraco.Core.Models; +using Umbraco.Web.Models.ContentEditing; +using Umbraco.Web.Security; +using Task = System.Threading.Tasks.Task; + +namespace Umbraco.Web.Editors.Filters +{ + /// + /// Binds the content model to the controller action for the posted multi-part Post + /// + internal abstract class ContentItemBaseBinder : IModelBinder + where TPersisted : class, IContentBase + where TModelSave : ContentBaseItemSave + { + protected ApplicationContext ApplicationContext { get; private set; } + + /// + /// Constructor + /// + /// + internal ContentItemBaseBinder(ApplicationContext applicationContext) + { + ApplicationContext = applicationContext; + } + + public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext) + { + //NOTE: Validation is done in the filter + if (actionContext.Request.Content.IsMimeMultipartContent() == false) + { + throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); + } + + var root = IOHelper.MapPath("~/App_Data/TEMP/FileUploads"); + //ensure it exists + Directory.CreateDirectory(root); + var provider = new MultipartFormDataStreamProvider(root); + + var task = Task.Run(() => GetModelAsync(actionContext, bindingContext, provider)) + .ContinueWith(x => + { + if (x.IsFaulted && x.Exception != null) + { + throw x.Exception; + } + + //now that everything is binded, validate the properties + var contentItemValidator = GetValidationHelper(); + contentItemValidator.ValidateItem(actionContext, x.Result); + + bindingContext.Model = x.Result; + }); + + task.Wait(); + + return bindingContext.Model != null; + } + + protected virtual ContentValidationHelper GetValidationHelper() + { + return new ContentValidationHelper(); + } + + /// + /// Builds the model from the request contents + /// + /// + /// + /// + /// + private async Task GetModelAsync(HttpActionContext actionContext, ModelBindingContext bindingContext, MultipartFormDataStreamProvider provider) + { + var request = actionContext.Request; + + //IMPORTANT!!! We need to ensure the umbraco context here because this is running in an async thread + var httpContext = (HttpContextBase) request.Properties["MS_HttpContext"]; + UmbracoContext.EnsureContext( + httpContext, + ApplicationContext.Current, + new WebSecurity(httpContext, ApplicationContext.Current)); + + var content = request.Content; + + var result = await content.ReadAsMultipartAsync(provider); + + if (result.FormData["contentItem"] == null) + { + var response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest); + response.ReasonPhrase = "The request was not formatted correctly and is missing the 'contentItem' parameter"; + throw new HttpResponseException(response); + } + + //get the string json from the request + var contentItem = result.FormData["contentItem"]; + + //deserialize into our model + var model = JsonConvert.DeserializeObject(contentItem); + + //get the default body validator and validate the object + var bodyValidator = actionContext.ControllerContext.Configuration.Services.GetBodyModelValidator(); + var metadataProvider = actionContext.ControllerContext.Configuration.Services.GetModelMetadataProvider(); + //all validation errors will not contain a prefix + bodyValidator.Validate(model, typeof(TModelSave), metadataProvider, actionContext, ""); + + //get the files + foreach (var file in result.FileData) + { + //The name that has been assigned in JS has 2 parts and the second part indicates the property id + // for which the file belongs. + var parts = file.Headers.ContentDisposition.Name.Trim(new char[] { '\"' }).Split('_'); + if (parts.Length != 2) + { + var response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest); + response.ReasonPhrase = "The request was not formatted correctly the file name's must be underscore delimited"; + throw new HttpResponseException(response); + } + var propAlias = parts[1]; + + var fileName = file.Headers.ContentDisposition.FileName.Trim(new char[] {'\"'}); + + model.UploadedFiles.Add(new ContentItemFile + { + TempFilePath = file.LocalFileName, + PropertyAlias = propAlias, + FileName = fileName + }); + } + + if (ContentControllerBase.IsCreatingAction(model.Action)) + { + //we are creating new content + model.PersistedContent = CreateNew(model); + } + else + { + //finally, let's lookup the real content item and create the DTO item + model.PersistedContent = GetExisting(model); + } + + //create the dto from the persisted model + if (model.PersistedContent != null) + { + model.ContentDto = MapFromPersisted(model); + } + if (model.ContentDto != null) + { + //now map all of the saved values to the dto + MapPropertyValuesFromSaved(model, model.ContentDto); + } + + return model; + } + + /// + /// we will now assign all of the values in the 'save' model to the DTO object + /// + /// + /// + private static void MapPropertyValuesFromSaved(TModelSave saveModel, ContentItemDto dto) + { + foreach (var p in saveModel.Properties.Where(p => dto.Properties.Any(x => x.Alias == p.Alias))) + { + dto.Properties.Single(x => x.Alias == p.Alias).Value = p.Value; + } + } + + protected abstract TPersisted GetExisting(TModelSave model); + protected abstract TPersisted CreateNew(TModelSave model); + protected abstract ContentItemDto MapFromPersisted(TModelSave model); + } } \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/Filters/ContentItemBaseFormatter.cs b/src/Umbraco.Web/Editors/Filters/ContentItemBaseFormatter.cs new file mode 100644 index 0000000000..c2092a8901 --- /dev/null +++ b/src/Umbraco.Web/Editors/Filters/ContentItemBaseFormatter.cs @@ -0,0 +1,143 @@ +using System; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Net.Http.Formatting; +using System.Net.Http.Headers; +using System.Threading.Tasks; +using System.Web.Http; +using Newtonsoft.Json; +using Umbraco.Core; +using Umbraco.Core.IO; +using Umbraco.Core.Models; +using Umbraco.Web.Models.ContentEditing; + +namespace Umbraco.Web.Editors.Filters +{ + /// + /// Binds the content model to the controller action for the posted multi-part Post + /// + internal abstract class ContentItemBaseFormatter : MediaTypeFormatter + where TPersisted : class, IContentBase + where TModelSave : ContentBaseItemSave + { + protected ApplicationContext ApplicationContext { get; private set; } + + public override bool CanReadType(Type type) + { + return (type == typeof(TModelSave)); + } + + public override bool CanWriteType(Type type) + { + return false; + } + + /// + /// Constructor + /// + /// + internal ContentItemBaseFormatter(ApplicationContext applicationContext) + { + ApplicationContext = applicationContext; + + this.SupportedMediaTypes.Clear(); + this.SupportedMediaTypes.Add(new MediaTypeHeaderValue("multipart/form-data")); + } + + /// + /// Asynchronously deserializes an object of the specified type. + /// + /// + /// A whose result will be the object instance that has been read. + /// + /// The type of object to deserialize.The to read.The for the content being read.The to log events to. + public override async Task ReadFromStreamAsync(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger) + { + var root = IOHelper.MapPath("~/App_Data/TEMP/FileUploads"); + //ensure it exists + Directory.CreateDirectory(root); + var provider = new MultipartFormDataStreamProvider(root); + + var result = await content.ReadAsMultipartAsync(provider); + + if (result.FormData["contentItem"] == null) + { + const string errMsg = "The request was not formatted correctly and is missing the 'contentItem' parameter"; + formatterLogger.LogError(string.Empty, errMsg); + var response = new HttpResponseMessage(HttpStatusCode.BadRequest) + { + ReasonPhrase = errMsg + }; + throw new HttpResponseException(response); + } + + //get the string json from the request + var contentItem = result.FormData["contentItem"]; + + //deserialize into our model + var model = JsonConvert.DeserializeObject(contentItem); + + //get the files + foreach (var file in result.FileData) + { + //The name that has been assigned in JS has 2 parts and the second part indicates the property id + // for which the file belongs. + var parts = file.Headers.ContentDisposition.Name.Trim(new char[] { '\"' }).Split('_'); + if (parts.Length != 2) + { + formatterLogger.LogError(string.Empty, "The request was not formatted correctly the file name's must be underscore delimited"); + var response = new HttpResponseMessage(HttpStatusCode.BadRequest) + { + ReasonPhrase = "The request was not formatted correctly the file name's must be underscore delimited" + }; + throw new HttpResponseException(response); + } + var propAlias = parts[1]; + + var fileName = file.Headers.ContentDisposition.FileName.Trim(new char[] { '\"' }); + + model.UploadedFiles.Add(new ContentItemFile + { + TempFilePath = file.LocalFileName, + PropertyAlias = propAlias, + FileName = fileName + }); + } + + model.PersistedContent = ContentControllerBase.IsCreatingAction(model.Action) ? CreateNew(model) : GetExisting(model); + + //create the dto from the persisted model + if (model.PersistedContent != null) + { + model.ContentDto = MapFromPersisted(model); + } + if (model.ContentDto != null) + { + //now map all of the saved values to the dto + MapPropertyValuesFromSaved(model, model.ContentDto); + } + + return model; + } + + /// + /// we will now assign all of the values in the 'save' model to the DTO object + /// + /// + /// + private static void MapPropertyValuesFromSaved(TModelSave saveModel, ContentItemDto dto) + { + foreach (var p in saveModel.Properties.Where(p => dto.Properties.Any(x => x.Alias == p.Alias))) + { + dto.Properties.Single(x => x.Alias == p.Alias).Value = p.Value; + } + } + + protected abstract TPersisted GetExisting(TModelSave model); + protected abstract TPersisted CreateNew(TModelSave model); + protected abstract ContentItemDto MapFromPersisted(TModelSave model); + + } +} \ No newline at end of file diff --git a/src/Umbraco.Web/WebApi/Binders/ContentItemBinder.cs b/src/Umbraco.Web/Editors/Filters/ContentItemFormatter.cs similarity index 71% rename from src/Umbraco.Web/WebApi/Binders/ContentItemBinder.cs rename to src/Umbraco.Web/Editors/Filters/ContentItemFormatter.cs index 5afc7cee19..a8af195127 100644 --- a/src/Umbraco.Web/WebApi/Binders/ContentItemBinder.cs +++ b/src/Umbraco.Web/Editors/Filters/ContentItemFormatter.cs @@ -1,46 +1,45 @@ -using System; -using AutoMapper; -using Umbraco.Core; -using Umbraco.Core.Models; -using Umbraco.Web.Models.ContentEditing; -using Umbraco.Web.Models.Mapping; - -namespace Umbraco.Web.WebApi.Binders -{ - internal class ContentItemBinder : ContentItemBaseBinder - { - - public ContentItemBinder(ApplicationContext applicationContext) - : base(applicationContext) - { - } - - /// - /// Constructor - /// - public ContentItemBinder() - : this(ApplicationContext.Current) - { - } - - protected override IContent GetExisting(ContentItemSave model) - { - return ApplicationContext.Services.ContentService.GetById(Convert.ToInt32(model.Id)); - } - - protected override IContent CreateNew(ContentItemSave model) - { - var contentType = ApplicationContext.Services.ContentTypeService.GetContentType(model.ContentTypeAlias); - if (contentType == null) - { - throw new InvalidOperationException("No content type found wth alias " + model.ContentTypeAlias); - } - return new Content(model.Name, model.ParentId, contentType); - } - - protected override ContentItemDto MapFromPersisted(ContentItemSave model) - { - return Mapper.Map>(model.PersistedContent); - } - } +using System; +using AutoMapper; +using Umbraco.Core; +using Umbraco.Core.Models; +using Umbraco.Web.Models.ContentEditing; + +namespace Umbraco.Web.Editors.Filters +{ + internal class ContentItemFormatter : ContentItemBaseFormatter + { + public ContentItemFormatter() + : this(Core.ApplicationContext.Current) + { + } + + /// + /// Constructor + /// + /// + public ContentItemFormatter(ApplicationContext applicationContext) + : base(applicationContext) + { + } + + protected override IContent GetExisting(ContentItemSave model) + { + return ApplicationContext.Services.ContentService.GetById(Convert.ToInt32(model.Id)); + } + + protected override IContent CreateNew(ContentItemSave model) + { + var contentType = ApplicationContext.Services.ContentTypeService.GetContentType(model.ContentTypeAlias); + if (contentType == null) + { + throw new InvalidOperationException("No content type found wth alias " + model.ContentTypeAlias); + } + return new Content(model.Name, model.ParentId, contentType); + } + + protected override ContentItemDto MapFromPersisted(ContentItemSave model) + { + return Mapper.Map>(model.PersistedContent); + } + } } \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/Filters/ContentModelFormatterConfigurationAttribute.cs b/src/Umbraco.Web/Editors/Filters/ContentModelFormatterConfigurationAttribute.cs new file mode 100644 index 0000000000..5e7e737309 --- /dev/null +++ b/src/Umbraco.Web/Editors/Filters/ContentModelFormatterConfigurationAttribute.cs @@ -0,0 +1,29 @@ +using System; +using System.Net.Http.Formatting; +using System.Web.Http.Controllers; +using Umbraco.Core; + +namespace Umbraco.Web.Editors.Filters +{ + /// + /// Used by the content, media, members controller to bind (format) the incoming Save model + /// + internal class ContentModelFormatterConfigurationAttribute : Attribute, IControllerConfiguration + { + private readonly Type _contentModelFormatterType; + + public ContentModelFormatterConfigurationAttribute(Type contentModelFormatterType) + { + if (contentModelFormatterType == null) throw new ArgumentNullException("contentModelFormatterType"); + if (TypeHelper.IsTypeAssignableFrom(contentModelFormatterType) == false) throw new ArgumentException("Invalid type allowed", "contentModelFormatterType"); + _contentModelFormatterType = contentModelFormatterType; + } + + public virtual void Initialize(HttpControllerSettings controllerSettings, HttpControllerDescriptor controllerDescriptor) + { + //add the multi-part formatter + controllerSettings.Formatters.Add((MediaTypeFormatter)Activator.CreateInstance(_contentModelFormatterType)); + } + } + +} \ No newline at end of file diff --git a/src/Umbraco.Web/WebApi/Filters/ContentItemValidationHelper.cs b/src/Umbraco.Web/Editors/Filters/ContentValidationHelper.cs similarity index 87% rename from src/Umbraco.Web/WebApi/Filters/ContentItemValidationHelper.cs rename to src/Umbraco.Web/Editors/Filters/ContentValidationHelper.cs index 239b9bd576..81c5786307 100644 --- a/src/Umbraco.Web/WebApi/Filters/ContentItemValidationHelper.cs +++ b/src/Umbraco.Web/Editors/Filters/ContentValidationHelper.cs @@ -1,167 +1,153 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Web.Http.Controllers; -using System.Web.Http.ModelBinding; -using Umbraco.Core; -using Umbraco.Core.Logging; -using Umbraco.Core.Models; -using Umbraco.Web.Models.ContentEditing; - -namespace Umbraco.Web.WebApi.Filters -{ - /// - /// A validation helper class used with ContentItemValidationFilterAttribute to be shared between content, media, etc... - /// - /// - /// - /// - /// If any severe errors occur then the response gets set to an error and execution will not continue. Property validation - /// errors will just be added to the ModelState. - /// - internal class ContentItemValidationHelper - where TPersisted : class, IContentBase - where TModelSave : ContentBaseItemSave - { - - public void ValidateItem(HttpActionContext actionContext, string argumentName) - { - var contentItem = actionContext.ActionArguments[argumentName] as TModelSave; - if (contentItem == null) - { - actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "No " + typeof(TModelSave) + " found in request"); - return; - } - - ValidateItem(actionContext, contentItem); - - } - - public void ValidateItem(HttpActionContext actionContext, TModelSave contentItem) - { - //now do each validation step - if (ValidateExistingContent(contentItem, actionContext) == false) return; - if (ValidateProperties(contentItem, actionContext) == false) return; - if (ValidatePropertyData(contentItem, actionContext) == false) return; - } - - /// - /// Ensure the content exists - /// - /// - /// - /// - protected virtual bool ValidateExistingContent(ContentItemBasic postedItem, HttpActionContext actionContext) - { - if (postedItem.PersistedContent == null) - { - var message = string.Format("content with id: {0} was not found", postedItem.Id); - actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, message); - return false; - } - - return true; - } - - /// - /// Ensure all of the ids in the post are valid - /// - /// - /// - /// - protected virtual bool ValidateProperties(ContentItemBasic postedItem, HttpActionContext actionContext) - { - return ValidateProperties(postedItem.Properties.ToArray(), postedItem.PersistedContent.Properties.ToArray(), actionContext); - } - - /// - /// This validates that all of the posted properties exist on the persisted entity - /// - /// - /// - /// - /// - protected bool ValidateProperties(ContentPropertyBasic[] postedProperties , Property[] persistedProperties, HttpActionContext actionContext) - { - foreach (var p in postedProperties) - { - if (persistedProperties.Any(property => property.Alias == p.Alias) == false) - { - //TODO: Do we return errors here ? If someone deletes a property whilst their editing then should we just - //save the property data that remains? Or inform them they need to reload... not sure. This problem exists currently too i think. - - var message = string.Format("property with alias: {0} was not found", p.Alias); - actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, new InvalidOperationException(message)); - return false; - } - - } - return true; - } - - /// - /// Validates the data for each property - /// - /// - /// - /// - /// - /// All property data validation goes into the modelstate with a prefix of "Properties" - /// - protected virtual bool ValidatePropertyData(ContentItemBasic postedItem, HttpActionContext actionContext) - { - foreach (var p in postedItem.ContentDto.Properties) - { - var editor = p.PropertyEditor; - if (editor == null) - { - var message = string.Format("The property editor with alias: {0} was not found for property with id {1}", p.DataType.PropertyEditorAlias, p.Id); - LogHelper.Warn>(message); - //actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, message); - //return false; - continue; - } - - //get the posted value for this property - var postedValue = postedItem.Properties.Single(x => x.Alias == p.Alias).Value; - - //get the pre-values for this property - var preValues = p.PreValues; - - //TODO: when we figure out how to 'override' certain pre-value properties we'll either need to: - // * Combine the preValues with the overridden values stored with the document type property (but how to combine?) - // * Or, pass in the overridden values stored with the doc type property separately - - foreach (var result in editor.ValueEditor.Validators.SelectMany(v => v.Validate(postedValue, preValues, editor))) - { - actionContext.ModelState.AddPropertyError(result, p.Alias); - } - - //Now we need to validate the property based on the PropertyType validation (i.e. regex and required) - // NOTE: These will become legacy once we have pre-value overrides. - if (p.IsRequired) - { - foreach (var result in p.PropertyEditor.ValueEditor.RequiredValidator.Validate(postedValue, "", preValues, editor)) - { - actionContext.ModelState.AddPropertyError(result, p.Alias); - } - } - - if (p.ValidationRegExp.IsNullOrWhiteSpace() == false) - { - foreach (var result in p.PropertyEditor.ValueEditor.RegexValidator.Validate(postedValue, p.ValidationRegExp, preValues, editor)) - { - actionContext.ModelState.AddPropertyError(result, p.Alias); - } - } - } - - return actionContext.ModelState.IsValid; - } - - - } +using System; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http.Controllers; +using Umbraco.Core; +using Umbraco.Core.Logging; +using Umbraco.Core.Models; +using Umbraco.Web.Models.ContentEditing; + +namespace Umbraco.Web.Editors.Filters +{ + /// + /// A validation helper class used with ContentItemValidationFilterAttribute to be shared between content, media, etc... + /// + /// + /// + /// + /// If any severe errors occur then the response gets set to an error and execution will not continue. Property validation + /// errors will just be added to the ModelState. + /// + internal class ContentValidationHelper + where TPersisted : class, IContentBase + where TModelSave : ContentBaseItemSave + { + + public void ValidateItem(HttpActionContext actionContext, TModelSave contentItem) + { + //now do each validation step + if (ValidateExistingContent(contentItem, actionContext) == false) return; + if (ValidateProperties(contentItem, actionContext) == false) return; + if (ValidatePropertyData(contentItem, actionContext) == false) return; + } + + /// + /// Ensure the content exists + /// + /// + /// + /// + protected virtual bool ValidateExistingContent(ContentItemBasic postedItem, HttpActionContext actionContext) + { + if (postedItem.PersistedContent == null) + { + var message = string.Format("content with id: {0} was not found", postedItem.Id); + actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, message); + return false; + } + + return true; + } + + /// + /// Ensure all of the ids in the post are valid + /// + /// + /// + /// + protected virtual bool ValidateProperties(ContentItemBasic postedItem, HttpActionContext actionContext) + { + return ValidateProperties(postedItem.Properties.ToArray(), postedItem.PersistedContent.Properties.ToArray(), actionContext); + } + + /// + /// This validates that all of the posted properties exist on the persisted entity + /// + /// + /// + /// + /// + protected bool ValidateProperties(ContentPropertyBasic[] postedProperties , Property[] persistedProperties, HttpActionContext actionContext) + { + foreach (var p in postedProperties) + { + if (persistedProperties.Any(property => property.Alias == p.Alias) == false) + { + //TODO: Do we return errors here ? If someone deletes a property whilst their editing then should we just + //save the property data that remains? Or inform them they need to reload... not sure. This problem exists currently too i think. + + var message = string.Format("property with alias: {0} was not found", p.Alias); + actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, new InvalidOperationException(message)); + return false; + } + + } + return true; + } + + /// + /// Validates the data for each property + /// + /// + /// + /// + /// + /// All property data validation goes into the modelstate with a prefix of "Properties" + /// + protected virtual bool ValidatePropertyData(ContentItemBasic postedItem, HttpActionContext actionContext) + { + foreach (var p in postedItem.ContentDto.Properties) + { + var editor = p.PropertyEditor; + if (editor == null) + { + var message = string.Format("The property editor with alias: {0} was not found for property with id {1}", p.DataType.PropertyEditorAlias, p.Id); + LogHelper.Warn>(message); + //actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, message); + //return false; + continue; + } + + //get the posted value for this property + var postedValue = postedItem.Properties.Single(x => x.Alias == p.Alias).Value; + + //get the pre-values for this property + var preValues = p.PreValues; + + //TODO: when we figure out how to 'override' certain pre-value properties we'll either need to: + // * Combine the preValues with the overridden values stored with the document type property (but how to combine?) + // * Or, pass in the overridden values stored with the doc type property separately + + foreach (var result in editor.ValueEditor.Validators.SelectMany(v => v.Validate(postedValue, preValues, editor))) + { + actionContext.ModelState.AddPropertyError(result, p.Alias); + } + + //Now we need to validate the property based on the PropertyType validation (i.e. regex and required) + // NOTE: These will become legacy once we have pre-value overrides. + if (p.IsRequired) + { + foreach (var result in p.PropertyEditor.ValueEditor.RequiredValidator.Validate(postedValue, "", preValues, editor)) + { + actionContext.ModelState.AddPropertyError(result, p.Alias); + } + } + + if (p.ValidationRegExp.IsNullOrWhiteSpace() == false) + { + foreach (var result in p.PropertyEditor.ValueEditor.RegexValidator.Validate(postedValue, p.ValidationRegExp, preValues, editor)) + { + actionContext.ModelState.AddPropertyError(result, p.Alias); + } + } + } + + return actionContext.ModelState.IsValid; + } + + + + + } } \ No newline at end of file diff --git a/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingContentAttribute.cs b/src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingContentAttribute.cs similarity index 95% rename from src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingContentAttribute.cs rename to src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingContentAttribute.cs index 3feb3b682a..1b32f65a5d 100644 --- a/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingContentAttribute.cs +++ b/src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingContentAttribute.cs @@ -1,102 +1,101 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Reflection; -using Umbraco.Core.Models.Membership; -using Umbraco.Core.Services; -using umbraco.BusinessLogic.Actions; -using Umbraco.Core; - -namespace Umbraco.Web.WebApi.Filters -{ - /// - /// This inspects the result of the action that returns a collection of content and removes - /// any item that the current user doesn't have access to - /// - internal sealed class FilterAllowedOutgoingContentAttribute : FilterAllowedOutgoingMediaAttribute - { - private readonly char _permissionToCheck; - - public FilterAllowedOutgoingContentAttribute(Type outgoingType) - : base(outgoingType) - { - _permissionToCheck = ActionBrowse.Instance.Letter; - } - - public FilterAllowedOutgoingContentAttribute(Type outgoingType, char permissionToCheck) - : base(outgoingType) - { - _permissionToCheck = permissionToCheck; - } - - public FilterAllowedOutgoingContentAttribute(Type outgoingType, string propertyName) - : base(outgoingType, propertyName) - { - _permissionToCheck = ActionBrowse.Instance.Letter; - } - - protected override void FilterItems(IUser user, IList items) - { - base.FilterItems(user, items); - - FilterBasedOnPermissions(items, user, ApplicationContext.Current.Services.UserService); - } - - protected override int GetUserStartNode(IUser user) - { - return user.StartContentId; - } - - protected override int RecycleBinId - { - get { return Constants.System.RecycleBinContent; } - } - - internal void FilterBasedOnPermissions(IList items, IUser user, IUserService userService) - { - var length = items.Count; - - if (length > 0) - { - var ids = new List(); - for (var i = 0; i < length; i++) - { - ids.Add(((dynamic)items[i]).Id); - } - //get all the permissions for these nodes in one call - var permissions = userService.GetPermissions(user, ids.ToArray()).ToArray(); - var toRemove = new List(); - foreach (dynamic item in items) - { - var nodePermission = permissions.Where(x => x.EntityId == Convert.ToInt32(item.Id)).ToArray(); - //if there are no permissions for this id then we need to check what the user's default - // permissions are. - if (nodePermission.Any() == false) - { - //var defaultP = user.DefaultPermissions - - toRemove.Add(item); - } - else - { - foreach (var n in nodePermission) - { - //if the permission being checked doesn't exist then remove the item - if (n.AssignedPermissions.Contains(_permissionToCheck.ToString(CultureInfo.InvariantCulture)) == false) - { - toRemove.Add(item); - } - } - } - } - foreach (var item in toRemove) - { - items.Remove(item); - } - } - } - - } +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using umbraco.BusinessLogic.Actions; +using Umbraco.Core; +using Umbraco.Core.Models.Membership; +using Umbraco.Core.Services; + +namespace Umbraco.Web.Editors.Filters +{ + /// + /// This inspects the result of the action that returns a collection of content and removes + /// any item that the current user doesn't have access to + /// + internal sealed class FilterAllowedOutgoingContentAttribute : FilterAllowedOutgoingMediaAttribute + { + private readonly char _permissionToCheck; + + public FilterAllowedOutgoingContentAttribute(Type outgoingType) + : base(outgoingType) + { + _permissionToCheck = ActionBrowse.Instance.Letter; + } + + public FilterAllowedOutgoingContentAttribute(Type outgoingType, char permissionToCheck) + : base(outgoingType) + { + _permissionToCheck = permissionToCheck; + } + + public FilterAllowedOutgoingContentAttribute(Type outgoingType, string propertyName) + : base(outgoingType, propertyName) + { + _permissionToCheck = ActionBrowse.Instance.Letter; + } + + protected override void FilterItems(IUser user, IList items) + { + base.FilterItems(user, items); + + FilterBasedOnPermissions(items, user, ApplicationContext.Current.Services.UserService); + } + + protected override int GetUserStartNode(IUser user) + { + return user.StartContentId; + } + + protected override int RecycleBinId + { + get { return Constants.System.RecycleBinContent; } + } + + internal void FilterBasedOnPermissions(IList items, IUser user, IUserService userService) + { + var length = items.Count; + + if (length > 0) + { + var ids = new List(); + for (var i = 0; i < length; i++) + { + ids.Add(((dynamic)items[i]).Id); + } + //get all the permissions for these nodes in one call + var permissions = userService.GetPermissions(user, ids.ToArray()).ToArray(); + var toRemove = new List(); + foreach (dynamic item in items) + { + var nodePermission = permissions.Where(x => x.EntityId == Convert.ToInt32(item.Id)).ToArray(); + //if there are no permissions for this id then we need to check what the user's default + // permissions are. + if (nodePermission.Any() == false) + { + //var defaultP = user.DefaultPermissions + + toRemove.Add(item); + } + else + { + foreach (var n in nodePermission) + { + //if the permission being checked doesn't exist then remove the item + if (n.AssignedPermissions.Contains(_permissionToCheck.ToString(CultureInfo.InvariantCulture)) == false) + { + toRemove.Add(item); + } + } + } + } + foreach (var item in toRemove) + { + items.Remove(item); + } + } + } + + } } \ No newline at end of file diff --git a/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs b/src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingMediaAttribute.cs similarity index 98% rename from src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs rename to src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingMediaAttribute.cs index 36170627d9..5bd692b36a 100644 --- a/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs +++ b/src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingMediaAttribute.cs @@ -7,9 +7,8 @@ using System.Web.Http.Filters; using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Models.Membership; -using Umbraco.Web.Models.ContentEditing; -namespace Umbraco.Web.WebApi.Filters +namespace Umbraco.Web.Editors.Filters { /// /// This inspects the result of the action that returns a collection of content and removes diff --git a/src/Umbraco.Web/WebApi/Binders/MediaItemBinder.cs b/src/Umbraco.Web/Editors/Filters/MediaItemFormatter.cs similarity index 74% rename from src/Umbraco.Web/WebApi/Binders/MediaItemBinder.cs rename to src/Umbraco.Web/Editors/Filters/MediaItemFormatter.cs index 726994d43e..9245095632 100644 --- a/src/Umbraco.Web/WebApi/Binders/MediaItemBinder.cs +++ b/src/Umbraco.Web/Editors/Filters/MediaItemFormatter.cs @@ -1,45 +1,45 @@ -using System; -using AutoMapper; -using Umbraco.Core; -using Umbraco.Core.Models; -using Umbraco.Web.Models.ContentEditing; -using Umbraco.Web.Models.Mapping; - -namespace Umbraco.Web.WebApi.Binders -{ - internal class MediaItemBinder : ContentItemBaseBinder - { - public MediaItemBinder(ApplicationContext applicationContext) - : base(applicationContext) - { - } - - /// - /// Constructor - /// - public MediaItemBinder() - : this(ApplicationContext.Current) - { - } - - protected override IMedia GetExisting(MediaItemSave model) - { - return ApplicationContext.Services.MediaService.GetById(Convert.ToInt32(model.Id)); - } - - protected override IMedia CreateNew(MediaItemSave model) - { - var contentType = ApplicationContext.Services.ContentTypeService.GetMediaType(model.ContentTypeAlias); - if (contentType == null) - { - throw new InvalidOperationException("No content type found wth alias " + model.ContentTypeAlias); - } - return new Core.Models.Media(model.Name, model.ParentId, contentType); - } - - protected override ContentItemDto MapFromPersisted(MediaItemSave model) - { - return Mapper.Map>(model.PersistedContent); - } - } +using System; +using AutoMapper; +using Umbraco.Core; +using Umbraco.Core.Models; +using Umbraco.Web.Models.ContentEditing; + +namespace Umbraco.Web.Editors.Filters +{ + internal class MediaItemFormatter : ContentItemBaseFormatter + { + public MediaItemFormatter() + : this(Core.ApplicationContext.Current) + { + } + + /// + /// Constructor + /// + /// + public MediaItemFormatter(ApplicationContext applicationContext) + : base(applicationContext) + { + } + + protected override IMedia GetExisting(MediaItemSave model) + { + return ApplicationContext.Services.MediaService.GetById(Convert.ToInt32(model.Id)); + } + + protected override IMedia CreateNew(MediaItemSave model) + { + var contentType = ApplicationContext.Services.ContentTypeService.GetMediaType(model.ContentTypeAlias); + if (contentType == null) + { + throw new InvalidOperationException("No content type found wth alias " + model.ContentTypeAlias); + } + return new Core.Models.Media(model.Name, model.ParentId, contentType); + } + + protected override ContentItemDto MapFromPersisted(MediaItemSave model) + { + return Mapper.Map>(model.PersistedContent); + } + } } \ No newline at end of file diff --git a/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs b/src/Umbraco.Web/Editors/Filters/MemberFormatter.cs similarity index 82% rename from src/Umbraco.Web/WebApi/Binders/MemberBinder.cs rename to src/Umbraco.Web/Editors/Filters/MemberFormatter.cs index 3893167a73..1ef877381d 100644 --- a/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs +++ b/src/Umbraco.Web/Editors/Filters/MemberFormatter.cs @@ -1,211 +1,185 @@ -using System; -using System.Collections.Generic; -using System.Web.Http.Controllers; -using System.Web.Http.ModelBinding; -using System.Web.Security; -using AutoMapper; -using Umbraco.Core; -using Umbraco.Core.Models; -using Umbraco.Core.Security; -using Umbraco.Core.Services; -using Umbraco.Web.Models.ContentEditing; -using Umbraco.Web.WebApi.Filters; -using System.Linq; -using Umbraco.Core.Models.Membership; - -namespace Umbraco.Web.WebApi.Binders -{ - internal class MemberBinder : ContentItemBaseBinder - { - public MemberBinder(ApplicationContext applicationContext) - : base(applicationContext) - { - } - - /// - /// Constructor - /// - public MemberBinder() - : this(ApplicationContext.Current) - { - } - - protected override ContentItemValidationHelper GetValidationHelper() - { - return new MemberValidationHelper(); - } - - /// - /// Returns an IMember instance used to bind values to and save (depending on the membership scenario) - /// - /// - /// - protected override IMember GetExisting(MemberSave model) - { - var scenario = ApplicationContext.Services.MemberService.GetMembershipScenario(); - var provider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider(); - switch (scenario) - { - case MembershipScenario.NativeUmbraco: - return GetExisting(model.Key); - case MembershipScenario.CustomProviderWithUmbracoLink: - case MembershipScenario.StandaloneCustomProvider: - default: - var membershipUser = provider.GetUser(model.Key, false); - if (membershipUser == null) - { - throw new InvalidOperationException("Could not find member with key " + model.Key); - } - - //TODO: Support this scenario! - //if (scenario == MembershipScenario.CustomProviderWithUmbracoLink) - //{ - // //if there's a 'Member' type then we should be able to just go get it from the db since it was created with a link - // // to our data. - // var memberType = ApplicationContext.Services.MemberTypeService.GetMemberType(Constants.Conventions.MemberTypes.Member); - // if (memberType != null) - // { - // var existing = GetExisting(model.Key); - // FilterContentTypeProperties(existing.ContentType, existing.ContentType.PropertyTypes.Select(x => x.Alias).ToArray()); - // } - //} - - //generate a member for a generic membership provider - //NOTE: We don't care about the password here, so just generate something - //var member = MemberService.CreateGenericMembershipProviderMember(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N")); - - //var convertResult = membershipUser.ProviderUserKey.TryConvertTo(); - //if (convertResult.Success == false) - //{ - // throw new InvalidOperationException("Only membership providers that store a GUID as their ProviderUserKey are supported" + model.Key); - //} - //member.Key = convertResult.Result; - - var member = Mapper.Map(membershipUser); - - return member; - } - } - - private IMember GetExisting(Guid key) - { - var member = ApplicationContext.Services.MemberService.GetByKey(key); - if (member == null) - { - throw new InvalidOperationException("Could not find member with key " + key); - } - - var standardProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); - - //remove all membership properties, these values are set with the membership provider. - var exclude = standardProps.Select(x => x.Value.Alias).ToArray(); - - foreach (var remove in exclude) - { - member.Properties.Remove(remove); - } - return member; - } - - /// - /// Gets an instance of IMember used when creating a member - /// - /// - /// - /// - /// Depending on whether a custom membership provider is configured this will return different results. - /// - protected override IMember CreateNew(MemberSave model) - { - var provider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider(); - - if (provider.IsUmbracoMembershipProvider()) - { - var contentType = ApplicationContext.Services.MemberTypeService.Get(model.ContentTypeAlias); - if (contentType == null) - { - throw new InvalidOperationException("No member type found wth alias " + model.ContentTypeAlias); - } - - //remove all membership properties, these values are set with the membership provider. - FilterMembershipProviderProperties(contentType); - - //return the new member with the details filled in - return new Member(model.Name, model.Email, model.Username, model.Password.NewPassword, contentType); - } - else - { - //A custom membership provider is configured - - //NOTE: Below we are assigning the password to just a new GUID because we are not actually storing the password, however that - // field is mandatory in the database so we need to put something there. - - //If the default Member type exists, we'll use that to create the IMember - that way we can associate the custom membership - // provider to our data - eventually we can support editing custom properties with a custom provider. - var memberType = ApplicationContext.Services.MemberTypeService.Get(Constants.Conventions.MemberTypes.DefaultAlias); - if (memberType != null) - { - FilterContentTypeProperties(memberType, memberType.PropertyTypes.Select(x => x.Alias).ToArray()); - return new Member(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N"), memberType); - } - - //generate a member for a generic membership provider - var member = MemberService.CreateGenericMembershipProviderMember(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N")); - //we'll just remove all properties here otherwise we'll end up with validation errors, we don't want to persist any property data anyways - // in this case. - FilterContentTypeProperties(member.ContentType, member.ContentType.PropertyTypes.Select(x => x.Alias).ToArray()); - return member; - } - } - - /// - /// This will remove all of the special membership provider properties which were required to display the property editors - /// for editing - but the values have been mapped back ot the MemberSave object directly - we don't want to keep these properties - /// on the IMember because they will attempt to be persisted which we don't want since they might not even exist. - /// - /// - private void FilterMembershipProviderProperties(IContentTypeBase contentType) - { - var defaultProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); - //remove all membership properties, these values are set with the membership provider. - var exclude = defaultProps.Select(x => x.Value.Alias).ToArray(); - FilterContentTypeProperties(contentType, exclude); - } - - private void FilterContentTypeProperties(IContentTypeBase contentType, IEnumerable exclude) - { - //remove all properties based on the exclusion list - foreach (var remove in exclude) - { - if (contentType.PropertyTypeExists(remove)) - { - contentType.RemovePropertyType(remove); - } - } - } - - protected override ContentItemDto MapFromPersisted(MemberSave model) - { - return Mapper.Map>(model.PersistedContent); - } - - /// - /// Custom validation helper so that we can exclude the Member.StandardPropertyTypeStubs from being validating for existence - /// - internal class MemberValidationHelper : ContentItemValidationHelper - { - protected override bool ValidateProperties(ContentItemBasic postedItem, HttpActionContext actionContext) - { - var propertiesToValidate = postedItem.Properties.ToList(); - var defaultProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); - var exclude = defaultProps.Select(x => x.Value.Alias).ToArray(); - foreach (var remove in exclude) - { - propertiesToValidate.RemoveAll(property => property.Alias == remove); - } - - return ValidateProperties(propertiesToValidate.ToArray(), postedItem.PersistedContent.Properties.ToArray(), actionContext); - } - } - } +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web.Security; +using AutoMapper; +using Umbraco.Core; +using Umbraco.Core.Models; +using Umbraco.Core.Models.Membership; +using Umbraco.Core.Security; +using Umbraco.Core.Services; +using Umbraco.Web.Models.ContentEditing; + +namespace Umbraco.Web.Editors.Filters +{ + internal class MemberFormatter : ContentItemBaseFormatter + { + public MemberFormatter() + : this(Core.ApplicationContext.Current) + { + } + + /// + /// Constructor + /// + /// + public MemberFormatter(ApplicationContext applicationContext) + : base(applicationContext) + { + } + + /// + /// Returns an IMember instance used to bind values to and save (depending on the membership scenario) + /// + /// + /// + protected override IMember GetExisting(MemberSave model) + { + var scenario = ApplicationContext.Services.MemberService.GetMembershipScenario(); + var provider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider(); + switch (scenario) + { + case MembershipScenario.NativeUmbraco: + return GetExisting(model.Key); + case MembershipScenario.CustomProviderWithUmbracoLink: + case MembershipScenario.StandaloneCustomProvider: + default: + var membershipUser = provider.GetUser(model.Key, false); + if (membershipUser == null) + { + throw new InvalidOperationException("Could not find member with key " + model.Key); + } + + //TODO: Support this scenario! + //if (scenario == MembershipScenario.CustomProviderWithUmbracoLink) + //{ + // //if there's a 'Member' type then we should be able to just go get it from the db since it was created with a link + // // to our data. + // var memberType = ApplicationContext.Services.MemberTypeService.GetMemberType(Constants.Conventions.MemberTypes.Member); + // if (memberType != null) + // { + // var existing = GetExisting(model.Key); + // FilterContentTypeProperties(existing.ContentType, existing.ContentType.PropertyTypes.Select(x => x.Alias).ToArray()); + // } + //} + + //generate a member for a generic membership provider + //NOTE: We don't care about the password here, so just generate something + //var member = MemberService.CreateGenericMembershipProviderMember(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N")); + + //var convertResult = membershipUser.ProviderUserKey.TryConvertTo(); + //if (convertResult.Success == false) + //{ + // throw new InvalidOperationException("Only membership providers that store a GUID as their ProviderUserKey are supported" + model.Key); + //} + //member.Key = convertResult.Result; + + var member = Mapper.Map(membershipUser); + + return member; + } + } + + private IMember GetExisting(Guid key) + { + var member = ApplicationContext.Services.MemberService.GetByKey(key); + if (member == null) + { + throw new InvalidOperationException("Could not find member with key " + key); + } + + var standardProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); + + //remove all membership properties, these values are set with the membership provider. + var exclude = standardProps.Select(x => x.Value.Alias).ToArray(); + + foreach (var remove in exclude) + { + member.Properties.Remove(remove); + } + return member; + } + + /// + /// Gets an instance of IMember used when creating a member + /// + /// + /// + /// + /// Depending on whether a custom membership provider is configured this will return different results. + /// + protected override IMember CreateNew(MemberSave model) + { + var provider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider(); + + if (provider.IsUmbracoMembershipProvider()) + { + var contentType = ApplicationContext.Services.MemberTypeService.Get(model.ContentTypeAlias); + if (contentType == null) + { + throw new InvalidOperationException("No member type found wth alias " + model.ContentTypeAlias); + } + + //remove all membership properties, these values are set with the membership provider. + FilterMembershipProviderProperties(contentType); + + //return the new member with the details filled in + return new Member(model.Name, model.Email, model.Username, model.Password.NewPassword, contentType); + } + else + { + //A custom membership provider is configured + + //NOTE: Below we are assigning the password to just a new GUID because we are not actually storing the password, however that + // field is mandatory in the database so we need to put something there. + + //If the default Member type exists, we'll use that to create the IMember - that way we can associate the custom membership + // provider to our data - eventually we can support editing custom properties with a custom provider. + var memberType = ApplicationContext.Services.MemberTypeService.Get(Constants.Conventions.MemberTypes.DefaultAlias); + if (memberType != null) + { + FilterContentTypeProperties(memberType, memberType.PropertyTypes.Select(x => x.Alias).ToArray()); + return new Member(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N"), memberType); + } + + //generate a member for a generic membership provider + var member = MemberService.CreateGenericMembershipProviderMember(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N")); + //we'll just remove all properties here otherwise we'll end up with validation errors, we don't want to persist any property data anyways + // in this case. + FilterContentTypeProperties(member.ContentType, member.ContentType.PropertyTypes.Select(x => x.Alias).ToArray()); + return member; + } + } + + /// + /// This will remove all of the special membership provider properties which were required to display the property editors + /// for editing - but the values have been mapped back ot the MemberSave object directly - we don't want to keep these properties + /// on the IMember because they will attempt to be persisted which we don't want since they might not even exist. + /// + /// + private void FilterMembershipProviderProperties(IContentTypeBase contentType) + { + var defaultProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); + //remove all membership properties, these values are set with the membership provider. + var exclude = defaultProps.Select(x => x.Value.Alias).ToArray(); + FilterContentTypeProperties(contentType, exclude); + } + + private void FilterContentTypeProperties(IContentTypeBase contentType, IEnumerable exclude) + { + //remove all properties based on the exclusion list + foreach (var remove in exclude) + { + if (contentType.PropertyTypeExists(remove)) + { + contentType.RemovePropertyType(remove); + } + } + } + + protected override ContentItemDto MapFromPersisted(MemberSave model) + { + return Mapper.Map>(model.PersistedContent); + } + } } \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/Filters/MemberValidationHelper.cs b/src/Umbraco.Web/Editors/Filters/MemberValidationHelper.cs new file mode 100644 index 0000000000..b0a5229025 --- /dev/null +++ b/src/Umbraco.Web/Editors/Filters/MemberValidationHelper.cs @@ -0,0 +1,27 @@ +using System.Linq; +using System.Web.Http.Controllers; +using Umbraco.Core; +using Umbraco.Core.Models; +using Umbraco.Web.Models.ContentEditing; + +namespace Umbraco.Web.Editors.Filters +{ + /// + /// Custom validation helper so that we can exclude the Member.StandardPropertyTypeStubs from being validating for existence + /// + internal class MemberValidationHelper : ContentValidationHelper + { + protected override bool ValidateProperties(ContentItemBasic postedItem, HttpActionContext actionContext) + { + var propertiesToValidate = postedItem.Properties.ToList(); + var defaultProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); + var exclude = defaultProps.Select(x => x.Value.Alias).ToArray(); + foreach (var remove in exclude) + { + propertiesToValidate.RemoveAll(property => property.Alias == remove); + } + + return ValidateProperties(propertiesToValidate.ToArray(), postedItem.PersistedContent.Properties.ToArray(), actionContext); + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/MediaController.cs b/src/Umbraco.Web/Editors/MediaController.cs index 84c4128eb5..ae2bd0954b 100644 --- a/src/Umbraco.Web/Editors/MediaController.cs +++ b/src/Umbraco.Web/Editors/MediaController.cs @@ -20,13 +20,13 @@ using Umbraco.Core.Models.Editors; using Umbraco.Core.Models.Membership; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Services; +using Umbraco.Web.Editors.Filters; using Umbraco.Web.Models; using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Models.Mapping; using Umbraco.Web.Mvc; using Umbraco.Web.WebApi; using System.Linq; -using Umbraco.Web.WebApi.Binders; using Umbraco.Web.WebApi.Filters; using umbraco; using umbraco.BusinessLogic.Actions; @@ -41,6 +41,7 @@ namespace Umbraco.Web.Editors /// [PluginController("UmbracoApi")] [UmbracoApplicationAuthorizeAttribute(Constants.Applications.Media)] + [ContentModelFormatterConfiguration(typeof(MediaItemFormatter))] public class MediaController : ContentControllerBase { /// @@ -214,9 +215,8 @@ namespace Umbraco.Web.Editors /// [FileUploadCleanupFilter] [MediaPostValidate] - public MediaItemDisplay PostSave( - [ModelBinder(typeof(MediaItemBinder))] - MediaItemSave contentItem) + [ContentModelValidationFilter(typeof(MediaItemSave), typeof(IMedia))] + public MediaItemDisplay PostSave(MediaItemSave contentItem) { //If we've reached here it means: // * Our model has been bound diff --git a/src/Umbraco.Web/Editors/MediaPostValidateAttribute.cs b/src/Umbraco.Web/Editors/MediaPostValidateAttribute.cs index ed26fcbc57..a65ecdb66d 100644 --- a/src/Umbraco.Web/Editors/MediaPostValidateAttribute.cs +++ b/src/Umbraco.Web/Editors/MediaPostValidateAttribute.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; diff --git a/src/Umbraco.Web/Editors/MemberController.cs b/src/Umbraco.Web/Editors/MemberController.cs index a696ccf0b1..5ab4588941 100644 --- a/src/Umbraco.Web/Editors/MemberController.cs +++ b/src/Umbraco.Web/Editors/MemberController.cs @@ -21,11 +21,11 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Security; using Umbraco.Core.Services; +using Umbraco.Web.Editors.Filters; using Umbraco.Web.Models.Mapping; using Umbraco.Web.WebApi; using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Mvc; -using Umbraco.Web.WebApi.Binders; using Umbraco.Web.WebApi.Filters; using umbraco; using Constants = Umbraco.Core.Constants; @@ -40,6 +40,7 @@ namespace Umbraco.Web.Editors [PluginController("UmbracoApi")] [UmbracoApplicationAuthorizeAttribute(Constants.Applications.Members)] [OutgoingNoHyphenGuidFormat] + [ContentModelFormatterConfiguration(typeof(MemberFormatter))] public class MemberController : ContentControllerBase { /// @@ -231,9 +232,8 @@ namespace Umbraco.Web.Editors /// [FileUploadCleanupFilter] [MembershipProviderValidationFilter] - public MemberDisplay PostSave( - [ModelBinder(typeof(MemberBinder))] - MemberSave contentItem) + [ContentModelValidationFilter(typeof(MemberValidationHelper))] + public MemberDisplay PostSave(MemberSave contentItem) { //If we've reached here it means: diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 85bc54c778..8d4f936a06 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -268,6 +268,7 @@ + @@ -547,12 +548,16 @@ - + + + + + @@ -789,16 +794,14 @@ - + - - - + - - + + @@ -806,6 +809,7 @@ + From 2f79d4a71d843684241496ce3a50faa5384df933 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 3 Dec 2014 11:27:02 +0100 Subject: [PATCH 136/310] Better replacement of examine management ascx to html --- build/NuSpecs/tools/Dashboard.config.install.xdt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/build/NuSpecs/tools/Dashboard.config.install.xdt b/build/NuSpecs/tools/Dashboard.config.install.xdt index a1960e5797..1f5bbb0164 100644 --- a/build/NuSpecs/tools/Dashboard.config.install.xdt +++ b/build/NuSpecs/tools/Dashboard.config.install.xdt @@ -26,11 +26,15 @@ views/dashboard/developer/developerdashboardvideos.html - + + + +
+ views/dashboard/developer/examinemanagement.html - +
From 53d9a34996a117c60e9a88c1f9d9bce0aed4deb6 Mon Sep 17 00:00:00 2001 From: per ploug Date: Wed, 3 Dec 2014 14:10:44 +0100 Subject: [PATCH 137/310] Makes the forms installer reload hard --- .../src/views/dashboard/dashboard.tabs.controller.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js b/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js index e6ea6f122b..201c9f7be4 100644 --- a/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js @@ -17,8 +17,7 @@ function startUpVideosDashboardController($scope, xmlhelper, $log, $http) { angular.module("umbraco").controller("Umbraco.Dashboard.StartupVideosController", startUpVideosDashboardController); - -function FormsController($scope, $route, packageResource) { +function FormsController($scope, $route, $cookies, packageResource) { $scope.installForms = function(){ $scope.state = "Installng package"; packageResource @@ -44,9 +43,8 @@ function FormsController($scope, $route, packageResource) { $scope.complete = function(result){ var url = window.location.href + "?init=true"; - window.location.href = url; - - //window.location.reload(); + $cookies.installDone = "true"; + window.location.reload(true); }; $scope.error = function(err){ From b8f3f93d83ef952acf05eea415b1668b31582d0f Mon Sep 17 00:00:00 2001 From: Chris Houston Date: Wed, 3 Dec 2014 14:24:13 +0000 Subject: [PATCH 138/310] Added more Spanish translations. --- src/Umbraco.Web.UI/umbraco/config/lang/es.xml | 89 ++++++++++--------- 1 file changed, 46 insertions(+), 43 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/es.xml b/src/Umbraco.Web.UI/umbraco/config/lang/es.xml index 7388244500..de40e7b72e 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/es.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/es.xml @@ -35,15 +35,15 @@ Enviar a publicación Traducir Actualizar - Default value + Valor por defecto - Permission denied. + Permiso denegado. Añadir nuevo dominio - remove - Invalid node. - Invalid domain format. - Domain has already been assigned. + quitar + Nodo no válido. + Formato de dominio no válido. + Este dominio ya ha sido asignado. Language Dominio El nuevo dominio %0% ha sido creado @@ -52,15 +52,15 @@ El dominio %0% ha sido actualizado Editar dominios actuales -
One-level paths in domains are supported, eg. "example.com/en". However, they +
One-level paths in domains are supported, eg. "example.com/en". However, they should be avoided. Better use the culture setting above.]]>
- Inherit - Culture + Heredar + Cultura - or inherit culture from parent nodes. Will also apply
- to the current node, unless a domain below applies too.]]> + o hereda la cultura de los nodos padres. También se aplicará
+ para el nodo actual, a menos que un dominio por debajo lo aplique también.]]>
Domains @@ -68,9 +68,9 @@ Visualización de - Select - Select current folder - Do something else + Seleccionar + Selecciona la carpeta actual + Hacer otra cosa Negrita Cancelar Sangría del Párrafo Insertar campo de formulario @@ -158,21 +158,21 @@ Fecha/hora este documento fue modificado Eliminar archivo Vínculo al documento - Member of group(s) - Not a member of group(s) - Child items + Miembro de grupo(s) + No es miembreo de grupo(s) + Nodos hijo Target - Click to upload - Drop your files here... + Haz click para subir archivos + Arrastra los archivos aquí... ¿Dónde quieres crear el nuevo %0% Crear debajo de Elije un tipo y un título - "document types".]]> - "media types".]]> + "Tipos de documentos".]]> + "Tipos de medios".]]> Navega en tu sitio Web @@ -235,12 +235,12 @@ ]]> - Introduzca su nombre de usuario - Introduzca su contraseña - Nombre de %0%... - Introduzca un nombre ... - Buscar ... - Filtrar ... + Escribe tu nombre de usuario + Escribe tu contraseña + Nombre del %0%... + Escribe un nombre... + Escribe tu búsqueda... + Escribe para filtrar resultados... Tipos de nodos hijos permitidos @@ -251,7 +251,7 @@ Nueva pestaña Pestaña Miniatura - Enable list view + Permitir vista de listado añadir prevalor @@ -450,8 +450,7 @@ Esta es nuestra lista de módulos recomendados, selecciona los que desees instalar, o mira la lista completa de módulos ]]> Sólo recomendado para usuarios expertos Quiero empezar con un sitio web sencillo - "Runway" es un sitio web sencillo que contiene unos tipos de documentos y plantillas básicos. El instalador puede configurar Runway por ti de forma automática, pero fácilmente puedes editarlo, extenderlo o eliminarlo. No es necesario y puedes usar Umbrao perfectamente sin él. Sin embargo, Runway ofrece unos cimientos sencillos basados en buenas prácticas para iniciarte más rápido que nunca. Si eliges instalar Runway, puedes seleccionar bloques de construcción básicos llamados Módulos de Runway de forma opcional para realzar tus páginas de Runway. Incluido con Runway: Página de inicio, página de Cómo empezar, página de Instalación de módulos.
Módulos opcionales: Navegación superior, Mapa del sitio, Contacto, Galería.
-However, Runway offers an easy foundation based on best practices to get you started faster than ever. If you choose to install Runway, you can optionally select basic building blocks called Runway Modules to enhance your Runway pages.

Included with Runway: Home page, Getting Started page, Installing Modules page.
Optional Modules: Top Navigation, Sitemap, Contact, Gallery.
]]>
+ "Runway" es un sitio web sencillo que contiene unos tipos de documentos y plantillas básicos. El instalador puede configurar Runway por ti de forma automática, pero fácilmente puedes editarlo, extenderlo o eliminarlo. No es necesario y puedes usar Umbrao perfectamente sin él. Sin embargo, Runway ofrece unos cimientos sencillos basados en buenas prácticas para iniciarte más rápido que nunca. Si eliges instalar Runway, puedes seleccionar bloques de construcción básicos llamados Módulos de Runway de forma opcional para realzar tus páginas de Runway. Incluido con Runway: Página de inicio, página de Cómo empezar, página de Instalación de módulos.
Módulos opcionales: Navegación superior, Mapa del sitio, Contacto, Galería.
]]>
¿Qué es Runway? Paso 1 de 5. Aceptar los términos de la licencia Paso 2 de 5. Configuración de la base de datos @@ -480,15 +479,15 @@ However, Runway offers an easy foundation based on best practices to get you sta Renovar su sessión para guardar sus cambios - Happy super Sunday - Happy manic Monday - Happy tubular Tuesday - Happy wonderful Wednesday - Happy thunderous Thursday - Happy funky Friday - Happy Caturday - Log in below - Session timed out + Feliz super domingo + Feliz lunes + Tremendo martes + Maravilloso miércoles + Fantástico jueves + ¡Ya es viernes! + Resplandeciente sábado + Iniciar sesión + La sesión ha caducado © 2001 - %0%
umbraco.com

]]>
@@ -628,6 +627,10 @@ However, Runway offers an easy foundation based on best practices to get you sta Pestaña Nombre de la pestaña Pestañas + Tipo de Contenido Maestro activado + Este Tipo de Contenido usa + como Tipo de Contenido Maestro. Las pestañas para los Tipos de Contenido Maestros no se muestran y solo se pueden modificar desde el Tipo de Contenido Maestro + No existen propiedades para esta pestaña. Haga clic en el enlace "añadir nueva propiedad" para crear una nueva propiedad. Tipo de documento Maestro Crear template correspondiente @@ -842,8 +845,8 @@ However, Runway offers an easy foundation based on best practices to get you sta Tipo de usuario Tipos de usuarios Redactor - Your profile - Your recent history - Session expires in + Tu perfil + Tu historial reciente + La sesión caduca en \ No newline at end of file From 64efd0abbcc9a346ed73c976718962f213357d75 Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Wed, 3 Dec 2014 16:40:46 +0100 Subject: [PATCH 139/310] #U4-5913 Fixed Media Type composition panel so it shows the right types --- .../controls/ContentTypeControlNew.ascx.cs | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs index 17e33c170f..b0fb5bacb0 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentTypeControlNew.ascx.cs @@ -296,6 +296,8 @@ namespace umbraco.controls IconType = BasePage.speechBubbleIcon.success }, _contentType.Alias, _contentType.Text, txtAlias.Text, txtName.Text, _contentType.PropertyTypes.Select(x => x.Alias).ToArray()); + var isMediaType = Request.Path.ToLowerInvariant().Contains("editmediatype.aspx"); + //Add the async operation to the page //NOTE: Must pass in a null and do not pass in a true to the 'executeInParallel', this is changed in .net 4.5 for the better, otherwise you'll get a ysod. Page.RegisterAsyncTask(new PageAsyncTask(BeginAsyncSaveOperation, EndAsyncSaveOperation, null, state)); @@ -335,7 +337,11 @@ namespace umbraco.controls if (existingCompsitionIds.Any(x => x.Equals(compositionId))) continue; //New Ids will get added to the collection - var compositionType = Services.ContentTypeService.GetContentType(compositionId); + var compositionType = isMediaType + ? Services.ContentTypeService.GetMediaType(compositionId) + .SafeCast() + : Services.ContentTypeService.GetContentType(compositionId) + .SafeCast(); var added = _contentType.ContentTypeItem.AddContentType(compositionType); //TODO if added=false then return error message } @@ -345,7 +351,11 @@ namespace umbraco.controls foreach (var removeId in removeIds) { //Remove ContentTypes that was deselected in the list - var compositionType = Services.ContentTypeService.GetContentType(removeId); + var compositionType = isMediaType + ? Services.ContentTypeService.GetMediaType(removeId) + .SafeCast() + : Services.ContentTypeService.GetContentType(removeId) + .SafeCast(); var removed = _contentType.ContentTypeItem.RemoveContentType(compositionType.Alias); } } @@ -356,11 +366,14 @@ namespace umbraco.controls foreach (var removeId in removeIds) { //Remove ContentTypes that was deselected in the list - var compositionType = Services.ContentTypeService.GetContentType(removeId); + var compositionType = isMediaType + ? Services.ContentTypeService.GetMediaType(removeId) + .SafeCast() + : Services.ContentTypeService.GetContentType(removeId) + .SafeCast(); var removed = _contentType.ContentTypeItem.RemoveContentType(compositionType.Alias); } } - var tabs = SaveTabs(); foreach (var tab in tabs) @@ -676,7 +689,9 @@ jQuery(document).ready(function() {{ refreshDropDowns(); }}); if (Page.IsPostBack == false) { - var allContentTypes = ApplicationContext.Services.ContentTypeService.GetAllContentTypes().ToArray(); + var allContentTypes = Request.Path.ToLowerInvariant().Contains("editmediatype.aspx") + ? ApplicationContext.Services.ContentTypeService.GetAllMediaTypes().Cast().ToArray() + : ApplicationContext.Services.ContentTypeService.GetAllContentTypes().Cast().ToArray(); // note: there are many sanity checks missing here and there ;-(( // make sure once and for all From 8442b2e8e7417684b9450edf12338e12a10c55e5 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 3 Dec 2014 16:50:59 +0100 Subject: [PATCH 140/310] Updates installer backgrounnd and nonodes page --- .../src/assets/css/nonodes.style.min.css | 1 + .../src/assets/img/installer.jpg | Bin 119101 -> 701737 bytes .../src/assets/img/logo.png | Bin 0 -> 1746 bytes .../src/assets/img/mocks/big-image.jpg | Bin 316178 -> 0 bytes .../src/assets/img/mocks/big-thumb.jpg | Bin 5093 -> 0 bytes .../src/assets/img/nonodesbg.jpg | Bin 0 -> 237538 bytes .../config/splashes/noNodes.aspx | 177 +++++------------- 7 files changed, 49 insertions(+), 129 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css create mode 100644 src/Umbraco.Web.UI.Client/src/assets/img/logo.png delete mode 100644 src/Umbraco.Web.UI.Client/src/assets/img/mocks/big-image.jpg delete mode 100644 src/Umbraco.Web.UI.Client/src/assets/img/mocks/big-thumb.jpg create mode 100644 src/Umbraco.Web.UI.Client/src/assets/img/nonodesbg.jpg diff --git a/src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css b/src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css new file mode 100644 index 0000000000..7b57a35069 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css @@ -0,0 +1 @@ +abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;outline:0;border:0;background:0 0;vertical-align:baseline;font-size:100%}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}a{margin:0;padding:0;background:0 0;vertical-align:baseline;font-size:100%}ins{background-color:#ff9;color:#000;text-decoration:none}mark{background-color:#ff9;color:#000;font-weight:700;font-style:italic}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-spacing:0;border-collapse:collapse}hr{display:block;margin:1em 0;padding:0;height:1px;border:0;border-top:1px solid #ccc}input,select{vertical-align:middle}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}body,html{height:100%;width:100%;color:#fff;font-family:'Open Sans',sans-serif;font-weight:400;font-size:.9375em;line-height:1.5}h1{font-size:1.7em;margin:40px auto 10px;font-weight:700}h2{font-size:1.35em;margin:0 auto .4em;font-weight:700}h3{font-size:1em;font-weight:400;font-style:italic}p{font-size:1em;line-height:1.6}p+a{margin-top:1rem;display:inline-block}a,a:active,a:visited{text-decoration:none}.cta{margin:4.5em auto 1.5em;padding-bottom:4.5em}.button{padding:.9375em 1.875em;border-radius:.1em;font-weight:600;font-size:1.2em;background:#2e99f4;color:#fff;display:inline-block;border:none;transition:all 200ms ease-in-out}.button:hover{border-bottom:none;background:#0c80e3}section{background:url(../img/nonodesbg.jpg) center center/cover;height:100%;width:100%;display:table;padding:3em 1.75em}section a,section a:focus,section a:visited{color:#46a5f5;font-size:1.1625em;border-bottom:1px solid transparent;transition:border-bottom 100ms ease-in-out}section a:focus:hover,section a:hover,section a:visited:hover{border-bottom:1px solid}section:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.17);background:linear-gradient(45deg,rgba(85,98,112,.1) 10%,rgba(255,107,107,.1) 95%);z-index:0}section article{display:table-cell;vertical-align:middle;margin:0 auto;text-align:center;position:relative;z-index:100}section article>div{max-width:60em;margin:0 auto}section .logo{background:url(../img/logo.png) no-repeat;width:91px;height:91px;margin:0 auto}section .row{overflow:hidden}section .row .col{text-align:left;width:100%}section .row .col:nth-child(2){margin-top:3em}@media screen and (min-width:48em){body,html{font-size:1em}h1{font-size:2.5em;margin:70px auto 0;letter-spacing:.5px}h2{font-size:1.4375em;margin:0 auto 1em}h3{font-size:1.2em}a{font-size:1.1rem;font-weight:600}p+a{margin-top:3rem}.cta{margin:7.5em auto 2.5em;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:7.5em}section{padding:0 15px}section .row .col{float:left;width:50%;padding-right:5%;display:inline-block}section .row .col:nth-child(2){padding-right:0;padding-left:5%;margin-top:0}.button{font-size:1.1625em}} \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/assets/img/installer.jpg b/src/Umbraco.Web.UI.Client/src/assets/img/installer.jpg index 40e6b0b6e464c66d53527bbcd6e3f9133bfc509e..d460bf4cd360e894546dcf619f1d336719961217 100644 GIT binary patch literal 701737 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

^S6!~0J!e?<&-DJBcl%w7f|$%O1v7aZ1fDzN zO#FGfqhR;XqYdBRG>nqAp0zKy?pA((rp)O>qwB8;g3+t5=W!ejdCYWHa&DWxwlCyg zkauBfo?I~KWy0Qn@O8c= z;!L^yeFSkOsq`ywN25Ul`f_$9M#Ja8@26n9HNBiFnOx_hA5wN^@||$zg3oEumJHg0 zja3l}a~W>yMDUqS2A|qW%&7fI#wJRKEHoC6*zrfW6cZTDXw6M)#Z1-1frxaexQM+- ziA7QrEVQ$on-8roO6JGpjMllB4Y_Q`X{ALW1*Q(i(JhWe`4PZ;y7j4O)3lNsY=)Ma z`IE5v7hyE=_qxP8@Gc?I5d@IYde9)};@}_Rrb8T5kW$#nEO&V>(I~^{MYfszw_1k1 zCChP!7!y1ER`#`5V$;@o4n-!knrn0qI(&X+E95+seERvFyl?TYomE zaTICHkN|E>-6KVUUr)3dOk;B(z4tTkNPlYS({@JMQd9npM0U1{YwEt7o?8=I2er(nNFJ{^tpDH?L`%uFcmpCUrM65lvSJ` zs>YB{iWablxgfe_S(mPl3F4yGpT(&8L8SDN zuR{28e|c4VhN9JUCJ!ng;AV%xhibx*UDM))V0B#w;)D!m5^^Q!gqk(w6zTF9_6z~X zjwURv7uyeR-tkcDEC=M!sEB9VNMoJNyRCNp527OLtWOXUC4#X|vd_c|QFc^1YFK2j z9tc{+EhbqzCXm&S(*x$R&0=SlvsUJ8N}emk;zwxLNE9qyuoh1a4_6~M)(6%qi&8{) zR+K`D?QK+48X_t2cUk6~896i_@R6Ty?esP<%6Jt7IX2L4psgqY6MGT?=$bt|YyEeq zP$Y{zoUYOhwWHW?K%pW%BkkSWH3!34zyR1#jJgcR4hrwG%F?-+SOT*a+*6Y-s{x(1FUC!+Sn@9MJwxIZf(13YweJ)?ZAS z6;~ZNs#T5q{6Y94=5frVc|DXlK9te!t%oO!i2+}UnpTel(ia;D{D zsccW`60HDqrs8tvlY6_*Bs%ac3W!00@B%(T#}58g{@>7D?mXT`$Oi6r9|n8~{jZqy zpw!y%`B3crdyW^J_}X;1aHNM{l=^D?<>BCHEu=mk6NeP`#+0WT)(ynraW@;PBtzuhbbY<#N*UnB5_f(!14RMt+`oAif;}e zAr!-HTEkHYEK`ivnovxT1eZXQlxmN_bjgtdOq$*m3HqS}qm_WiV&PaY3X4l+zmH-T z7!Gl~;XoZ}vcofDW^4c_o0dA)X*^;*dJQV4bxJYY^>7Ft(9Z*71{is<5IUw@hw}$q zq-lzV17QGolhK`XYM!~tO$>5>EB|XO8tB!fd&A|CxTSSq=8)r$S~zc|kt)Sp6xbjo zSMa^{@Zs(Hba?`Sn6!Jmn42=GcB5zl_Z@Z2=L(ke4DjBXNl8N^tBow$$Ma2hG@nsa zJcH748#=m%xWHUkj#-FQaTyLWYr`b@J*3DiK)ATrbrT2TEZ|r%id8lbnIkn0(V)59 zAG24czF7=RbS$)*bXz9S17f> zXl1)d5YRC=ASaeabFNui0~vi9-_-&l257=VisAQP{FATmz$Waq*tA}u4y@dlR%P~I z-X!U$N>X+lI--sugS>Z{qG>O{N`YH`43rwDl6q`U#WW+8HssUIo?deA4ms^<8_slxrtBoY0D1SY1AI zAF79gT--sN%_`3nbD><~(wON}ljI>q5AOn_Tah{q{p?tbhMYvdA`mJ6FT}R$_q=S6 z__^8v+&>ySkLwm|rf)o`5_~h=>$-t{Ynxz<)#xU#>$2U*+Dj(^WQ?Ra9-w$XbrE>S zv}PShKYR6h$;pzib|riJUU-{m%Eq@eQXGEeJu#sC;*sa^ckf(llDF;d&M1)VEH(W1 zM2F75k2Bq2HBMit2C}3CU2R)-w*F0*{_A}`vGkquy z6P@+>w(K`OiIsQ8buAeR5z3D1a3FE}E4tLX1Tg71Xx38w5@-mkxec(KVGbxfFV{f> zh-H{tx<1(bNTJ`kd3suGr=LglDai^~%&eb@0~JVI2E;Fy9@_B^52v@1j?vu)Xs#Ip zjLS7B`dh`o9L@xeOOkZLk(3~LC}NR!NH`z?CRnb6yO%Uxz_#Zyq83(SPMgXbIe}QX zet^YOWO9VLP54$U5&~p0P_$Hvnwh8a3)uu+n|-0j(`H@-Dcz+Xxkk;>pVv*IuEjeV zv}nEmWV$&oR72K2e-`MD{jz?2P%{b5(+P}GiUO`kMGFy^twL)TIy*@GbToa`dUc7L z2y4{UM%$Ak+kR>C59#NC?7j7%LTfO?0_my( z7X36-&M2dW34%rN*w%GF9W|{+IV+64SJ6nGI7Q@76W=PSbN}z$-q!TUqyIK5&~xWB z;Na=>=>Gj~uVdmfe|Bf(pPWM6^`2-8f=4lt=BDEy-M>jM4g*7>(XJ{|Cjpc>bPGer zF?ISR5LM-6)%h{wpA6;0Ko_=Lo!QG*NgA3Ix=^Gr`cR&Q|41wzDOjcfFj_OL9)4QE zOtIJjzRZdHTiGy>K3E^YUU5T{p`6g(Ndj!SpSDIzOYd3~B}B%{K@%QU3y`7_XJm(c zJn{G_>RVtF!!om?4GM7DiI}zA2wu%Xq}~O8bM15*7O=gYT+W4PM3}u4c9k4bY(XMr=@>JHH!>Ea$)3a8McKgX z{hGjclgxIDHq-=(j113|XZ7AV{ln7`8}aI0;OTF7{tWd;vK&73zTU3jIyfN4TIfKp z^IN}-To5##$^B=>29wb8S?2*L6~vGTNK~<_n__x=@_OkaZN3`l?$qwWA+ zBmCf%dPu5o_2p{b{xGA%x#?nF#7q2Glk_gfJwpRSrYx&r>5cvmh(Sp~^LnMPSBsg!iK~as-ztBUS=Bms2c4S1oam!3Ns!ZA5>~vFFt2I+d&2{0K#jL-7;kk3 zs(Kf*HoMxG`#U4P%-~qm>UD@Lg%q&9E-rJrFnmAn98=BAneQ4)`XgDQ*)zhFUPL;; zJG4Ong`xqX&nY{zY!n*<5k>s=vgzPVj7;hkQWn0rB9be@-q|lNN7%MMn z>rKt;7z+v<_z4!`ZNInSRW<#>r`!sNPsvd9q>eKC69`j_j<%eF1;Uvig$?=UUiNOE zi+-pa#^IR+sbp^5+OkWiD4Q|jnQu!*;Bh(;BiUpOq&Y^uSd-S~1GfkNd!Eo?+NOA|s zH4{wwP@{LeaX&al7f@a>&7dHSeSxA?Ycx=f)E?qg(cuJ?q&R9FBvE3XwTTs8{UkXr z7otOfGEM74nMUNB27A)Aaq;;7Agr|PU3b37w;DGQl|)L5>o0|Nu%mvKsL56&0Xm$B zpB4lEhFtlExttC&`C;{G?k_O4>B_;P-SoMNELw#fOj9B0DG*qqavvKkj^5{#)EJtX z#kPr-MBrUi$jX%YqXLzVVpHp9h5fS8!3{lo^#G(5`Wrf&35hfC?@^3ZnSmrg}f3>F1Y>uL-kR zI>_gAgZojzZ^Kh>X)MTo=Wo}!fy6=fbYwL=fzwo_OgleXqpKpVt+|3g72M8^cPFkBo%62dt^VbrDn6F;=m0EXdoSRMCt>5 zu$-y0u6&Ca6$!plMVX=rGj2%qu5R_YA7Wmx~Mh?8yR zCg~&>DdtbNr0@W|pyHO><^ANUqJ})d?>n}c7>J$}IALZr7`*Buq}!?pA^2|{_hC{( zt;nsd9V4?#0BHy1Du%Sq&Q`A+mCjQ zi}?EuOKlGev*77dBt1?{+seek_LVH9U^zDk#BE@hP15Uh@)fDGpGk>1QtQ*8@l-uB zBlAVYiaFxc%m?wWm}?EPWJs$bhnn6z%K)yp)>h(hE=Qe-PF|gg#~9PoepeIV7vz>7 z-RF!qi_w3^?y8yGgha1AJhJ}4T-+u(y{KQh?Z@zz^9^LhAB2_yu&HS(PJpJ0Vw~}# z$)_;ttDYVb>_t%3n#3h}UkkiUq69tCBd!iMc2{j~hk=kYykv^f9lgZWGHU?5CZ1GdhF*DMp+5#!8}nLi2?pSuSK zBOW}+e#BxA+4*Ejqz!!cO9ZKQ5UJRGv_ZYMw(%aNJJ<3%=MQFfe;uvpIaDBpvTJ!- z)xaWIdaU0xsW7e0>4kh^U3G8fdwHg-I1MvtrVV4a6`_$i`d@1-R4DCAxoK17v;kWG zt#YGCIT;pJ@>T*ZVSGF$ed-!ve{01UVfR~l(ko7kx=y}((tGM}uS6&JZ_gV|kKUNy zVr0f7CE894@FpO~=6{efowx2UO^s{Q&d_rotMl-L&_}pP^Hsrt0fxy<<MfMPEZPDTg38h#!$wqjqpMcYk#iJvbrqty3THk>l0gSY(AKmo7B8VMeX^0Z0x{$ z3rQOSAQ(vlbN4B{CnA+AYb4Z*pHCic`hBSg7VUil>05e)^MpLq5cyy1(YEyj<$97G zwLvk#`r_MeANb5&fE~fBk9R_<*X@H^Ue=#{*XQp93)&!r=m=WHRo32b8Vo;Sh?pZq zqvAOaiwTd#;ApE!g1;sARu*WPi=7Mb1OdV>tIuhb-9NG}3APRLzS4fhj44 zKqRD!JbF~Xjdm_Q9Q2nkCiH7vAJ`0)b3~p|a zE4)R9LLS;a9d8ZILKp7a)-t-~cgbZ00u@Q)uEi_&$zjiNZijMxq- z5gHE6=8QR35*aU74j5JLXMG(Q+o?}8J@&2WlwPyUD6)#7>gD>u^1dLgd zy)RuEJl_L%8$7??#{TQh!A<`h2>j#*n?E;k<7!4gChYL6z1Pf}U6n@h-iW0WZ8}%R zFKzSPM}G8DRD8hr?(g`aePho9Z|^7;SInPJ&pkA@lA71mKYYLJL50hWGnjMeE{f@>nwR$=jHw5`NBl;%U+j7Ne5Nbvjnn+;#)GPn zRT=pgkMz`N=43!L%7f52NtUhaMmUb?bMM9Dz0Z%<;7ybh?yzi*2mF48Dstg{Khe)EXYtD-AC59}g zWr&a|W|A(LwPXFHU}l4L1Q5DzPx6@y1cS80EMow*%1KBBO`eX`YM+cG+x+bk z$u<_aTXtE5AG^zto|12aQR~*gjbvC|%g^B9dHVKo`Vye$)DH^?F0yWePEb%1Cc0Y; z95W9Q!<;zOO~Fh@(og}Y&H1dJt+M9Hd^e_wjlA_>ysK**M#Omlkqm<%Ys8?Y>AQ=* z(eH%?Z5S~?M}CspOP_Z=+O=50!?L7wRk^?gV`YDhk9*kV2B(|J^8wWJaAp)IzCIY( zq$G$s8H*4Q{+e@3p5A|htR`kQT{rlfzG0dC;nTa^{EJ^W|&AeQMNQ27eO>pW%Qj zc(AqMuhf9CM8Pd#iV;lz=y*A!SST!77LG)$pnuxP=}D*AKGSGu)pKwh0h+gDcrcso zsbS`QGp)8B{Oo@^u+t7c+*@RLHW32HvKX-56LGa?Ufq?MrjvD@)!V+fRCV6Jl;u3kcZMKkZ?!H z1OcWxKZ>d8jRv4K+cKFWUW(I=m($x7G+U=l6#qm&l(davj-JbWg_Lo%|1U>45XFTr zt1z~h7`fkNze%`b5B0b11xL;#dCoZwYp^?&$KzW#a$-AxF9#B-~9S?o=CH(hXX+P-gU*^?e8xd7RJZb z9dhslqtdGxOHmx@y70hD+{V17TRz!vqw)X>QaB7q-iL18$uX}BT@ZAUuG9(#JvKWl zJUV@{`B=SYer<*rjfJVQL8|txN31)S)uWjy99>uP4lb5C6MufITmwXd0^w|!8*dYr z$ZKPsg-9StK{Gts#5@LKMF~;d@rDDT;9-#}Ni-0!qP8oyB|D0XCxR?XM!Rh~90M*0 zEi7S7MN&Lc{&egEw;6zRe}0I^5Xb>IfmFCRbP$I4aVUimD7EWm#dvYLtn8?%oYWOq z-9Sp)5*6&buL>Ttz*TIA5ii)G5^z%AORto zB@E@uxpYDY5uC(Dl$oK|3ob0AS-?ux>7*bnD2jDIXQ%L^nCihM0}S+R4r0oRse!JRS6D;0kK%mCm9DolR)N{Cuq z*S&$aa(?pu>NG!EUKCvst_n;y_8uSndxJ^tfvdR45)kM|-igvfR2~uKJl?LaT?l13 zjc)bvlh?U7!FYdb-uUCc#}<5VK4>V=N3U%53g#yfRcO7MFVwGT$rj(KoSTif6cJ*3 z-fbIHUeCUfU&4dg-U-+n=A{xAT=J zz`87zX7TTMs4{xzQ_aiTJ6w(;Aa`&m5i0TJWcMDn$nFpil6Elq75a@Bh|j>K5?b4w zs3wrp$IpH}QYaOvLILtyoV z5&KFMIPxOaPXDr^L(xUuUt0GDKG7{}f+Efz6>mMB<6-#RmVI;x*Wtb$el84^Tp&r7 zOm^Mnbanqed>=pT*Ld&l`@R3Toew^<{p`{F9pxc8;v*e+kLv5m^&^xvenQBD2;*m# zG{5(!`z|_1)l@%dbLu*7T>N=zpSOpuTH)>*cg4io`NWyXIE2o@dfLtnjrFXr5IwIK znFD&I$X7Up`^>8BO=SFRM|YMkS;s5|EWZ!>HWrlHyaUvqO{ z>|`^u5lmB@(geB?sK`tha_^$q$96D*Df=&wUBa+Ip})6zjMOsM9ZMJs0C`2sX7(;& z0L`-};*kN?Y2}slg>aFW$RHp<)9k?5aFOLWgaq6Jkoey(DybeeC-9~!c<6seUsjD8 z&1hrsNPrAxtpL{k;#)=ae3%%koe^;J8Q8nISy3d{@e!kG6qW57Z#1H@DKd&~W=~}U z-8kk%%;{}HYj3|c6U<3OI1RFxGwti55My0zAJRz?Cf+8 z$UP`Mq*`~ir@%E}FEm#p+SOY-iceUX-zdFzurV?A6<96%XG&HTa55lfw7F4E)4yC) zuz2z%N}S8ePz+_r&>`RnFXCdwVsQy$nxb@!-Owskw}ForEGL~%D#cb| zy?46rCe9x$KRh@6Z$@Al9NfV!sETIouV2b;q?h?PZNdnbwB-He#v_Bl+}Fk zkTI<1`XlP&yW^KOe;~AH zEXNz1R|3I1eBHM{5|uCh5Ax?;f1=$V-TuLc4t1H{5w)HDJI9mC{(Jldn8BkXY>u-| zk7=GU`1$Z~HRWRZ)oq?>N47ZH?%m)bbs_tS@y4ikh^3TEnXPN;yrnpu?{#5KcWXL7 zkMB+DHXEF`;xwJvadR*Kn~q(fhc~9?r@`o!2gSBA3!4#Ve~ND1Ezb96pFLewh0W|^ zymi=UHpS0IgsZm%Uo!pY;aFC)fp576+25If;K~yFcM;J^gu(W<1k95J=$?@b`AgY0G;w(z8k z>%|cJ0p<*?*bHpwX;fBGX{A_S3^DAoxO4FCgob^gSbs4}#4_)`quO^&i*^>Vu&~c4 z%xvTGW+Z!aOwIsFd{!abJ;*-<&QfL7p$vu^?LPT=zcgOUX*_=QA>YwMX6wm_+XW8A zaRHYD0~k*ghq>*i1#n%PXZLd6#~J@F?WPCnemiD;QTNou&W*FMy{s{9i{~Dk*V;&J z@+`fC%FGc-9z@tS+@ducCtDr;Fy?A0d+jMS{a|fc@UE*HdxD_Fjw#K8>79+ndbHnt|oL7P2)FwK0Jw)hW+#S@t(9&Ci(X^EVFnRNI%3A!vT}Wc~#b^uHSXcs+ z26iD)khTt8+U=^}o8dEKE#mf+JhhU1IEFiEwHgJUzlS=C*#jldsdG#=nT89FMPrA# z%Q3E)-wXkcQ)x^2!pj_*1RAF1iDygb9nNEaJ)~@6EcGRmydwt! z#n746`cYg%$w=JGC^$Rn8z3+KVx=z~Kj`j`ta^xcLi!`v{SlKA?ea$Mf}ToJ);C0}07MxLmE=7ArGXGfK#_qQ$vU`32j?vveXtGR z96k*epabVa#Moi5#q6WOhD&KbTIBX?xb;dTK##qKm!YdTzy0FXlVpLR0$~L{Fbh37 zGd2p*NF8_?`CoYb+L-U%`OrTZykXUdwzVYqNGAwV{7-5TX)C^YGZ4Qv>bQh4))v?%LcAZPt$g$qU2L;Ckg zOQtCEJ{VIj89@V+`4&)9J;xQma2L7EW;^kYh+#B8piTKu5b@3Zkcbo4VdgdldK0a8 zQXL+2BrKdq0gl?5qZn!D<>XM9P#3^DU_mCP*2io|eUNhf7mI|XMDWX;{N=wyW%4Eh ziseUf!>nIgTVFikL;Vv9u)k?TGox7PmgZP;xP>E({?(qeK=^AN+Nmr14Fs=A1T%l# z^^BD>!!jrL1-Sm7q_Yld@_pa`kZwej4&9VSx?vzvBHbX;(%m^2ih^S_C^eLB=}ukSiuaU1k<7fg zSW6<2H@Jgsk7$~lycLu(V!ToTFz&L)S2$K#YOdPkxQ<4{fpw%)y73|e`Q6YyvWpd- z88Cj1zsa15SlR2N23Jr-eiwc*T-_G(kXMGI%cUTMN2alb(`wA)UEfZ%K8Apu1@40k z&MTqkC%Z!&!KKT%cE2a!ap30BQ$=Ko9mK<0csSH_X-UU(2(LKakUhWeR^;o?DL60# z88Ia52JjPz23v4^mf&_%5mZHLF+@coSlFa6dK}#my8r0A^ty+;s1GTq8^Hilz|R9X zGny9rZ?rl|WUVfMs_F+Q-0?)AhdpEWQ>GUN_dLU;KwO98{R!VXp$wc1vh4Bk#~1~7 zc%Nl)7zap2!Y&>k0BdZMLKX=icGtEzM#?^Mr1mu$2l%QLgSDBXiL~g!AQ*HUu$P@A$U1Ba4g;6R9b0mDh}mrD=gc**|>bcBf4VQ5Z*AI$2O5;UKf$k@X!~;1O*diAn>qQ5?lT;r*4Ap^=6NVF3A9#Bc zb8^a}SQ!b(Q)t|SB*DW{$Crnr98r`V9Xi@$JxFFY7;1Yod&H#HTj(SahY*JX{(Uu$ zA@8096(7XKHEhq9f093+e31}Ud?D+JcX;J1r$<=r*IMhNm;Y#$gu@3-fH!^+_BWY7 z$yd<13=yfK92$YxWnq`RB>|q=z62}>wD?N>N;8#wlbqn`mEfHV$f^J&kR!MXxv+L0 zP69!(T>Q_(G*P)@D{Ci&%L23zpvp^yKeP%Tv|7?XNN^5i6uEmq-!_1=fo* z@c@>7bv(*JBC&2#D=u;fNImSh5siQJEtj7KLGB!=gGAr}TK+fkl7Cc~?b~+7?5x(7 zVc+~SrYAK>dSZ&V-w37gI@jttyl@3#(HeEkPw|477kNebIrnyjiukQx+AQ1Wf1jgw z&W+81bTF{z-s#pNR?<>qwCZd zY2jYk?V&e!7TnE&?Y<8U!he5=`)R*0m})>&Heu9KB2e_Sws>1Gd?gHW7j+DDow2Ce zz(jMI?0zc4>%^o$4cY@>1P+SX1-cY$f_q6&YCsevi}13aeIE&I#y%y7l2`Cs8=X`A zW3b4*GvP%4i$bH0wrr(~J)~;N_jM9gB|^5N)LA7p**)I9L(L6wf7xZUGI6tC@%8~g zB!Pj%PNw43CX057Z$PBQ6SQ+S1;zY^R3`*AmD+r|~$Cu>e!Gt>JHJtSo8)7ovvzi7fp;)HL(wn zaVctJHR*;A(wrF8{fMO&ia>$=*ND+yM1z!*JE{OCuu`T>a-1rmm+nZNPDfddrzpeN zWD4@abP>g_271H^O~kqIx57tSmGl>HD_2zQ|~4PqMx&q=bq-IPqDF zf6HT%dh|Z*k6;IS7RzWMZ|*K(`nEFm*d_<i&(9MdlBkHuJx-?ytp<-`x@j z3mOedk$Y3ANdcG5^D`iy#vEfrAi+q?d3>?KnxH~cLY{p3Xc%;H9lrsv=#xhXXafFy+?AzhDSUuRZzLOuxjr5R@Kd3709~KP2Z-)ta)Rjx zNyOgCz#E?q3w!;9x<|JDfYYfNY6wZe-Nj+&&jFgSU=uN;&Z7Dv&=(C20R0ACXA8>)}AOApkZI2kbLEfGk0-z3H zWi4$qg-6>P@g^&BIDjGxC?3GD(x;+l38M`gZ4pPzfQ3^>qF<2!9qxJ2xyA-0_+Y^O z-3q46`lpT;Aqiz824urV9UrHk_oEu3jb3}_ews&X*WBIL&2NvT)p|z6)rE*;+U)~z zIzn+cIl=rYZxY#+o8&(Ei%mId9+D>_{rouD|3K6%_b+`(U&Pjg4RTNfLs8mr&K3Bf9iVBfQ zFR0YX0s`?dw?grl+-Q%~7)ad30RBaMhrGzhW7hJdmSJQew$Q`Zpl)9uQm6QVkL>kn z8C{I%2pVa+hUAP>9Z0|%*z6+ut>!kj^7m`J?qc^yi$txT8CutQUL|`hAfrq(=cCS> z?fkqS6P*^`g=xqP)i`tJx#xR|>@TqdB@5CLeQyPxTPM3mP4X}j$By0BUUK7`JPMvY z7|`c8)M)v&XSuj|S|Z?+bvba2I2?~VrXe=yK~gqzwiIgMcKc2qxU?*~8p|m!ky}g+ z_~s1x<|fxu8$RXNl&w(`W_(g^&mpTFZTZ++Sh`L+bmi#tgSr1etBPWAp6k^w|K2vX zMgE(6U>NYxUjme!QSnr9jU^l$nLN?tJ2-8d5T++TO*0gilrep6-%7Fg49TRazZe7Y zfkSp~?MR9O(w@Q22evheJk!c7L`=z5!u)j#C%OMRg+_O9CZVr2!i1N{R@{v4&W#IN zP=^otWz0%D14>yxO@5o-3hbPtTHN~cf#Y=AcOU-CMQ=#>*=^XA{Li>LX=9kMR(eO9 z%zvP+d$ng-!EXxkf-|<>p6HHsZENfDTRMMzL>x9xQ(O+&pXsm#gE6d+$_|v`9Ia?I zAE-+KLY-unC9BQE1QdsT(nFd>hG_rh@7T#V4W*o)qpnZ&;>X&nsKrr)*~y*8mY*-2Zc@rPfxqN7H_c)=eZ@Fqir^WsFp}*<(@@zASn6;wssZMlmkYuoR5P@w{5M#&I zvffX~nq0C0anC2I)(Nt`zf+nE8(tcsyibQ|cEw&PC761e6aMf?5&|szK4_^FYFZ7% zLWLv)*+MHnH10c`FVp zUI3m~D#nH?cJ)=y1uEz{u*EtsH5M3Zk1rx-07f4`d0!zkBs9gUz^y9c@iwiKiS5ZAVM#C-}2B5PPSkr4$4 zPCukcJc>a-8HLX&M^Luj=~6k(6vE%ovi~NvMrUrLpxKC@kS?7JOUGkzTMQ;#v%>C zRzwYf8oPie4_@Ia8ZATdp6S;ew!K* z^Z1woz?f(#J;^FB%bx$ZrbvuxH_JU6Vt)I3(d+AzBq@srom50U57+++tAhO{@GL!;Qc8N*CzZ~M*(J#)I+h{oAruydYO}%*0V0r`YRoO}9 zkAh2eNa161rS88n7yc1B*KP zP0nO22iMw-Hw>ltw8zyba2ctxyISMj3`9Bp_fL(_(00Nf4v6r;IFQdU6i`Rt@>?Cn zkRx?ieu6jp?hb}2!t;sVn9r)zt?R*1mHZt1ow5a8(&4DXt_Rh(vaaw_&x3#s6mFCbX7fZu^4E_omFtZ5?{EfkqI%pYl zN8RuV%P+gbpjUp+ID$HKfn+(i6|_qvvW|^9hlKb)keqof0nhpE--i1U>R_3VhoMz$ z!6~B&1_3N7)`BGXeLInB6c@N6J)ImpFsix_bY}@H-A)7v){Z<$IQ>QLj>qO!p8L|5 z{0FLiOD->o^AD1zKHltb7l6}y=}?32XGLNAfj^*o9AQLgG;u@_+9WRU#PKnI~uWF0jFAPWP@7!XBVv)W-NqrA7&weMROEI^G%ssT<2gwLgIo}$fe z6R6D#K&|hNaInzPDF4Et4^j^sZ*hezd}<_o6ki#1Bw5xDmchB|PkIS}+wK#~afiG% z<|-$KfK4^2jfz^TPZrQue&Zq(bo}EM@KDFcBTX_KKWso?7Pz`qsLxmg#MX{aCzNt_ zElF|_$P&rqHlAtUIg{MO&2a|s$1|b<)$=XtV`x6qEc|3He^ zBRN%~HI%^*Pa5RHBgw@aytPE2ropITGzs+iys)Y%t)U4M~{A5wlpK+5yo-9&T>o`tWFXL5U?0D|`QNI9!@`hIQ!-m?goT?Qo@4bTyz`BAf zga``ZvMk?iAuAwR+E7o>B?g&5n7Fhh9sKEQrP;@7X{C#?^Tpz-dflC+wm-;441K2Y})*>oUsdE@Kf8l&;2)oAJ=p9#EF z!!|PNa4h-R`S8ZN8pz(OA0Vv&d8hZQM-!?l2Jy!Bpvld^ewKz-^E|5xD}XY&LQ`!=c#TA~(|^;b@}YiwS0 z@8LIls__%JFrJ>s`7Ka=K2DGwo22Dly`cMn7sCL@G!om`e>#xf zxFY5nyXl)XS+x9OOimS(J5f)gr}Jj6umzbRn(M=)txE?26}g*(*Vv)3COLs0buYJb zVz&4@4C8do)lC-$^)F&Q>=xJ|&wrV_ALT_xtpyHy9rguHbPuZE{&O_xVk6}l3ZdL> z%dD+QLY&sqU6L91thH&+9CscF;$dQ?K*IMP?zsKpNGg9~{@dS8O17+UTdZEw{`)Iu zi>FGu%1XL0BEBK=2_ub%qPlMUdm1vuFCi-zJp4`$yhz$=8+!4!CckMPnK0^dszsfE z+Oc>mk5+WOnanraT|d=efq*}-3fGZ&XGZ~lGdX>Y`}J~t-yyMNWnnH|lQF8Vp9r(4 zLoyh?d2oN;i;Me_JMh@GgXIl~`nBce)#qoZ@hZ=sDB_*m*4dNBDy=`$#!ibC&eKy> zT1;jdH350`Mw^vhil*wOew3_k4H-P?593(d7_In4QHO*MyyK^d9Zv-o=GNlc!^Z0b z-7 z=PJd5nVU(SVx>b2HUG{GR+(!si9As?rbszurr9-4QwD)Rss8fA@qo0@%cmzzivC(S zy}woHs`s&4aR~_!YipN`(C{os;^5-wbJmoH#21;v%uriw zfypWXsUJbky^C(IWPsp`MBs(G!zt8+iPjD@tgNUJxc$rURy^wncxM5-7Fn53pBfbS z?JdWFo5CU9lW~|z5raS_9|Blc{smz?#}>F6^h2ooz_6_p<9{H&!?lweo5P1}N;gyQ zQ)88dav_w50M8&U_paSzbHb>}HUIhRPqVsFz|&md`64`GuIF;g4ft*Y9d}>w3pn7y(QEhr1990#%*w-NH#j2R8TYA(1E!~b;5Psw zs6XB@@Z}$Y7_H+c!rQ~)k6q?#2vLxGp&&^B{dNj#Z&!pYHj~hY9tH5aGhB;{B;Hw2 zr2#!Qrq2xKl<<-f?l@W7csTTVyN0_a+;y?n=y_FU!BM*YmGN$P!mig|Z&CA7E?3CM zg$jIuvhQP4T>Kekg&C#h13BNA5A?|9=IE0G@uCaW8Z^me3*Qzf%5cx!d3_{*dsaWj zI{eOdpksl()8wBY?qJ#^4^*#Y1Pf`7wh4tBM;S0iVxO#vA{r+ozrKryT~?_nLavsfro;CWW(Rn}E}SQ;>NCeNy8f=lp%$ zPl@ETy^>DSY@9A)y_@W(TbVhq|->*G+#TwvkSx+XeeKOQHC~HCJy9@(#b76 z+}er>5cN@!eEfPed*xpW6*-5Ty*z!WkwdRDPm`FlHLC&0?c8;HCaO)X zU#@D_I&lAE`_3Pm=vM*9XrafAOS|>^J0uc2&D@jH63qca>*e+SX9ML`lPN91RXSVJ zti&$O7QEbU;;XENZeea>Otp8963sX>f{f=rM%(1^PopkQs~h!FtLi(&H&bT<--y5R zPoUiOoeFjyuW_ch>Dz<;+7i=*RFWF&AI8xX zl7EBCnr%Y9_}m$*6xe669DeYCRlmy?T`s0JI~&p@Fe>vaeZ^}i))2?U^Gecb->*7f z0ad))T`Zu%LV?SvH5LBb|)_$}8NOeYuA}R`zU@Un!aQ8({o_$ex{hm85(V=-WYKtc?ox^Gm zji(jJi3S=f($xD)KPfVcyRR0bXX-TXn`-zu;*vNk0s1;L zaav)OXDirxK&qOPV5fRP_0?s>Kl&Oo{{}#>-HTQYj!uKwYh7@!6{~i^cELPN{x(HB z>Xb)#TkrA==3>(y?PTVD7#(lSEYaotMLT@k_nrKq+NVXV@z>2iQc@fd5?E+o$Kl$6 zmbd44{CfL(oz;C?_rdvFo^P5D9N(l_cE6Hn)_q1WTu#d3;K@S0i8i@{2YpuCGK!5} zzwc)?=N6#&z>O>XU&I1l|CK8Hb+%xag1C0mT0yxBs_a7X05ssiCXWZ*Khk?8UaF-E z|1C(o4$Q_o!JZ~NNgg2tUc!TFgNRgSl@Tp3AbBaD-ZoHXGV?70B0@z1p&1MW$QVpS zXEnmP3BL+`x~e#=DA)m0-F?3Ca2SVtj-WPxNscE`!Fn*)1j+mewFMp^pO{wOLvebL zcr|)n;sfrBFEHIcpc)n^)dByhtR|qiKfH>hB4bAY51=C|lpi8ru;$_?rd{-R0_F{X zWf`UA`s;u>ag9b5g@G0+%C_pfVkbZ`tR13(y)xk2y-awICrd?g_mEv)ejx|=ah{+z z?-{^ZB?3h1lK4qNBZ|2urnYGq4pjLHk^~3`_>&9or_8*lVTtAkj42zc%cvZM|_hmt?fcKP*y?`~Rd^V!s-JyXWHe&HN*HcH*Fe2{1R15G028`3!Axo5c^x_z6H z2I3bpc@o2H;Ot~8`!g9{A%v!^mmUWU723F z=+lb~4L8MJx2HKPnzYrTLayoD?BZYQ|@N_29zg&T6>P&4;nEm=!4ipuS`CbAYe#&C= zo7}RA#ftl?CO7NB4Zx(mKKb*f%Z&0IV6e*518C5bmkSHIzkrz8XRrT2Ur@Y2uab0b zb#mNSNxgYR2$#I}r9&RUTrUA5ml^}}ry;zEro%qy^ySG)pkg4N?DI56d`3>dt_Weq za~pYKmwHE$#u;@E-SOQbUx-kII9w>oOF^%*06d2qdyfL>o+RTe`hPyn->EZY=<&gX z=9~6?V9py02qajc2PJ_H`~Qb_BYA#r2cI`bBmuyi12(I6#e2^`WKwn{uN=|Ep^;J- ztPc~(=Xq%qlzuWuN|I@*0wQ;n3NT$nU^!*kOj586SWci4fW~ysp3r9i3xcu7U;EN< zuukXRJjg--!Oa176q_{T2E2!cd2?+o@`xA%{Wk&-{emF(lk419)+hk@7+jH8^bG|U z!$J^c0#p{o&WT0iMqX0JEqt6G(8EN27z$HDN!?0a12xr}%|?n^fy3$@HcLX6FfD{+ zTv9ZVF=xY8m4}XndYp~_Cn7GgeugzTo^IkP6&;HJRq(j{LYcI}x*l}AUP(jO986>C zG7F|m)%%l-$g+)4JI1lByhHxDj3C>J`toDm-Z8s^itETya!!GO_ZW~AkU{-7EoG=C zBLs(CiFJ{uQ!;s6$CHF60xtHdWn7_|8vRzvu_tX`YD(?>g)8n zcHHXZ2##UuxZI=gMYA7~E~#%19r&{}Q#uGls2kL;DFB}>cYC0Ps;2~`JT=o3gWm}W z4?VehA>6(y^Ti9dMh#@z?9iJWwj2i??){gX*nMC!1ww6}TA`pB;vy3-8~FW?`1}cZ z1c`~s09QZAJiM4=U|3K-dF4YVTj-r-x@LOjN^aX?T+!251Qrd1awGhX0u)1sJxS!H zK(@f2`s!rGQwG>4r@Q^u0uk7v#xGACpMU+B=6W9o)d8k*MdAdZ2r4bb1H5bBbXvkL z5*qbYz97iIUlH02 z*YW3vK(EEGvLLJf1$)~S2@h?Es1Nb84wEr=p(nXm7g~5v7L}sAXHcJ3xHPZ$QZfHx zYE0Qx;6js)umtrF`CxzM<7aEFNpD5IZle$1wW;tTXakahwnVhl|M?H z0b|hRTWK?~D4KhbsX8Kwr+ByFKr-*g5|#J8_*D)-Em{V?jN%I@W=WD|qn@D%lm|{Z z(q_5@Y-CgxJp2-kk$dE^0YCSW<+zGJXv9d#198Tt)}*28cU7MgNIDsqBiN|Hx7ef2 zba&n3r6Ejt;s;JLBJIz&4LljVdk&LFR9deT2KuqGo<9GBmA-|O z2?xhQW0GqdQfD;Lt!ZE1io08Iag6 z;gDMCxv=^w*2a(+it1Jy==Y4)24C8^l*ws7Oi?RUq-ihG7 z);w9&e<1rb%-tgmB|8tdfYSdBO_CGodV#k}4lK7<8apg|gGw>9-igb{M(z<0^&}zH zpos1)z$NhdADi)#r%)EHpd|SrP@@-D;hl6Nno1?-;LL6~#WqzQ9xoG8BsT3QMtI35 zV(hHZD^?SwsPl)epz0ap+Dp{DuOav8u0Xjins7Z3$!{y2mE?xp{N+O**Vj=hK9>FE zl)LEqU!`w)MYd7)+0n|Qrfz<>3qtX|VACxc{*vsTGmzwOhWhyPcI z|8s;L@za<)J_&X?wNj40?X%bV?ouJ8rRwfNl!7=)=5d2hyby>_FNs7 zVmfasIZu($WPMuztDSCI%Jy6LlMPE7Ge~K91z*)Ks$&n)f4k_M=w!$PypliNpHt3} zg``XzPdtS-3U{ol8Qy)kH<&gYQ$dW+9=%msUz1+Hj}I;?YWI8GZim^K-dp z{Hb_K*-oP?-!yaf@VMQ?k7d7i6=wE^KTV4obYGv+Jy2FVnkqLYnRv}@z$0k2+G^0k zDzDOWIK1jL?Y_1Afq-UP^i)jZpu1c(d~<$JJnv*#$x>`@GPgv4iD*{;=@##wpSt67 z+k3mZPd=@uA%<$C9jw$6o}E%iJRaU_cKzWjAYqNSc6QSWBiu0M6(!mHz4X9>r2iPS zUvMV33sWAG*l8U*zxJ?p&mJr*s-LMtg^JPag})zrbOAv&%zEU|6~4;M&reCK^yu27 zrlOy9>}F&jVrC+N6nsNUe{X{5G2$HG`Q>zC z2T38~+U#n;H>uG4dm7vw&ACY-EDOLy!Vy-qse@jA4_j@nJVxY8f09?qXfBX3aXXdn z9xaQu9+hS;m5esVsy%hqh?9x0P#{t(FoZ5C^Og`J^T!R;2^L1B2bA*~9zMR3zpc!! zI9Z$v)7`{P#vNO1yRTn`mAi?|?<(e2j4V?7o}9`M6cn1enN(2|>gnJBX zRTTAS@AG>$c`YhDbjTiUnRzy~d+~Is7_jCL`CFN|A3L&Zwq8_C)HMcL*XV8!IPy!I z9eX&5{}HV>2>+)H>7-gyq&rN*GwqOxNCSM}s;z6ZS$dMfO~m}C^m`?LUclERz6kURGJ$J> zaIsy3E@?Ao$+7lG%l*e~HGA!IRe`Bfj;p>rr@)P$UIn~He+Y3obj_<&*7A zdSQ-J2ENkXUB_qhMdp|1kN-}caHqG!_TS&~j4O%E$lz~H9eWx)BN32x9W@* zU;L%`aJcUfn_nZj;4w_xd^g}uTmNASQ+=cF_5AJv)mW`^q`J}FZYWsG(A`mhZupXctAsvDAv*9A6Xzc5eaX@{=g-+e7gWskV+`l))*UH+EaWf^=)xt=s9S z9BRf}X{ViNL8$_diKj8oo-Hw6JzQJ9UL9io8OyG4m**^b{H!d38!Lt9Mhs2>3YZp7 zqQk!2US`N!-*e6iP0S2=SlIF(Xg|i!&Qp{rxW{7wwT_DxfE4MN` zu{}PQLF`4EQYnW?p^B%k)=IaT+djB*{|7qn7&pj)IeaX3%cZ`1H|e9vOBKqwr!8v> zm3vyPa0E(hlrQ!krW|7RxGM|NybiNU;y4N)1~M$K|3oXQ!&F~rfr!PektWofMV6X$ zFGc&Q>*JE6xhtaCzfT(7ExRd^iKZ;q!Y0g>e#&g0Qfl%DBNCJNqK*zbuTO?TC1~-{ zlcL}sbV_)PXIrC{PtWe(OO2Dml`0UbgtQC zg#T&L!}c~Q7&iZB@g${}dS`MEq2zB^D(1JP#n}GoeN8;{j8&YGtxDt1_82B19M_y%>_=2RGGAFz?gB#y7e3@0Mi`N03K3O*LL&pn>gHqFWPqs*E+ zB}&`VJRcWrZQl(`Gka`k=RD{<7^hxbQ21r=s8>vN)eZJB=zi+d^3AJxgY4J*$jA3< z%RNG#naiLUV_(0)O}<&rsL=TE>}!kMYrmt#jg7sesUG9m;s>29^Wz?4KEEC`BGUS# z-?MeCy8a^;{m_lF@~EEs8Fa1jv{>l-#NA;&EpMvA+w~23uTvr`k@Ibx?ji7-#Yn@y zmPGWnp3Fade#5&d7p3lEKsy&`fniOabv3{(6b z80hugt=N0?l)6EJKv{=~6`zwJjD>zw+28!q*nsS~$wx)x%lPj@W_>-bC83TBOBn*A zTjs1?G4FEb&W2iB>ZeL4gFk#VpD$C`x>%(Bk*H=huT4M`mRzRT+0M|!Bf$1o;=&#A zQDsFT)SaHC0~Z?QWkaPhl-XTs>?js(=D6_J)7*o<6}VDj_HMsh)<++2v5hLJ>gpCc zRv0u)=jYbUJ(w#h6ak$+sFmH>=|M9*ZMu5siN~?t6cW|+U}Y~=_eR=5TekVRPoyMK zHwZ-d=R@P-yTCLHZN#Y=tiCactA=Fhs5heox2 zb#MN(ttA?xA!51(FZtq_{!mmscrR&}m{^k^wN52anLknX?rR>w0{+suh0Dhc$T$}9 z(G^Pgu|NhfU1h+QRZch8aI5fSPmZu~)~9CiN!c%_Pw$)v;yuj1;GzW?&#&DcC}+e>@<8} z{oV3T4k5%vopm|8au+U*`AEC;uB@U@uTo}0EP=!#jpqjgo$pN21p(Iuhb>poAu@-$ zX?XK}Vrw(i7M`TLLBs0V8aBrp7@rD*?T2f3M;}(TeBYnrv>*uE8NqPGv7T56sdExNJHE#*iSTFfk~%?WAlqB^3>LC{ZS|?nXY9()T)hlvXiyE98W6cEy@?xMwj1*wj-XP}j8n`(M zgg8K<0FzEJlt^6)LIKK)1Qe817=QZv1WzeFS)}4^Fzw=KNu0}6`{%RcsW*|KV=e6`h zlHJpmy08LX&d|f-5#4c{Ro@Z`#y^waL1*+H>ra9wReKJl!Bwa!iJWG3=kq6xjoKx^BNprxgw@ zmNg_~yhzDtR4~+6CSUc}b|^-+Jh=J-JgGQjX*TL}!DvRzdj>3)5$Gs2Fz*#trgFC&X@oG^ANl+m` zT&sEs@Agi$!Q-Godk$R!Z^~q}3jDXV_u#7p`6`41^nc<5X1bx&~9YQ$SMuL_84o%ccF+%m|;(!|Gohqh)srT z9drnFLenq9!Z1CgxmzNZRhyvnSJ(N}1+OTg8FBIQyruQ8csPl)wrSlOhLjY$t{Muc=eTF2 z)SCMHiIy|Wz(i!D2UQG#2ULvO{g*f>G`t)?>O&W%xd6#0gW&6T*I-4n*oS(H0~$j|KZe75tYL}h{+lan<}*@jHI;viV4r&`!c?-b>a(qvG7;Yg zNlBIO6<;v7347)O>3!6End702Vd(o~@P>Rs9&i6Kdf}AIYEkqMuKNLlj~75i70Bid zdp=!4nr}}$MkRS1Pkae*rP^eR`?RCkfS{4012b)tlx!F{B7DgQNXC(* zFW9%oM&8=pkIXLh6qc{_L2rnRC=&IXo?%n_0kRw5H>U}DV)*99>K+V;{BDjYl92GJ zdvNyS`f+lcSq}g=c?9sE`Y1Ud#Q}(djcQb&B*fgs+cX=MP+lJl@Dh#ZvyMh6$CyT# zs;%J&93+VmJ~vmSW2BZ6V+z(EE(W@3rEs~(p#i}>Hg&1nPyqLPLZh4fQ!Dj$euuE& z^TUE)mZu_p9YXgqX1M=)^m}ACZ^<4tBj{&Py)xuVc|NUlQH7K&rq&(Zp0KD*0$jmI z%2=0C?r6^N%W4eozR0DwPrz$XnUj~o{6 zA-wt|50eL&7O=&xktxu>l=rSjaq;7cC}Mf2c0+JDxIX#0TO7QgN+(rpJow+(=S*)v-UVz>RwTYXFSJ_N?zb?Ae|GT3WPxd{< zZnror?hf>>g^NSKmJLKPZL|eECoj^Q7F7* zqBWq-WMcE6PEIFS+CtV3Ka|b4={`R)vcD#f(*jz}y*8)YEqYGzs(gW}h1276feco; zcje}({!LT<-25aEcp8Svx*}qt_lf&g>bjlqItumIbr0)Bh{k>-z*vg7O529tZe~07 z#$AUAe^V_P9=Vch4gkVF3%3up%z*?6X_?prQ< z{}SDEojhJz6YQL{7Ja3*mbGS!gpQZyx(gKY{}t-+HrZv@+v{*;@j(#-*6R4lhw!<_ zeIy)-XwFoi1WIA)Z@-@_1vftGP!TFTmcTIA|8A0Z9g%`#D|W#U5k@FY-o` z4YcAl(yW4q&ui>+Mo8#0^(sLZt#)Lf{kTh+fiU|sdjuY48=LE4!`wpbS_-N-VV$qi zwb-6sDtGtaMy5`r?QJ+|8qSu^^ZS_ZPNqG~E6qVYofq z1$@V4G2$=^E;zCHUaB+BDv~eP{N^3e_@gJn@@h0#u-AbUTIs^aWB4u5$aJp3l=p>i z>ND)r{F?rIg^-o6%iHwvhOeeE56oR3&AWc#9Jcwm1D!>`9w-#IALqqc6 zpngvDOVL(1&rOJSfXTap7h`zFQNlV^~ zn6zK~16AGtvj3`0=`E^HXzAWv>_;|daXS?t0 zBo54xJO4x6isW{ih(zXmVz|<4Ey9vro_M(+n=K1zvkHS9W!`bh?FsyXX-kJI6D-*9 zlq%jgRO?90f`LlHC~xE^H&DmBCqzW_}Wz@iBvf27{h`+Mr$yIf+;=O zMWaf!B&@Ia-HeMWBuVvs3U!J&$o@vGgu)k+uX2RWHb)ElcD_RCpq~a+7Z)G0<@ok| zunVaGsZB(3RB#DON)1^#Ksuk;RM9qD7H?h`N8#*Wa2?lpfmE zta0-BlS*}fITKX0=ZnmX`lcf>u$L-rHl)>PbDoXcqMWarJgq`ksS_!4=Q>-ab?5e* z;4!(Rdj0DZ|9RB@wIfPLoq$%(&|XQIrw{IUrXS5$w1qM9eV0S}-h+}L%x6+U)NfLk z(FE;_qdQr`7^VOjiNzPYxZ>KY|&)|bMcwl-d8mN?s_5*dJgWGg=| zaoI$tB*I?*qub{T#6b-)?BCop#cOJ>j@?A^Dzke&TW-3k5*EFhFIf$V!<=V{xoG|6 z)*9isG4OkyoI*pJ=Z&mW;grD-`CuxH7=$nsK(~}Yg z1}SYcTkx;3`e);6)BW=iWu?~7fskrnbwF?%Bg@$M1hkfUP??way`d!}8q30h2*T}8 ztBf}dn^|o-%_y+7LR*Hl^BMxY)r_av_AtJAss6u}tRkNP!#uGRZa`{aIM`PIB4TS$ zRWB{acKN%r01KS^eeUio2alMD1*xSwjVY6aNw>G7T-8urzbOi?rx{JySiZ z75_3LJ2_gq#{qeG2!v4U#)#< z(^@s}S;aMHomkm$VbpugCy*LEeHL|<+HO3yPyw$wv@CWJ?S1*upul|5nc}`dGg)Uz zz7t7T+@HF{ve3g|Aq-8>Q*ZLg`h3e8575H${(xY?C0s0yCa{;io^Ou&Sa@_p6#~o zWU4t|cPsPN1qeOSOh_CM{0}tu{E%jWmZYOQl)|BZ$W98!ZFID#3v3LSlDI>T^K4N1A@_W2#`{D{ql3hYGd~#iHhUUWpR1KAY89wRX*9w053b#p{V5?W^V? zAws-`bTo7{^hj^&n>P8g38bSF{h<4!X|283@&8Jwg!WN{9 zUoxtP_;^NZ=0WUO7eM5X4}r!Xg$0XeJ@zawgpx?HX=sW-OnjTPD4%xAnc|m`HFpX@ z>L{cFcpn)t_^Kn~r@{d`fM6va@OE*$ai{Gaes%7}97!P@L>z?z{GH55+91u!RzjcF zBdPg_0K6kXp}R2hs1%K^g7Ab~D~BAR%M(%;{oKD;`zSVJCjevC5Qt{PKmkh&iQAb6}j?gxH1g)x=ej3sI2vpVG@dUR7e`>T%W}vIIn-c~b9Z#5D z68H+=lRs8_bZWdHLjG^cijTpm`HZaamdRv4P21?Uy}Fld!I^JDB4~e1x5a48yjXAA z@Zrn5i>p^2IbZQ_evKA0$82Xij%wUkL}o^z+{;Q1yRqRB`!q9e%qPl@iJdF|N>B*M zlXh~(Pxwuktth9HzxzLm&N3>hwhO~UgEUG>3yO4igT#PzcT0D72`V)-ij>1pLw5;M zGK6$@42>Y&!~31@KZ~`d&Uwz>_kCSEfxLZAX7#n*3|cZHsJs1>FLS@M2IgeTKRIFI ztTsyHK6b5yM@UKF+(U=H5q@<|TEn2Jvb9RHjRkYWr@URk~`);SOS^$PP*eN_s||O{M`rIwfQ(WX3KR3EBG(lphJ;SjhF2 z!qccoeyQ1q7Tf?H3%QU+cdF$cj0>5sQuvElNNzp!Kg!Vp1&|n&xL5N2Hc1D$7CNXG z#oQu1nhZOW=)}8k5*tlJY+m&750NVJrxUyIq^C7%h<5o zdGiQz1qWzWwwC$Ha|5Nuu32%Vw80mIzhUwGKNP&DylJGohjZFEt|;1nAksEck7t8} zA>dNz1T4BBd!V5WJb;qGXOk=OC@*&tY#FQy;85rKjd}TE{$u>h11r}M{;!i?q3tR1 zT~q{i-r|QZGG!d2YB(8ve`)<3D%S~%uREp27+guJnF-ChaoncYz+3Hbq(0{Zjx?n@ zCMJZ#(GB|BWc)bk!?$OE>qFB$6=ke+odkox{y+03mC4?jkc}A)sg%V5g7-a`r#K8U z9+JLf^URlmBbw##+&x_TxDyjA;XBxF_3o4bo8t@YyudQl3lG24*>0Ez-Kj?mXf zKcO^`Xpt~it-ziumDTVk>1atRI=%ylw3aiMgH6#Q-@m^O<7Xc%q+9F(@_qOY<2VI? zitfzfhHfUvUsVO%L!-Pvd(JQ3Vt;H?QE-#GfH-pq5T(KdJZdu2<#K|Xv&30;M8szi zucRYJ{!NcELiDESG-*7IQezpBNNMR+s^ieYp8z)D0B2yA8V9H@)BtU-77%S3Uvwx@ zDDodrQ-~YnA)>zi!as}+1ds~1tHT$2WJX{Yn0BHfUlVy+aj9s%cH-2Co5gilNa!_i zE%6hdjDh+er|bak7_Wj|ZaR?AvP$$`+%DK+%?*nSe-Zr@v*>L0Faj5{efB(xC=290CN=X{}10IaY8<^`jezkg-6^SRJ*Pe z#_0lmM|#ba&`@7P%3fS)yzLeopnCCt44c5@>u9tKtQ2Mz0wQlys&RUm`N9l-_fE_- zZ)FJKVE5URLt)m>fI$LJV1&slBQP#Ug6W>v#?C8yii-rgfId)BN(G6x4RBlMah=tl z@3Z1ZmO^&?r#zvm6~$ekg@;Yr@Q+Vn!nWslq)MA(8+xAxji|x+zoSZA%B4=2=El+C`vC-kUpK(nw`EXK{K-KT}8rY^>qw)JXcsc@D}*h&vww6svnb7}^h)zasUj zEI}2TEal^{XIgyYl)i^^*ppqEKPrAoY5-z>Q+!-q8_`@t1G zX#D7oq2)yb$s1Pquh^nqiod1cE;(4WNR_TWZIW8?!-sj*ubuTaoXS_VHa#a)>!vmr0)4O>VXw+jj z_WDF>!D&U;j=+@RsJrSxg_A)V`%-Xrr4a96yAds{bz5T$zTBg%1mb0JF z{VXWShnD59oMjoXbE&>s>QuPqXpp*Y{9IIg^2_Zwco>?W+JM#GUQ$5GuDD^lSdk2u z40WUPhA(;48Gtn>X#JTzTVCkPxE9;Xd9aE6{#T!J+RCm#_TpT+@?@{9FoCR?t39P3 z8P&ol;6M!^5DTt@u?Mc@=o6#6t-oM^0InzEDVW>Zj%2tmx@eEVDqLnBN_>7_7^{Og zxCet$sJ&wtn9uix=6dlOW|Qwr4s(RlG`&~B$Mc8TNzDkh*Ctt!xf@xcne#H;t&ArK zrA09dyhT!?b*P;LjdOGuA9?OOn2xcl^_0-{)~dSDF1lVQmSf;!BuYHfNRvZFY0_u+ zFAT@`GPb#<*<=XrL}37(PM@0`IiYe$4lLq&&Ze6hGl&p7Oa3vp{8v*dT3pvTE2@q? z=U>3FCV6k3)4vwaI2;QOyG(3Z7GB_@$~Sl_dLF#H3oS3a8#{8_l=HH-bB_BL##iT3 z?4^b7t{T-TnH#ChV#l!SbA8aFuO~qibYI*|6*sC%0z=f1d1S$?j zLrB<{T^do8s@levs#ZtkSDkC$-nscz_6c{(koA1M>%oCA&=TLLmX*C)*AUqd zx12kbS8{-N#G$x!!1q*#S6DXv-U5IF4{tk^cqBh#(f&V> z*L_B4;$M@44v$tAse`?q!pP8GT(EBq3p?AauMcO>va$1v`?17#LN!)hvs5` zBWBwO7dZD6fOG{8h|){?(y&Bc@D{-3cBEu5Us?D)YlsOfdt#zjU@k{q0Qi@{9)=Vn z-)u^mFW}n0KT!{5V}H%xteN5*B(_K*-PdrEvBjQ@EkB=&f!}eu9`V514&S_19Q&Yt z)cOjh5Q+PYZ!g+sOduCRC(gh<|ETTV0w?8YBKXL#rq4p;dG5Z97%-GE2!)IkNP+F@ zy`%BKe6`<6lAl${%gJ;)V^H8$GCZ_lB-$Y_*zs-=d(%*3Yv6|am%l!P5 z8vl*Ln;k-YgO|9(?Ay%>eM?F{PwFp@&if7*;R)&2vR7m}TVTek<4#nV6r~U<_KL^-uTtYoi{Z3Ep7w_sJYzL;W&e0J-&po{ zsb3E45{L;R#cP+lx7`rB#((C?_VCMiTxz$x^XR}w2@2->990=ozvdd7(i;-O6zN;x zl}+8FB>L&6Y1umZclUbsvX~B1oP$%39tYlu64{hmHeJJhgkk1urs1W|-!s)_W=GX+ z(w7}F6C@Z;1~KcTWzJ?=+DF@3g|&mej}Dv3V7Y{S{OjTQwiD~7p|xG(_ev5&d5GLf z7~eV-M>U0*)8G5+$@qjY^0Afl=@&PDXThAk(9~wN7YzvhR=ve{PlD;{bLE$DejGa4H z)s>*LA~{KNVQ}bFqk(F0{O~t|CZddtiQj7I4Gj$LxRcl#F9MI`*$X)SRQs(2aO4H@ zA+|BloVX0j+?uvbJLcBjlD0vGuUoj}kW3}90ny5sF{yh6bi#LboLnv!f1?t~2%9y` zHT@c2N^#DZD7OmwOwGWK$mxGomlyjb&33jVtKcxGY}g{ScKJ=;?0}Qz7#E$n!?tFE zJ1i~y(2q>>ldHP$stq|Z53B2!W{;meSJ%|KEN|PE5N1j4PyiXnfe!^^>pOoS-BHs5 z=+|xI9(=zv7YwByUWRE{vPmiH@8=@}4xt=Gt<%wn4^!A;0A_QZ6hmF5N+c zRfCR}-vUfza6!!KD=C9RS8EqLM@oiB-OJwVY+mbTDjDdJbmvkI8RU5ni)Ld*xe_%C zIeRFBwAXk+GCZd5(_2GfsWh@1ZB4CXLSuV&-b{7{y`E$ZW^F1c75uUdR7CItmEc$ZTTS*wDaci+Y35(rTGYc~vWMWRVrPPElcwHp)W zaBGhE=}Jjvk~QPTt~>~at(?cn(}dxoqYrmi8+gssSglk4qK)| z-KOh0-3@Qz_fEmNFB3n&bLrK-lZmuw@0U6U)A>i~2oB#6lNOp`c;ZpkNg=dXg;yuO zVOPR}O(NXv>9IeheXrIdDf5%ucb=yH{CwM_Ifd#hWo zFqZ(g2tX&M-W#V69@1+?m2a++qiDd1*8sK$+dAQy*4J7?_mdzToQ()eneccKbP=_{ zhO|NU2HJuu4Qx%scErKsy$_{|aXIO~4+znobEN3rp={w^g)iqjmHR{ z{6s)!=OjDCNQPfP%P7qY`0ZHR)gQZ=aoe`tnSz*9s1X1OUAQ$`g7JuAmCB$S(*bZ8 zjIX2eKk;?;yn87>puUK4z#NEa7j;J@9eT;FZA7A;r3jeFRAl-M8G&(0+ZRe-W653; z#Z28pB4JjT@2s_11CQ4#P>wgMN0y~wN~@j1!S>SuPF3O}n*ISg2Gch#W~6M5p^?jn&sw~_M<0l&cJTJwa7h11evGDcG3I?A}fmT&<@~qr=%De zp9h8KaTot83bXf|q_dO!-c|gT6N`jTh#T;tX#9);HQIkTKEEdX!7Z~7;{B3LZbufafj6*4~O410$z@q znl95o{#7xT)XYoKfy*474VH44)Uh)7`wBS`!HXjut zemZW++Gs>va}&UV%s8E8HpZ(8SPyEc#g{rG*7j}sJB55mq?CpM)tV2cEz$b*H2JcR zt>Y%$?!0Zk+do>r!>W7jZ!>{_K-TP355ZZ_Eb4@AZZ>U&9N@DYkb`hkq$&&A75|VDxWHd8(Bmd;JMT z%5suCFfW(hNO8RqHK^~JB7OUmhpzgnQ@bsJ1kBhRw4O_VQLu*!23^bHwrb&NC#^u3 z;-raD_qt}Lf1?LU^gJ;@G-(<#{NX6kDO|Z=xgJIoqfa8qFOOs#DK6MY3TKT8uUt=9 zB7Bco=IAMm3?JD4GD|B3J_{E`U;vs2${$41Kc8?t@_*HIAe$Yck+U z;T8c(lnb(2BA%cPZcW6Y&p4PH?dOoeXf$C4nS8W2+5oQx5ivu!%t#UTfj^g1JGPNd z;C8f;jw8FR&vbf4TpMy3iFD+L2+3Ap8bh>T7tH7 zLK5Pg({bS2e+J@h0)+OMK0mcMVnONj`*bmO`~z}#I0a$xqU?9Ybyof!OGj;*m3q!O zczi384Rkg3ABJcc?QK74o~+w!czS{!yVgglKdxD5kF+TE7W|=AXtCsnln(W<-d>9U z6EW_Lv^pKRg&(pQ1g#@MXM4!}3|b|04*bKgC2 z44B1jQw@X*3XJEwSQ);~7LL#Q4`lf7W#T|RrlI;I8#4~$^ESDmi@d_n zx$$>-dU>jLCeSYo%O~epTqz$B5r2#!L z(FQN>eSp8Sud@2?FHdXBNEATW{}je)Yq#_w`UNi)YY#0wMB<}b-{8{104|j%Vj1|a zqV%|9`hfJeVK~RM&c)f%QkHU&%>o7 zCkEXgG#yVPf;(hxM7A7OjLPA??xWY^J@sKUK^KuMBfY2Q>3^WEz{hrlYW`@% z3d7cG@9tI)w1|H2Q+P19S7apCK%bx1TA2i5<;cN%|L`(&sdpZxxRt-|nf<=!7CyWL z4~o{6Kdp9HctR$fu`TIQ(5NtH9hwxs&lxGVO^K$9B&_jR8<{Ynh%G_%apl*OxK61- z6>npXFBN8$^T4cuJsJUq+pCWCpH&mO@EHx(!1eDNSJr* zJ}-P<^t6e_i-&2;kSz)DhOZb&{NLALcnct=6Dgi4k2BOHf2K(&j9MG+XWwu`vWo6W z(Va*4w;*mIV$9wU0BEj}g!Qw*zO;MrHQxGmIpKCVFo7Q&|0cjzJFFr5A81Yg*5J`D zafNheVefA5YCL_$Q zGyo=h4LQl@_rTls$|EHj|6n!kSN}H~fkp_!G|X&mpQmBO0TUHTZGi@;l)BsM0jn`B zEs@wZeP|Ram>x*MN!a6J*fMUX7l`6)+d@V5W0QI~RuQaJJ3f1?|Mte;Z7HGaNB@Sg zvXjSb+&w)|T&`D0DXt-~U3Ub!5}?S1;-n)fyBv79Q>7C%MO+dE<%b?;L=?2Mu;6T#z0zi6aexflQ= zp)?sJ59rb0?kDC}wA_eaR|hJL2`PUHkV9=IfyhJI~PKne9 zgCseUqMNXK^aqG>XyjJ-fb8wJ!&f?g!Wj3G@c=Rc={XRpUN6EP*u>1L`j9a*(kNcm zZ5vtiDDnC1@jhH2MK6eGM@OVAXK@1s6`90)I*fRK4c!$@^M9NDCq3HJ^MqHLR}(=q z`b>T}U>Q|(VN7Qyn6mrt&$r+&F6t$b0%M78ZG7-&fhDiN8BvX%vOVjd1X99bUAUx(kdaVz$ACIZ^#Y1%&7{l>2` zoG*UcuS5x;9wLE`F85zD$-NDv^pi(pYej1kl6t>5+mD;X)K|oR_v=Ygh@86Xd$`EF zsj(IuMjDN0h09FqKp$K_|9WToO^XW`13uECSgOFUC%eiyzTi0apyEwgRcX$ZPf1+m zo=X*mvLdd*xaiV~1F+sL-$0T~+EP%~%2+BIBA|v|cdygvnRF zFT-QAqUR0$UiA97D`=ANhXkQDpXewlQ}0zZu}s!}Vz@P;HaaoIVwCc|7yNn8HgAHV zX4a8iBvJR_1mb*bzA*i=L2=pLKUk=!?F$;T0#+3-1}!fQT(qP?dJYaQu;Alf;X0e` z_InJwMrf{Ulz(AcC!s|t&R|ruiBt9>xoU}|8W6y3Mf%G$y@zi~k6#h&gHYT121*uQ zG3)<8kVoHsO`?=VNx5zOUz(_YpMv%ulJ><5T6E?mmmsyPzuTOG+r_q5F0U(kQ2$)~ zbbO8}vYPo$OE`&Ya}5yBCfOvSZn>1=w(cGHx)*4J0rKmw;b$?&Y}SuPHsn!ekvK9b z2t;DwkuY6og((TQPMqZFM*7e*WyCl@NW_OKd|J-ui%GNts6$WYOyhO!xb^`X7?9Lf zPbE#jEWo2YqcX`F` zUMmSE@g$#>iswwLrS50T7Ub$On$bmRla&ckr!(E^#de(B z`T;ny-x-#30zi`i0SL?U^qXyBI&J`5k@(Lh=VL)*JpvBnxay#EmdCRXTrEn?cJE2% z??}c)U_LUm&{=JlzS0e?im}IPU176c9M=pEFn4sO1Di+uoX{V))Yq7q5o}D?Wi0)w zR9QSx$GV*kX`wToKG2)$W${0RR~VL;d>xqJ%o8{eP)w&0E}5lXktZ*KQte4vhx1B4 zI+R94Po-OX77+$l*i1ka57ZQ@6`a)#UXWG3r?_GvZe|+4ddRhv;<=^6+xIwu+@e%4 zvGE^D&Tkg-1e|6BOss#dvoo6n!pTaY;`U!dhVqJ>-H>~rP&=PlLVLj%O-dBP$W@I` zdSy8bq}{K0772wO7PPpg?o(lE9IACw-}vQR?S4>EKltJGBxeZy5OsMi+?lRjA?Qbx zKik43_U?RUT3cCDC)3Zlr0&mIUEguMmuW%)qO&S~|e{Y;oF2HOLIzc;@*xGOZup zN&q%9>K@fFlM0u~I>ultDn+amqdQ87{cuj4t&Fn|FW@PqV6@=aU&N9m>xWEqO*AdEbGVvdWajQxtJ zBp+d}Ri0r-U3lM|AET31G~p*&wei^(?!Zyp2EY|^@#e;#^= z{>@0$7#g~8i4<{qSa&J7{xD|(8xuc{`eJ@ukgb7i%?gGOzR41eker`Wmp2CL8f@S9 zqHd(CM2_}@SwvhLlQhcz5prihXRbG)LY$f8vkcMYWQWfdxEfytx3XmM5=wp)UKkp# zQ}W79Vcx$4w(7{zp!4nT_goNiFD!#t=#as{>fW#v-qHEr+!{Ue(+T?I5d77yWAlTz zZ!68))0zuZom#g|0{`8J;E~raKD%>z{XI+cb#w<=&=E{QbX73f7O~6QUOA~gmDv_HDveew63e6H-(FyGJT zbVcL`Tmkb^=kRd8C~(0#wTR3*4w&1B+o*n$VfhaG3?<&%q5NmRI9|k{tuPY-#eY-K zXt-3J^TvI=r8It2$SYp_XdtWF#jKH%-K6YC=CgkR$;~)g@c zXY|BR_Ri4uO-H?KSMX!nP+>uRIZfQZdj7^n1}f%LI}H&LGOi6g6-~ppYFa5)6`(@- zrIRMn602AjDwgoeovFAkxMOK?esU1owoamk*n0pHlzVj${PGsQzX|`ukVu)-hX{JbUmq!CW=#eK|8kt z?QzVVjB-mg{X6{UR1|~BF6?8SzimuzkeDb3GC4drTx1=MPiAFRcA*gqVswwHKTNWU zxHCLfwwpHk{aTMpTLJ8sRUI5+JDhMebSyC>4o^HuBt=STdv(=t7ZkSVW#-coWt?blN#i$C(=g@@PJTXPbzBOwp7 zGdlVjS6FtL#Y#$gdfm9VSnnX8gxX^@Qg#g*&zpN-K)R{+zW7lOHuY-mRe@?i-bQv} zfk75`^V`sq zL)6{g{pBA`7K)5EH0&X}nAkx~yJ*?hZ9wcK>hV65{!1f^XlgOlwso8-+9w1(4j>Gv z@zzqBsI{sakUwA6dk*>a@CfJx&_QIbq{Zv4nBhoW8 zXgpb*UzSpq#H67>fk2>t2kw~sZ8E5vB{vX7#D@~s5!w*_LL)|t zzDNr^^;Y9NNKuH$*|1(Onh~Zkvw_0oRC6H*KueT6{m*JDE!Ml$u_=*bwnL0I0Vn!h zgM|mLWjbB`pf3M%`?BT|czn6~=&``N_g-KOF561|=K^o_bzpBXKD`Uh zJ8_TcG8cRuUqUm=T~np{wv0QKyv5X=oW^ng#FR-3W6NII=+w-O`d-10Qg52g1!n6& zO^rCLESf*O+#9rJ+&B>)AU=Rh27Fo`rE@)Qj+r!XZ&D->J|=}7-@8$eelE$%$zswM z_QVs=aQOB$Qcbo0V%oER(1vsXME{*z!BqdXn^~r=_=y)=Xg)u$iWOx5Q|maSMJMQI z^D`#QXwpWxNHChp_C}h@8R7zvb9N+{y;)7SYW5!hcEKOdhwZgM^!%Ql$}$Xl(-Y$7 zpqz{#BJGF4WuLN*^y9v$J;%lT2+nlK2pv0+1`v!)#rk7&q?^dg{7m4AoO(%S5f}q} z)u{XvsBe{fcZ%&5sU*Yg0|2xdZ8@qhb!g&kY1F$;oL* z*CN7p%re%)&o_l(h zvZ8>&DX7i;5k$A~Q zy6tTSqM(+pO!TufH5TINTR^iKq6--9Y%!IlpKuhak}la(fUtPHMdK1>wtVjC6Bqj)%3+`J$JovIXj>&LKiM~4qWmk_bjAfjpW6Z z0+;#}V9;KqNmnqzl?hA|C#NGyXg8#)TO3jf$#sEK}Wj{x;#r~R7Vb{NQ zFa{$0f_Yr+CGXb-e`+ndPd-#J4}Ol+(SxMDPC`$MKs@*Jf*OWF3wk2fK1iEWJpba0 zR4fxWfUtaHD7!CpwQhZ)rC0J^#CiJp)M@r9D1NL)j2IEuegD(p{DJuKvQ};p3ln96 zc$0SWuf*bfdP){Mcg9cLWXGrcgOQVte{vzq@Gos*(yDjX-S@4ML~y@v%yHOy%VYBd z_uRiucTNvqN|*MfOP~x^JO8;o{mMxTM$GVh2=OTwtS*=jZq6E~Z%9&4JIwTYO@9#H zZgVa&ff?gI^$;L}QGlgeJ*}%UIG`4L!YM!QBtv}Vro?8SLE%j{L4?O#zcY1ajBin4 zY#(bx*pZM8ID4+_7{sXd5Q9g~dxSmh+d4#sv}_3n`k9xz*Kfmy4;HUKC_sFkMeHyi z+MwMs-|4AFzibb{rrIqH+F%50(#F3AB~z8|r360yM3%YcGmtcV^&$E!o?Kps_s1dSud8cT z#veKJ!kzEb%lAOAG8OpNl=dt0N4;@xnJmZQ>Nr5gG(I`di#NO7Ww0(?nU#p2eVY zH=cL_p(FLG$0zahHe!?9(eS!PBB3~9fRG6%szstX1|n0VWbS1Zt#}l2C7d^Xqk7+# zC0bY#M0bO=)B%=6oe~M$q1sF4Dhd?9<5V3(AY#A5%~7uVtipl6liy1e>ghV0MpRK_ zT_#R&A>rb(;0nDPDn)y@_)lKfIykOh7ZEe68%PXMWZ6rKJdnfkuA^^tTN@?w1V=6ijH~*LR!6TJMLB)7 zN*VN4*|vj>mlmO31f8O*=?=nXpC>+XYvEG)^?$+;d$8KuD}!y9gN!ga#8?kF`t}&@ zK{9*S4B=6$Sm$D|+gMHzvqKoPz-c2`#q%vw02}5u2GWaR8dw0ZVMY0LY)0y!jZxVS zp~ThlM!E)h@Ndmx`Cv<%u89s;s8Xp zi;QHv9iOSj({J{t01%T~jcp}CNZwO`c>!sZI?s$a^}+q44a?!FnWZ44JI$v?v$eLso1tA;;! zLX%)cyw@%!%wJUcYP4UrRVu3@;jcuhG$F$@WxC^q#;rxWwUK$)onpv}F}@CA$Pd;Z zwo7nNe1pSchb~8mkOb-(jSCKTYOGd$Jx^SPWn z%df|W#JkirTr~yeGro5!u9mB@zuXSzkx$7XI=w${j>XM*s&da{IboOCa+|x;1XA8* z_YKomAOsD5`}(O`X-Fu&L4^|JU}+^aj>-TSs6_1@BTKl6hWarZzR_h;xuQi`r^RdD zhx%OH`>sokL-Dos{{z*gD8WcHG*(i)v1Mv{7^GAam-^qH)6G5)&TE~~4WDd7md1$y zTjzf6(Y6dhkzfZ4G#n-fun7`7vMiYu#}$)(=sV}&D|@$SIjE^O8Gcq(Q)^u8RP>Rn zsk6Vd*!+juV1M-^q>Pd_O^GjAJVA2TfGj}%O~@yZk7@NW$Pb-FrLk$_&7^j?x|mEx*NjmGZZP1S9;@@wakgwjE_&Y$z}PP zOSx6Z|3L5Af~p(;+#kKaaZ&BjzBTD6buKqp75KYIZYJN}o?FN2L}0Brgh}kV*F*QN zBC3g3oLX20S~m?}RW>D86LB*8*mI!U*40qsZ!vJ)p=tUr=Sa7y&*<6r(Q`s6IfqBV zS%DeBt1FD9gu{Gt`y-Od05+jDC}aXO?)r z(cQ;?+uVG$bpI?Ad9k2{BskRSSk47hEL)bJEZ-Z}X%>4>NI5LHPtwmho9@_~2{oG3 zF_jZ4XsgANF{)&6u;f$a!IFc0R7$gO{_HLFZ>`01x&Fzbiv77k1K-Ia`>W=OV8Zrp zrB?zTbZ!p!;8h0m4-yd$YmryxOYTQE4hHK@Ty&OBAqeOt=Y9B)DHb8!?jqc#t@5IA z^m(I??ua5j6N6fXO0j~Qd)q&nGx{HWm(^+UJ^faxb-<%SSa+zHLVs|PQ^nABYb*Br zzg2(32Vp5Of1c^Ms1yJ6zsFfGjf>_^6XuGlMlDKy%5lBWe=%XGch<@1#naqMBlnQS zntM9`{LoBI_MpiLqu8mbyO~lBX+b%4>!9sMkv3-Zxl4U?Hc_+Uts6PHAlYlR`QIh* zrgtiz)rH;(+Od4;^j63kprox~7G4B5@&p8!sip)TVD6)E_VFRM@P=zGUrAWPPCm=^7u{=c@6U~#t8)o;o-~{G6`kO z`QV`S+HM{7uVZq*^o}^=Wjf4DLqp_P*#n0jZ-HiruIcN_nIRXAL#pd=r!ROhdA$@z_?eVP=s%FGR)>hBU3B1Sf5G1DD9z_m=kdd4-#Hv;XucCQ zCFua{R9{125IBTr9_7P)GL5jRYrlN4sYn~vF!Z00(VRY>Y}_53rm3Q~G|_XDP@UGT zNVzlkV^_;@k5(`f!5LSpe1>CMYuLyP0D5p<&BRYRv%{?Wf>@oYXHT`WWAI^P@^ z8!JsLU-ORC3}FV|M`CUh%haf+S|z<8`65z_XpA}fV!ilsM`J7eDU@E)0a?r&MoK2z zTfV+D3VxrLd)zb##7xl^PArU`TkGUAK+q5D$`8eVc>pjEX`_|^Q<)U_*Qozs<#u#tVSz1J?UL6Bh z*5~h;4e^xmY*GuIFvA6r4nCj6eB2Fhy}j{d81IK65uB5fY<;~W6mh8^J*;Z7s4K4? zR#G-&7#s-SYz`1<)~jtJ*ZIxRXxm}BWsYErAG9@7X{fe8@{uc1GgW10`?ch?wwiu# z`NC-_9D2(^GmNzMnqMzHI{8LF9UMOq5Wc@p=K$k^e3;77)zY1IeglW8(&WBq>Cc&E zvJq~2hx_`5AWD9h4u-C*?Yo3<%4vMA*F4ISNPqiCv}t+9QSLWJS00zK+S4-bmFj-z z6rkL)gx}uS*?U~-=j)z-LKHJ|-(Ip@c9~Vxf(UFdLxOFVJT>-LiDzj~1-%E>bws6n zwIx$$#ZKD?j>fsHeI;ua5*TK~ZOu{jMuK}m52dA-#Xx^vSbA&i@AWg~vb3gyw@%#p zygCE+DcR|E+5;UcS#E7C`N0c9zb6GdLh#{uea6g7t5Lm9v*}pW;VGpD9%Zbw3>V{? zf-7$Zxt)6svYi++8Ba?OZ*Qd-H=9+O2j4^{o3dkArJz}4j<{XRHYUwBhYx4~wx>l) z<6sF@XOnG6%j$V)c2j$NbbZZI^OJNFc>1cI;4d+qcMtZ(U~;|wAVF|%sKOL=`94oZ z^SRW zq-OW>iW%(Gpa03~pKaaMjoD(3_xCne2rSXT@oeKxW@r9`KbqN>qDiz^MXZby1Y_9k zHXyIQIr#XFW*LtE8n$uD%da^l`vA0J&-WRzMl(iH1s zNiny6$jW?|FC+jJ3mNyPcz0^i(dmCzIMZWj(|Y7khN} zcRdds9OoGI-#N~*Og<)4Z3lm&wkeGkS~+i{LIXW`duv7$1LI&rLQbOcGEWy1epRy< z^>go+jA;Js*$lTx=?5sA`MU={aQz2TSlsS7I_g-y-0hqa@%XKsgPYMwPJW*DL#LW; z)2Y~iL^9)?#7?Vt`07(K_E~eu{1><9IA2L^Oo6rk`@Dad6W>ksyW7Q*QXymtAKGum zpH{st!PUJM6+10pV|~D15?pU$(>2RZp@os_rsau-K{Y5-YF?^YR6M<}$i*yXG#NYO z%mKe*A7Xd0+YLzu>sCn#>5Udo>#evoYD?*hb?D>_H&s^fic>mgCk<^z{|5qLo~2=X zi{;n!3t2h`emaS94Ym%}{CN9Z10rXyZsrz}D>mebnUK`U^)Q^CpXC%Q99bvNB-pPt zTsI9(n|xcAIvw4QlFQh549$mqu}k}xI{#)Q)p=%O+PNN~F=k-4;QuV-U?DPIL<<** z;ZAvpqWqo#!rc%xc&AS5H35B3Wfh_r+82#PBk&#LJxY?xiWIas&N!r=y)G9ViF-YPx4 zV5Ui|h)j36X7kBVZ_|RRBz5M#Eh42hjYuV^^&aiED%%;>HQ1i&L2M}KyT1zXnzWi2x!gEmaY)TAze5qL;=KJl$g!8w{3n_wkZN;02Jo{3Vb+?DaV;Xo zk(w;kt3QD!R^q*JWnXAWO`JC+LNYBp*V79q=+-FF%7ZTKcyf3p39`i80|@>D?LiJE zgjeyuFYpLws&6p$-iq~51G-Tukjk)5pLaEpoDMM#S2BOlJ`PDVo*94H_>2Y~D-|j{ z;%LI9gE2B4BShusrBae$x`b;Srdfj+>!y4f_!RAc$dl4*k;*oIV=f`Ren;fGIk=)L zfJ1A!Mmp=kwv0z;Nkg>?uj(Pyv9vlXeD?rJTQ{mK^pc@ZiuO5$iSeSk$v3JZ+yWQf z5$Pn8A!<`*6OZVS%cmo#ld|QMW5gNN9^L0A1ltPndh=0USj1}btnT&FUQwe#Y`asE zZdh3?kB;HWpQf4V-vWY-0~loD|AB)4@Nw@kTXU-5KuacL;81vu)@}!|+Io%Zlm4v~1il)MixQYpFAiw=IwBu1tZ zu0<&lF0l?`iqA|BYSPm(d8)c_C>_GXtS5=vt6R5miTdhg)|9UBKdDUo@Tmwr$jZxA z?Srkj)zZVp&iWze*>+8x$q_YQ@V|`N$>!^FWtJZ$Y1I@)a!k1t_i{%9`Z{+EZ!@AN zBXM>Oi+wflN+xaN0%J=!vHJ5)++2c?&LZck=2=;Ri^dx&v8>qCt-9d zbDEh|CyQh0tIxaMK0#M6#q`l~ac+9~^=-bG(F*A;#-%ppoHoqbt< zGMU2BJ9dHNbbKO9+)oWhJp*@Tu?&hKQt9EPHa(lUVtTGWd z7ZYC1&nvJWkQg8e>Cin;#4jmoufu4(FJd5vTq3W5P{5tCoEORn{a2167V1;&S;4om z>)4k!*{b82HFhdX#Zuk&X~#p?C=SPrp_0;anK=i)XNCBOE4qrx=)9QyWu0-y0*s;m zerM1i&rCh?@l5NC6#5;ByCjN!mfoeuK}S9}3LSf4)R4;}`f|ZOs{I=@JCnZH2Qtnk0*1?@vzD1FvHlM`rOKqg z&yD(fG_mw{4Dp(3y}?HU%H&dXGK@iOB5fkl(MJ=(Fuwl*;y@k0zHrw8YXV2F@92`% z%P6{oB}iph`7yt?&7AHGdBV0h#~iocJ$D8h0KR{@q&oJxpI(vaS#-rMFb`29Ratz%^)n;~>}=!}9A9d8ZWc2aq@D6!I6rMgkiEOS;x zZm+1NkKJ2iNq~|_y!{)vBxC}9!>yGTtrKbDmDvXe)8x2rr^54%PO2FEyr8+D?BVEB zp%xl2!LVEE8*)67Kg*Bz&syd@J-oxJz`dk8$8e3Dc?1Ak2P1DCNDdacO%O)tbpR;N zPCx*Go_^ocqahJOF#r?00~q9uhsS~Z$4)iavS_yWO_sCn3h9`2veVESs?8^)BGi$7 zB2g6`Yt%~6#|B5#Fu_Ux0OYaNWmc#uyiiBnXm`EVuSnsS>Mf>_zRi`zzM{hSTRz`w zn|{BtPj;Y!N++PX&1J2kon*}n?`eLWGpN`fQ(prL%ZWcX5V6IB*Wzr_kD(ZM;ISh^iD=7>C2djvxBbqTRX6-7XNM93+ zWELSQo}pt`EH>>;+?*EY{`~&{E|(;YjfLeDaTmNby;Mr>z0SM1I@3*dlG@TL-0Fqf zQ%@4@{1v{Lm8A#Z20usVl0N-npHU{SskWStBXWO#hq~$X?2m`^2UfKC-GT0Q{_0m# zK}khPO+`x@Lr+CcwA9F;Y(-ENS08LB`1^IUkCBZGZU;roA0(2z%OSgtNnXg@;GZNB z&m$iM{(sY_3xL5*B93y(2O(Q02a})s9*M@*AuJF9C`IQ0jC_zt!O8Lb`2M{v;OvOD z$RgMTf&zuX@WHTCmT)(VUTn4{(ToP8zNrrIT$$o1_?Y4f8WnUTu#U!%K;|PS7=UHfsg_7 zkDouUL&|7bhSEQ@DY~4tW0nK9SBYis5@G+@P-PlZPZ^a(MI5dBO+PV?GopVpnqw zq;cSaa(^s%C!lQ707ds(V4~lrOjp^pwx%RM_OrRVg7XZ+>M}-d4^J6Wo<`bH`Tqbc zbkXH$02Lxo1%T{<^(^0xPR;1?ASYD!rqw-61OjHJw8uTtWB&lasAwTMUUEn2&@IO@ z5XaBVZ?IBU+N!XC12?vzB_w?3;CymF%RNU2H#;K&!pnIU22M#FZ6ovh{{UW`Yp&~^ zkrH`I9atZ59uzsiJd%8Q`SH^3GMTYK?Z&WDNsnr`S|1Kq&?TbOKWX#RaW{{Ce7;m_JV1L zQ4{|F>kX4x!~%@8SDigV>ffGBOnDy%?bM2?ugJ?-TI1-K6nv2b)mc=NyCiTX7HJUW z*PaGHr}%jM{{Wv*3(c%IO0l)k*dz9%D}Y#lNWmCBe1ATi7(}#HV4_G>i(&AfkfWbI zN5}c~GB*%ZX*#M4^=(!7AKD#mt4eQh&)6EOO#6lq#9Xb;Psk%AeLo;_dB<8hXNE%? zy4Zz7QqWxU?3&7J-0|A&5u(z@lhQOqtaBQYQdt!j1mJueVB}z64g_f`NZbTb#x7Jy z)pA$Cd@{X5KIsd?PVg*II-x7E7vmpD8OAb4IqHzeKqQrO2x-E#?@YA@Ufbvga^GFM zdlCXR)}EoVdBGS|1xMUxBdWuirx2{8zl1EM4{$Y7*tB1LuFy#T0EwdQl|2n3#6wCd zYN)Ddp;bBL@2WrsPbZF)=);^YQ;jyY(igS2y&<7H_uNYB<*o_Oo4(^0XMZ8IA*rdzEoA({8KZX6UP6s&W@70f7sMad?e`6nb zbyk_Q`h@Jg4vo59G-q?~S|?Cnb=?sri$&GhYwMnlp0NnP70WcK8w0pW1~~^Eac_+* zb9iynv+o1=1=#)!$Kr82TJTE+kFmbz)1vD`(3LE-`b)dF`Pu&f4Rh`cRI1`O#H&ee zi`{*o7C166A$Jl~{G4^oJ|4*Ebg3nI!9U$^ekZieu16Gqcz_4*-Ao!e^!Bt`9YJNk z+HO`OZmhRWc(u$f^h}cj9FhM3c6cC`SB>$42p}G``n5zeKq_h9k&mi-f+=cfrJqRD zqAf1vk*5S*ruPI~8~S|G@?&GO(Au><7d*E0Jo_(N9)Q41AFQ0QI-^AAQniRoBmd zxh9CUyQFNXSE{QaIQ%Us`jU_z{(C+-AK{D=e2$6oIqnQ*$`owm9Ld7B&_hE{4Lnf< zNFoucpu}pbp+*P50}4MO(~SGc1;o20ZBjA4TZ6J92+7I$&+EsYJPw>~i@^w;vATu5 zzK%ro(dt%EK8o(ncG5_}IUA#WK^{pNz~nA}_#fxhoW%GLl^K^NKt|U6ROZ)dH}(rv zC`>GtmkinRgs5%5%Q)xfq|_G}9oopF0kVMQTebFhswmcwUue{*?D`6A69qJTk|nxTG9yL+CFBjbi;etiWZkP<(y=0MqZ(#*=#$474K4d$hHD_Qktf<+xJI9W`aWDv|1`Wu6C~o*APD zD)UB;=o^+*IL}CY>|w#kQ(@BUBx@z`&m*!ArR++FFn2P#`CV0hxmqKqdhJg|X{4oz zh>8koukK+jCI`66RzOG@!2pc&)()<&YMR3%+rQHt7g(y{8cKRt`~v2*L|jhbxM%TC zJt2?#NiwMau$Uw9yDUdoAjd;h~kpVUa*mKxSufK{@&P0P*wGXk0n0tlzRy zP{3w%REhT&aS(}2j&h)$K{)^noQ#2w9ZzmTXpGq`=xSk--jpd<0j!QxtEqtD>SCsH zHoHVJ+ZmOBVf5r`sH8SCFvo zq^k<4;1g)7QM`QZVnO{pb*tgbK{d{97IRwJs(^ukK=+l3z(g$+ZXJdKkjaC?5sy3# z-1Cvu=_h-v_0`V)%oT=hFWmZcl171bRV0F&e&Oyt8mW^YU9P|Dz{hg+>aaaBzev1gbxh01k0Q%6@c59m+kzcD`P)f>LM))zw|l-zYy z(zr@NE`93iiE>!;^UwM9(4!^Mw4Tcv=P~XsXt3;&_PZr*&O(%s$soq{SR#3)0eqEE z2_w#a-5ixLz|rG43-`iPDd(K>!ouU|F0iY%O+eBkxZbBSMBv9d0x}CDatHG1FwDuA zT*GnPWg+oCC-O=NJ&q62YZQV?XLx=-$IsLJ`jW$J1TAH0~HwNS6yTSBp>W@bL z(0@yG^qQ{C4yCx?w5jcPfAoZ~ilb=)!(Pv=cV6J-P7!S@oHLK z392QawN}oDb=KQDtyQwH6Z}GIX`pSx%Le;(=q&?RX1Sz8s55sDFziMT;uoLwttw3$ zRGNYL4LCj8au3l*`wf||cPObcVt^m`iAV%SfQ*mkf7h!C=WHzIIXx9zaT%oLPn=p~ zL(qzAZDp2PhN#`Tb2N)kM%5veh6f?OM?Cdb>bZ$8Y1vw~mYuw;dv{MKrVBheBh`PW zjYVRfqFW@L*s@6lO9SrHlUou=182?=$scffZhGN86pfSb55#v%G(tLtx+COw;Cn9m zXl^i6Sr%lSWe__F3X&0sEw}|7U)lg93_26yTar#t z_{ctU;Pt$8g{>eQSgef|oi2N;fY#ouVAEZ)(~un-^O})o2Hg9pb}>& z7!?@tyWoE>&-3Vp=qR(T>+f;*cIQc@u9Dj7tKQo~Up-YiRodxVqA1~(q6A^NDt)mT zRs^9x#J+l=)u88?IGmCfQ{inwT0IHm=E1~#woO`+(^{y6pN61^@X@ra8fik4 zzDXP9-HSUPlE?Du;wwVX#_Sh4tDaight*E&y~gEjRmMluat=J;ocxdTi!xZZ zf-}Z*lkv~{`*iKewUMmf0hb2^V=a@9=l*}?(cE6ipm~l^VTmK@eadiha1Z7Fy#Q{V zD+xD+3IgLhiOw=P!>t^sl?LWX(?8Du5W8(jLi&*v`H;F4DAcL?s13c9061(p>-WYiFAEC zH0}G`E-Ud9hnqvGw^)sqrjYX7f4pYoc0IytQ?}O|#+b6*v{ZB&s`+T7ss7JiG_aiJOyryc3xO!%*_tDQ+kik*>p1Tg=i!Nc1b0Z4c?n2fkbsrBd7Cnn`VlB@(s0 z1G6kJfC$87vIcSw)5!bKNkn5Du64=Zvh@pQnXC?I^7Q>J?fdny{{Tmb`ZK+{bYDH% z3pKrGqK4&OO79gAG-&d-!r_+;6e;9`&U&c7*{flYj02Siil}P!?i;G4fP(S?XzoG1 zm6YmFRGq)H>WDOEn6hg==V~_sT8me1tkP-I*c3jxO%2aIR( zKd(jzx@p!ex*KU#3K)e^o#f{~W1pTs)1ZuD%LSA^NOAmIMt_fwBM1F@9Khu%WxFik z;O#&O+sh7lBmUo~N6dPly;aWU1RNX_fC&4a^yqAb!XbE|j_qc=+TDzi-7R%C*+}FS zsDen39zVs@YJeXbn06rHN}`v+tcqjNz^and=DSH=A$X>e8v1FHGR9)@2ZlhdO61^W zNF0HTcpUY~-sx!S2pDiBdKOkisL>e6xO0Cnt#?mf?OL+MYt)vix_ZhRr8t#kr*INE zKnpxa90!g~>dG^;jD3$?cA8N=J0%$;1NbjERl@3OsVU#PNgs-??_d4b?$>WMpQp=T zXj)h*ZWR~Xwymh5({O5?L2jT*YIviX*-a}2Gb@${Xe<%V&`V&_aRpT@E##TjeXiTu z*S)MyORksj&Kj6%<>UEcW7x!*yyzX0C%;| zW2&?-bF`%O2`Vig?@z;+C39=vh+Q z`C$MzXL32D1JcA>=tcV?Z>zgAu5}XM<%;7+6?J#f@7>nAC>12ZR6~)p;Bkh=IUM7t zEsj_%6sO8>dwTvMT(?uA)CiszU#3rQ?xNL`wi?S_*VEGJy9MsPimtXg2`i}WlTSxQ zzGX>U+#>`>za(xXuSNRRA05i!Q&W zaQ2s^K02By3*JB7W0j)R7QGFrwZ!@dwT8a&7M`v!YE5BPH{xveW?~uXQc$?4oaK+w zK9F!o&U&tNG07{L2brUCw3@#Y$D>9COF@{Ax;kHCe^nx_)f#uVGubV5aLq?;xsD*rOv&EPsw?HSmctV zhA@KTfo}a1ai}}Hr1bsX+hu7Ux?6#!VS}%uM#dezgN=rACA1%Db-ig?bM3OX?A`Eh%ky#tuNdXxJNb)+oWSs2}X~A6b zNZk|6Z`>qquDRdnu38!!Bw3}c)Z#5f<~5O4gj32G5P1cpDS|u|$>XZMPP%$oX~bsD zF7to&veWS1l}V{VS@wZdNJ^scl6IVSS;wgklD$0yo zIpC=oJPhX<$5}0BQFPUkwgcoM-s`IHrjp7HI+)b|0I1SkVbGt{BK?8W%VE*?IU*65 zZu*+4vX$Y?iBk*#DWjA*Ibg;&!+e4F>qo+o$sV2JI9Ryfs=-ySctigH!)PB| zr@5oS;j(d_c-(M&pU=nj>rCU!S3kXoRn^_w)z`9p$)c&Gw#!))Rwe4gB|J>A&r0$i z#8b13<8EFuzx;u~$j2$w<(G%Gp;H#b-`pL-?D{#2h_oL8``eWI5wTN>k6mf1y%`q1 zYnoGOrnN2BrsXn{lu$d*@1k$c0OWwiKK}sBbe<~L*+AA&v+ujFWLzJh3imp?p{K)c-HAybO-PIVC~?N-1TFiQT>{q?NWXBjQT3RD%9Im zS@t+T(vJh*s*^0iSCfpXB}$#m@$uG*;bp7^iUHgZIouBkU%wFK51HAPJn1lBz~{{V!Y!8G*E6h-&AAH=+4kCW9- zrKlQ6$Ay<0*!Hs6aHkG4SFHa4&A5%ETx?x_#cFK2+3pqkUe?q*roU-6)Kk?Yghfot zv?{1M$Yx{b7{K$B(y28uQzIg_OL>Xy=$h7eXlc~76~vI%%wua$R_}ZM9;s}M;ep+? zw`U*155_U)?bW62kg@4gVv(M5Son}eJOP3kybmAC{dz0d*%2k8!Fosm zf`O6-*4_6UXYcdSCvc6s-F>^2-~-?ia7X4o{{S5zxS$9dEK?E*#wOF@#FOS4uK-qN)88Qq}3N6-1>6&b(bPLO_r+SaC!dfo<|r5{{WFa zC}h~2B=b7gZt0Ko;col~X1j7EK$F$!xURJ-skJxN{{Y0EJcIq|C-v$Wc_YqLi3uY8 z5>H&zHl+16+ZzhGdTkS-F51SWak*BaXPG5z;{kG1;Q4NNKVW|6?fm*!Anb^McS9ix31D%Z z%1`)y{TO%yDIBKwE8tXuGBLblgMfcQ{{H}8h&Wh;91Z-dJgGlU)(gicAMfL(bJzKR!dPC2bbn2;{GbEZH_M&&n+4YKU?0Rp~I@*RT0UWhf zdg`l9Lj@#nAsl3{fO#NwE?IfvjjtHCK3Uy66TDcQZalbFYe)-9rz%{>l`7c-^4vdO zKk1&U0nP7}-$l8Q41HxrGID;EAMfM!=cxtOIYdR$X0@{%!AbuB+Gim~)#UM?&&Sx4 z)A2nD5+rHkyk|6hOk*bwJzBLmu zPzS=Yvh#ubUm4F(pe=Onw{>dRxglu@)%73UeGl5r5qG(FBT>+4eI=+nx!dhKdcIc% znu>~%r=+W?m6a8nWNAvf_J`V=&JGVw7Wj@0zxh%5%Rq1!9eq7iFS>V&wOYSiddTlc z?hk7FrK2eBI-b#|dplLGt=0>UwM5g zHIt#?r;@ehe-uSsT(SP(g&H}{YFpK70`XS)!p#!CY#XOCf07+ySN&hS?qSv zQ%!6Aw;#Or+0d@m$137M?I-pQM>7_Vm$v&M^)EZ>^{;wXNLfgJq*`nZI zH?SugZFSJaz0?`>z1zEQq@P-S&e59Nxe{r;G26BgLDHmj)r|$V z12Q}Xwlhc=02`I(Kmj>fXw5vfN+o)!TC(9=F|E2>B|q^u8KmY(Se{0FDELsL1E(5E z^BvR1(#jYOh60ar_nTS`PujbcZ1i?bDR*ft`r?L4CaIuDd(}k^IEqG6=~1yM@-hY_ zV~ifE8C>})7~<=6Bc|)E{{Y$gR60d$Y>%2j=3~zGq%l-JCW1h zvW?K$=(}&`>iasMSkh#nop6P5q~JiB%l+woEAzSAU<(n_kN z1d$}k!2q`5$sFS(6W|OUsORPcIYn*ADdX+@=8I35wz&f7QmDcwb>ms2n?)aV z9$Gjo7u(b~Z6i-$z6#AdZMT}Qb~&nKMFOs_s#OL`jjJ4HHADagC6+QyLpz4&uSKBL z>8Cnlw8}Hg@X{}fI~^0zZoS)TuS-*GxKrI>nwY|CE%Pl+9W>O^7$t?A9l^r~2Wpic zeDtpsf#8F`;bp}&z8kL5XrrvHBhP#d#k;8E+^ghk+>K(YN*a1gd=k_Nl#t6zNm(#= zZUNT}-f(%~j4=MwFws>vd z%kR`kTFYMQ(Z=9iZVlV<7Haq-s&9H)8ERlOZ<*tCQL&W*@>JuHIR^)+jejM9?xfI` zn$|Vhxd^4ZMC;vi-5%WBY_+!wJ)WH?4x_58mRn7p?MY7z@}ilD+cSP5WIoD`#|MMX zEooqUq_i7f@LMw2>9pzS+TXu>f5P5(6JA@pZ*IF>Zxhm7rKHsq+C~dDmc3BlYpxe6 z`j~0yXyTDr#~kt*mPsRXn9wGQ@FtQEPfvE7MC9MM_gY>t)$x-hE zH1N+mNc8f%duuYYN3n<`9QfUUPCq}6qYhiz>XJt^5*ly{sgK&*HDq0u?XZm`VLx_i zq^Z~pp5uP!n6CY~z#BNo8Qb}FqtIkX5uC(_yR*P5_K+91)L6xaq86i~% z6pnrU*g5+*3=ceIhCeMUfa<9WfZbhh?9r*GviA30Tz5tYOq9)RriO|o zj;5du%&6@o?YMFM*%{*U=&jlHWsd7l za19uMf7-`??0<7^owxNN+Iw{3j^fl+x|g-L3Fv2}hj|M$R8^A84Qy1|otJDvXkO2kZ#Tsx6-p^~MmW2lN~<$^ae#NO`7nFce$=N<5nVG!5uHUetkc8y0=8wdzWUu*H%qpzGw@*#&6zL4J`C` zIIVSGf~`}AIhe$h@`0SIMoIcQ>Q2!q*#vP=#u>?Nwzs0?6;*Od^EFG0iTbV%?&CERvnE!d?ERWAFy-@zlnU$ZpYl1)GhaxHN26Vjr`&(YCepS*7CFI%1o) z9oE#E-ur7cb=RxSHNJtg-DSQSsH!cKxhy3uRPG)Ilt>W(Mh%7GTv@Ket!f31=3s~s zZtlK8AG;OnehJ{$aMVqfiOrSL7Tw!<3vcE1&#mmD7wxvJqVB$%uDq|Oift)+?bfD_ z)oAX;4IB*mwt-%vD#uEgX=2|9XwU?eJh?fu<%ERoI7!R?{7sz z@p6H+bT5&#c9J43Ers0Pxd2=bQcgN9UD-|_1%_J+HjJMcC;j~O+b>~Yyv}m5Mj*CB zu_Fg~%AYvTMa+7l7gmq^B)vmwKFj*M&^lg<^F1z=?=^H?wbb-dR5W(^XR2fSs;>Zm zC4#HlDE|QcwUm&odgq@JbXc`50$QLgG$Wm^>y5{;8~s-E;r_66{dPK6<~h8Cbh+64 zinp)ZmFd~F*J8BSsWWc(wfASQwAwRSUFoS5Ro(Q}(n%JK)|BPHcULk;9E?d=?nN>J zs2s=PUl3H&YfjOs9y}R=EghaSgX-Jky_WaleuoU2V>M`7X(BwXw^p6Lhwv(Z{TFtk zv%B5cq_9$37X3|Y_B9RbPl=3mSDSP-aK~E|9sy+&BNb*++<MKX;DzdhlHRn&-VVaWe zWr^gcsZkuxOiYlMA>W~KDq>Zi6{ywrAk=AILGZqs?wRGN~X@ORT~HE|kxsUsOu zvKD1WLPLo1KEtJGb>GEkT{H6LfF15v2I8F(ejU_B9E>dm*JwNP`rG$~*#?EZG+KEp z=8hTCCXQ&KU?1L)ZeqCc{9uqX&Oqehy2J5?uqht;IGtw^n|AE4_+v#iGa9##D0V&n z0K!LHuNs?QU+T3Mtg0p(Rd?WY#RBG9dLV&=)nmbO*$IJ#QN{`8yMd|Ztz-2{zzDsW zjN`BN`J&?uMfC4>nM_T;s^6FIqN5Mm1v9Uzojy!xSN{M`ZE5a2trTV2TGnM3U2?YKFyp5(m_&6|OI-b+^*pZLrH=p;Wk7Cbdm)j&%HOs<}(bv9f@T zJS`jTQIY`UjE(w?J+eMv{tD53F5W0C9fs5ThV3H9LuS#kU9K$< z2NA~8Heb9VN|%a&waMP;HhbtXE8r6pke!QD z8j1a?=th2!)5kL@3^tZ5tFV#}03NXQd|O#VKPzGmZ)}5Q(;4vAN~(6s99rXU%5Qd; zxpY0&((8VvvEFpe%7*79i%@CH^h@~5J#;%uMzX0XG)}IM9O=U=cm!jurk$zBs8O=0 z3lq5PS2@-+YONl*)Kwdey+T*6sM9i0R9#K#m-k&YdRr>1j53I+=VtcAOrZ-F-G$16 zGI7Vlhf=38IpX#hR%3%T)2KtH76CM@4`?TLk#$}+{YM@D0J;+Ds2X>v?jLwydu%bC z&_h9PsY`7WW8k!OZsh*}@IdkP4yY=tVxD$3`6PV0t>&4d%cf{`45%3mb}iHkW7Dd$ zhG^W&#@BMk0mxXp0vE+?zs_Z-=fHDjFkh%M$#BIG0DfD{mz%p8q!isPA8P$ zq?Lbg^py?Hmfv4fI{WgVr>>`m@%GkcETlW3B?>kHR|5q7hfw6zX&CUyFP)C+_6`@- zCZ%;$KwxAXACXQBs9jWr+zgp!P;eJMPaF>%o;e?Wtizf>H(Aa{hZfsqt+(B67ZAb~7RUKVLp0C?ke+g8mNs3U8kL|u24yPC(^rlT4?#3IDy}BtCR25Wh zjrC0B4;;t2+lwwBN#n5_K3uyH$Tip!0r^bP}RPT)y!crH1d5;cWOC5hk|BJ75X)`KnBlxjnY*rn1xe8q=U` znsfU>T6J9`So>Xb)$_q8(@9n;>tjhEqeYohGPYR?hQa{E^Q+4|Paxjd%YgOky7cuI z@aVZAWL6H(m8AQUK(NiSmA&EYUX=B3bD`~LaF%NAH)g$4Yeu`mc3o@|(wNp&rF;h6 zRRg^{D*Zbo4S?7oTsNy$X*CY3rX!Zt&e_e#^gAeAN2F5ga59Q}@-@NRX5$tf;|H)$ zPOk4Sr7uMNo_j8vrR~pYX~id z&htx;SmJ8N#~E~l^}T=|`!!P4KSbfE8_&rLdH^!)b{QwspK_|pw!Prfey_bl>dxWn z+fQw~gQYa>vKxKE*WNuRryEwuVyd7FrvQLAvGuqIa;;lV`c1WH z>qd^!x^A-BH3f#mRtu$MH+yAm9I;dWC`%#+c20JPSy`KE4b6j|yy>gf{{RrwB%UU6 z1JGW>=5o6xl;~)vW7EjEXtqd8Pf8xBtF-k+K7_y5RcaAesf`L!Y-+27tt{T$rWH_G zm@sDJoOv1G)#y5?4*2w3$BsB#PSoOkWi}>gJ9;aK_C12}Dv)4iTsa`{ z*gT)l=dPI7fG*YNcY+*4w^iHwN3S|VNOr?acOLm`puB1=3#eJN#U!y8xYE^JU}|c4 z$lST7jzm)~Rf3JI04tuO*GmW4-OO(LY`QnYmsC?%O;FbP18;v_hvup$(|w=2J?`~& z+O1dJT}Nrw`hNMSD5~k}sbmltV5O&;qFPz$&@5r2WCel}A1X+}BdkO|BkK8HKw%&O zY>e)@cMwacH%XqcvI_=W5sX_R-@C4&m;gyC0+Hc9ki1|3J~5BwgVy_;01rjxqDzS< zb&w&H=On6+t8Ran>Bce9^MX=917-0>3QG;F7x|B#f3NcCUg-T$G6TaBNg2j?IpfFl z1EG6lln`Z!K^^nun z(p6B^g7kH???+n_F-c^GR4FQ{^OCGUJn~0MG8Xxnx?D0k2}I4@5J$+aZ8cW5z4}`3 z4|4l;uPqgIacR4Ru-k6QM$^Z0p_qxS^>Gcua?MX7K39!2raxMio|w8JX7@SY)7t75k6FFY?Nxnma637vcI!DBMy{I0 zsHFEU`|&VZiXe#`gt7oB=1HSFMndEss;DZfqptDhYny)iAK%Gkb(*;A=$}sD*MpJ) z`Tc&X>wje*?KJK$txZd-yL;U0U5EGfn$nW$IIh}e&lRSWwKVkf^$^xXWnv#PtEq@= z%by$ptkWy24N-z(OAW}s?`6z&N*V!0_S#1BxDW{K-Ch`&?gg+4jJl7japym;>VDm6 zgY0frUzX{g)}Eq!CELj*qt_kK(t2{Xn~7+y6~$_kAM(bE$NFcJk34l6diY=*u0C$v zf8jjZYL|dp86fply{tcL28hw!*`uYTk4bAz$<`}S-LCfSRYh*qR!W6s0=C{HWNMhg zdyOS5@uT5?yKUb~L61^&gpkv5ut4@(-ahl%4Lm#65mSJjF@@CgRS z#@FaRdtaiEwKok(4f^FLzi|EAOIM07o(F%V=AB?Ap@B8xH+-)33F$+CAPX>Z3WOxOw&$t_Z zWmUd`y?S>$wfgH*>djbhTDP&?$ktVNjb)_irTk2~YNonP@!hO($a1qnHi_xbfjnr+ zN4c^3?R2_CanQ1vhb#aC-pkJQnwdJJm2(?5LR?2{l5PUEFIxVkyECY?r)c#rY_(N~ zUEY&aPbDs)(^W3dYPU2ot!*t<^ivx&lG2u@oGV8lQb63h`TqbGP`Y@d4{e+Y&A$cJ zJ{;=Kr>c?k)BgZ37ijC!{{SUkddj=Hz1g?-1Gm@RRd3ST9`~YZ?hAO9crQNmlF>}I z>AwijM_iklME4aL;legPz6LFfrKOfCmW#+8x3*7l?Xg|^Qq*c{^w}t#Zdn>ziyg)e z!Nb?5&kCI7?@y^sBGKtxL+QrlU3j!m!D3xaqN_gb}-mbZmCG znVyQ4E3~l9x(i*#qDN^RKNJGSa=a@Nc|Xglty5Jl*F|Jsc#wN+x~C0jr%K^rrb&Zi zeYZZTY3gV8hDoRNs_5-GV7k)l4OJMSmO0|v_#}{+rm?qIqtsE>R0gW2 ztM?ZoNTik(hCus)S%5t=sLv*yLdVl%p4UA=vcc&BEq{orA6njSTi9+fgZt>FW|tMc z!q7Ge^(_gmw`wVW8&ySD54{zxrUn63Tzyffc;vt&96r;Yv6Y&n#_W`vUm)kA=oFeg zHk(u8(J(efvzMos81TxZE2 zJylUm$4=1W*6US2JE;64Y}kENg6+^)`(+(Qsk_B(uGLj_7XeFGIg(glsC>qNXK-DC zPw9^bu9-j!G=UqR_lZ9%u0g8OHlvFTYz+mG*b5922I@Lotu~vsvaA(QQC{h-6_DF& z#FdM3po3$iu}J_>uNi%(D%n3!7{ThPtc2BF#^dnabh9Lp=u*IcHFl<=|!Y|(F`^Dd!PHGOQARR-^Ki9c1lIKcYy z2?rZ-jQ;?ULuKJvrWn;-pCyL6Oj~{KVW^fI3M9XWB9^} zl^SW34>J#Ms@m{Yr1~vK?63Qhe6!I)Z3l9h>&~B{t**K0{XuKE>8i>mGR0^KRS;=m zmL5?hh15K4z>#-glabdsrLBD{9Un0)Ac8Y&`Yz)ZmrYXUIgK3caBw!UxbAx&ROk0* zlDbVJ+S~O-N8&Esu7}#4Az@cgzS4+;6kb>e)DpmCh=&B8rD`?IuA_o0o@Rm%e?(e# zi2W|Eu3+0XM+Xaf?xAm}n;y2hNp8MZXinALtzFjB^V{yX%DVzmR9q-$MuB8Yn3vp( zW0ewnh!+g34+NSP(YzjKowD0+Vcl)$Ac~?lLdLY)4!$r)ef|0^DW% zt!?cFue5fymciSu*6C^)C#lp@%R0P*nq^Xk2&CD%W;r2&!3QI#a1NbYT|256F3>DZ z`>isXNuT`JCdx57aYL>0E z+!V4IB#V4(QB}vb6Tu+hfJQp1*0egw_@nHVhVAAA5&qHB+#D*39bz3Xgv6{CAX?pd zjsg8u#K9UY%b>DNbKY+yB`0ddF3>0V@ZNy-qu>>Z^2 zISriten0cli7v`Q*H%blR87tGU^y+$-`Di}DJC6mrxe|1#TdlqcO4OBNglv^bAaH(>lD%fD^*N@b@nZ7X_QBjPr>5}4 zdS)G9g%KQZTN+plIglTeRay?bg!Cf>zhh#v=vQNQ3zD_ewdUHyMhu`fGSRS z&fc>Qo*TK>B$M5BDhfJ@B#u5n16ng+1~aEfA=xW!sYe+*^-0JBB{}F*dT=Vp`4b zYn{DR`VJMExq?|;-QaiQ%&6itTbp^hn+-WAGXS>qWLZ00sQB+k;9UM=S zxXrR6%y=07T`{I=&aRQ{BW&GB;%*vdiySgU>+@iPz50}~)omT$OUbp8BRW)2|RRKy+D$JQvti1`Gh!PnrcoUrFCNqTK%p!1awhTQ|oz=`{RlcZACBucb>_58h58)j( znp>zLZP@FONWB25KvuttvwxD8mMg?Mg3oTe(#0$k_d0P`6ceafJ+sCs-2Y$77iC)aMdWzov6!1=K@&kTrHrGnFj1I*^%>{9zU7KPv1FEtc4P7Ba#6* z`{Tz4{{TF6WalZT9F>~jlZ+5K+I)|kXP}&K-4{Zx@8To?&Pc)8(}N24oX zfkdHLNl_Q!qZs)+rcwU!(q)haZjiu8H10d z@%=D7-Pa}=J1Q(-r_FUyd0;+zT@y>sr zNd)r|(FN^52?H0#2O&xG@Ho%=$4Vptlod_-jX|XU0BA>}9d#&Z>3fHvb+={frV(Z~ zo}M~u-4Jv0lCy#KJ~7WysYrD^z9!cEdLxKBFhgx;W8GPm3vNY_IRM5EGs2z*Gxzd1 z>JYy*u7Ly_6||J@$^np58;1o>d}sZhln5sXl3wDfu{Ice2M0MPcZ>o!{K5S?l^;N& z%hhv#`#^h%raO7-`?ob(hL-nLNqf{hYno>>p)y2Y&DU%F-In$7R-( zeZQ=*Qj4uNp@OEWhB~&W_Gf^>h=Z!hnRkagX9pSx>X}kQBObpls~;^Bsjl+kK{izz zEmc;X(pO8W04nt)?_iD=!wKmStd%TSjldSzpsNGJ1Ci9p^+@V#*-F;)2taYZ+{bUi z>Rfb&lS_45ooC8q;LZhp4>QC`<~KEFe2jS;MDG{JA0A68Rq8+y$yXsRWkohqY3 zpaucVK^xBudUC#hwo|^Giw6P^%|+5GX47>TYiW(7jlsZ<;eL@lk%K{ZW3jp;x=`C; zp4HqvCuG-Fs_1V80>KVXi=NAM~g_indJTQvuD>n}P#P2LWzhIE$y0AHr*^&8SbQAj<>R-UFa z3nu1&0aP$20F0H-&ESFw!N1P`0GiXoOQy*{_f$mRGfmt;Bnx`)-pa^3JhY>&^D-`p{I;PPfnkLi(;aH00BTC0fC-4>q$oP>Q@!T!2TRt=c z>=B5@?)FxLqTsC5R~a>R?inDOdVj*$?UJ(>wNa87?;btbaIGQp;YSK{e9-3}XO+w) z4R4XXH}^}JYp&30O6xUD5KV5H)g8*uRZ73{j=aTH6p?~Ag^;KlMsXr%&kRXbBr+Db zc}T(PwOVGANvi2_O-G7`I?o4Z3)~Uxqn~s%wOwVmPFiNPQQ9i5eaEs#Np_{V&ea<~ zd&NCUPYkcU*^(w@We3|Va&f_-hZC``JC)a~>LZIuo@nwL9!JX9Qu?uCovL7(6q=T- zNgYfRMzcdKQf^mAQZPYMK?Gw2=dDq7+sn~;*^@dsgv`MP=hV1{w+(LFcka0UzgebJRY^~$#vdevm%Z5_o{jDAy7D`8OszD` zv8-tABLxW(uH3Vnep%1?4;?z@x0I5zaK`sPm4f8#xx)RVUD)q-i1iHh%f<*!B_-FFtV+8xT(_Pg8{ZE~O%hVnpjfdqz;WAA>-?mJO$RI^idm$Q0m zuS99>7ol|AI(txE;;5<7{m`+&TqC(9Ey_6LhMMIPEUxg?7^O*ej5uQ5NDXV7wU1v? ztld&!^2Kt-+mPbirx-ZtzgwNGq6h6O(YmX*U8e0epVB(ohR3M&Z+EUbBTZ^FuC1hi zRca~!0251WCK`5VL0l?3F4ZG;;evW9dKko3&)Km}Vv9gEe;NIN6m{srHd(NNiE~fOKr0RQ@28q|P zX>aZCbTt;Ey6PQWO{?p!lnyPB)=@_!ks2r}3~?G#knD|_*+Zs5aaoci2!R=so69mmz$Lg{QxNqwWTY72#3Mf$Se zd_b;ksL`m4soPK@yE^{L+1FMwnykj-ckQ=-P^ini zzMXwa-EEZ}s_b^0)+wj7_1dFRe)gc#dVtXWKBlArTGjE>$xhB-Glpp<-ZDu80QFHU zlufRD&So!bdJjwcbW|Gto5VVs89}4Of80pE_v-Doz3y(cI^MLTk!Y$qi@ut;(%&nnXQ_sw(>+b-ZmIW6ZiH=xp_Um{UDs<8!~ViGLim_m(%bF; zzg&BI?y@zUE2(L^5U$i^@aGb8auIW4YzZT;upo;h->bh$x~oN9yRlo_?(pjhttHv6 z&s(m2=dA9ozm^)SZR1u1j+L#kK}@mK(<{RvT4h$Kfn1PXRZml>s^XE2cOVXNz-Y+> zxM2X&iH$EVJzP3tY-6ZZ=O_FPAiMtn>&2p;hg(a1qP08LU#j*ADXD0| zWLh(Zf}zZ+!Bdx60XWE<*`DXUh9?eC4n_~-*>lIWz@IqH`>74t-s@cZIo#^IT>H3S(E5(2W-_nzSY{6*CcDbZ(4Z#E- zLt}LR0RGI_`+?bi*)!bRj;@C3Z=82;QR#gtX1dfGqhp1uDD9QP92~02RTWtwNetzf z3^zSSCrH=?q}{G)+Ss_sTt(E5hgyz;X7at4xITo7Cacn?Z*RTw*ImoewT5@Eymrp} zsI+Xf^+hC}_ilKq=^~uxYozF8fUeLN@d$h>^_tM-iJVCjs&i}mtyd68VBy&u(~J%M zQxP5Zs>6SxhCsI3qgNyiM^^&PEbj!8yNP3P74X~@#xPk(z&Y%!lb0>nu1*7FXm~!~ zH3vORe#eSF;Az^v^?H4l^`>rmnkjV+7j7>W_Wr_NDkPa+x}MK?kT0?#GM6;c8AKx= zSWInGqlQ9arUS$RI!9kA`)b?I+9`$=f3 zn=K{&g4nlRI+cHknxf-u6H2WN$rLh)B9MUDgq10bH<|dJ0yu`Oxwi9S-oRhy`|iD2 zz}0cn@ZB34Zs60>`w~d)>)loF?OwfWZ8_O^>8z67Be&`ec|DU*)k|8ncI(-=(upKX zZ3@C7rz+7Pc`0OK>nH}GHrMZpdd4C zAU;Q3gHWn;T6DEEq!$24JBzP4=$dnDb*g~DFsMw){} z>P-`*E;TE7&~R!wDlQRK+o~aoR1{Y^VvTE~jihM3^auEG#IQMwpz4EDplq*jG7E=v zHy)iXrSWEo{1aK4mKdDK0rGQP;ERmgDUI#!s;toZ>qqNK5Dk8g)i(W6N~G)_<-V#a zr60_~Kd)13Y1vmzB{ZV#drMET7F2W<52US%shhFE-$QlX2dwVpcEeP96z@*Ixz^HD z=uYMK2;VJWNgV4}CH|J0qSXv+2?j)}mJzjiR;M`RXRjvcl=D*Yy*8N;B50CZ9RFT^*R9@p#y+64!l#yZ%tlYB#0Q5$;G?Gm%83T|+Trbu6!1-jZcfxcu z@#s|A%?nT48&VkZ4)M5b;jyu|)pgf%?S`tCRO&5fEyi`w)|-YnFo+YNyjN6fb#)+FHqBJOkiYp^AoqHbxOasV$X2Xov_f|(x0}+T=xsI zJ@}wU0R4sW^HQ>|)BCC_duXbRG-f(uHBDfqr7l?myR-iQ?9jUsSfAk>k~--cO&nTX z8!00vm4mO;pUrZL>WQ_A$4u|PA^!jYRu8E^Nm}Qu%sobP>KUJ@SmN5g)ULDGMU@Gny&}yr1TEaOYdpW_uu{pQ3 zvahdPdOSz%=Ai9{oS@VCdYbaBrlz?=K^?|gT56qBCCYl{s9FLcBvL(KQM(Qd( z9Fo?4HmFlj%Ti)yX#zZeBx-jusXKu4&srAFDrv*Nt-~YV{4Q5pqYW!siL7Dp3&UDZ zTYhRfcC%e~qSvEjhKj+U=An+&9m7mkKXU2mAk@%K;D(+B2k_1WnfE6M3lgVpI>2fW z(mG+z@53YUUXRo1>fKA2T0kCC%mv5k^HxdeYObc`Z`HS{Eb(dR>#Hb5U6KjE6HN_m z7@nGWp_6lNj#X&|Fc@P+!_&3V$Ql3`KI@SDS<@RyUrSjSK4D@z5u4xF^h&CI zFL9)|>TMbzsgAz+a$Q$pqlT$oqOzU|pYby*GjJ5LzQRU0#&e#GJ=dBCedCeruUj;e zYI=6Ld$ExQ6WG{UMA$EKXshb#D+RTshJ#a@Z^Kg6!)}`4K}k@xH%EqP07Y3?2+Ir- z&PGmfXd5A9zBw1M{Fc@_Ce_hYQk)qYMeH%mH~A^Noyw!u8YcO4(UM%KF0|AUR0yi* zHr7!Zg4h5lWM)vUow>nKetOiqRTI;=!H0i!$0;~AO&^FLhgRj1ClhO4#DrEWt=f}D zTIJK1iA>F?>EM>SrWLyxW2{KpL~Yyw?n-1oV)z3bbq*@IqNWXv$M1XYuWNLDHlv6t z9bEt|5c2`HTh|?Jg`#aH?Q^KQ>KK>`Tbu8O-46G8K`QUCZPkM0(CPyV&qURg6o#Uz zLA7L{xKdQn)q4-QRincz6)n;Zu~KK{C(7G>R9QGif`W=@Xa_Upjs9a|d)x9o)4QbC zTT*u8)U|$x6pODrk>8D4bUf)>9k|oVBBHj6vn=e2uTLE$k_;S{Mcefe)r?xH6!i}n zk7>+GxysFZ zto%B{lT=PX0!pWeoHJu{K0M<(CRM`>O%gu)XV=wosWjT{Q&5@IuyT@I;J__r-}*;e zdMNMQ)ROPrF4t;XZCncsyV8SNA$Q@?uwFXpI zg9dqV_^z+QJT+e*57kmtGQv{R^6P%ZYP%hO{o74owN>itOIy||yKU;%NxHJ@sCB*i zDG?lH z2AQZ-Fi8Y1Ew%4#SSZ2j%C4%1KrHWAMrtPzdO5gUCR_*2LyJ3zvmf^*d-yl+Nd ze!r^O@C$i$SC9QwGHd-Esp<6v$5Lr4W$RhRf0)ZI%h;o#?Bjl`-SK&IkU1u zw3Q!t`&p`NRxagNTPm!v>CIP7M-6SFI(o>Mv=XUVV}dNM<%=WS!+|c2o}0n@OUUq; z=G=E3R5|LkN}1iJO2@KUSn?lkURPt6Jv!KR1Kn1i?Nrm(`)_djabA||#P*8^r|lV} zZd!s{T&+x(6r!jy)7IBuqgF|=+$62T)G z6d;y+R-dyn&SuZ`KHfH_LI}+VY`oezG>}SaBW-N%|g{xje4kt?=NhqXLgpp zp2aOSGDwL~@)T-{g3?BW4{?GHk$QNfZH0-&`+t=NNOcF$)XPdP`xgLgIkC064!){b z>gwx;nWkF$TZ`Ll;yBWpf5s_>G+=O5oHp=&k{fa0=k3(0+2p1?(YTI_pJ+N8H8}iQ zh(n~gzB;PZ^}ltRqqE(@(fX2-=X;XmA-L(Qo!+T#KZ9v%BXl(GK{-RYhSCax%5tRj zT52VGdHJ?E{Z{sEKAM|PZ1FTS^74=XA2lEU0A<%{Dee92p}O8?s;Qq%>5BU692FHW zB`em?97^syF8JgA9sy9meOwZaK4Vj=vNn$sOHuW?}9E=gadRq3%q zB~Z7BE(cqBk5r>&Sk$-iC<81`c_)E^o=@e{_EoDTIb4uHkq!$CeuVU5Lu~ay6scmq z*4?F9{j$X1puueO&&T=ng6mr7EJ*sDur}jyE669u0CD#p`@J2{H=+yG%V3<2GO92z zf8YIjQE_$ASS%Vf%O9vR=Kyd)FKNZmPj8`cKVz% z7I3mjZmgP|K0xG!mM{T7;T}K$(`uqdQ$9=L>!@%`{8|GEKXm;SRO!Coe{FQ1akMoQ zGE~-Itb6TrhGe9gYlRyMiYz&8p^NZYxnRfmcpYFJQ0jNGaO(@_*shBmC)%KrlnatE z?lb%S6XV`5*b2zV^esBDs}u-RpP+~0jEUCUE3;i?h}y_$K2ZR-lmQ+&f6cDjgRq_A@XzJ>NS|0qnwl8jrX`yIU8r@lqgf)Zj zIP5Rj4bNacs@t?j?11!@rZl}3H*+;!rtaO^yav>B%XOPgQc%vs2?Z?-U~E<7tL|*^ zl00=mCZ#`$*LdNLzRejPgphCeF0G|-R+|+(kX2I|B~=nQ<(#&pqPnP-qzTCG%b%w!09Qr(JXVypu1L7I{TAI5Ag=vpn!kEi^tDe zE^D~BV(SYu?wUgLw@+kyPw9J~cL#HOL8C7;)Sbn$*4j13ov*ZABZ;kY3Wc`b>Fc3< zC$mv+uSuFI0r$lQ)jOkHXE>6kj+T^5Q~_uP;ESAOTioGocpj5fexTDp9d~VQ*qPW#bEp5uSOuW*>o5+Ga`}Rc{+5iU!8SBrC zsh?5Q-&k47%iwx`tJakC?xoXN1D;*VEpm4~N`_inNmuF(MQXFqQr6YgUapZ_t@L!m z-kNrvPi;N4;aHM(tYnaJf=4H-V(}YG`)BBxriJp%*qAcokDu>lcp66ae7;cI=F|G7 zJH?e~5{{ryd!{PRav!^Fr#~ zO?jxAO=gr@J~^kRr?p!x%T;lpDnGo8&m-bO2s>EqAYfxT>!{Rf(v2z$fIw}(4e#o? zHAa-#wJBKHoYBlpuiZ+YOZ~65YadH=Iv#@gRQF3Q_FI**^>QM4C@yrBUh1sjHjs^i zk`?4Ego1I?E)3PQ-bafQW9&l3%U1po;xJ(a%s4k2gTC9Ft0}P>daXZXv`}1HmU?

{rN z;)3U|>M1DNMX0KRs_hhXwQ;K}vP&B-eXWz18EC8)L6)6r>tF#rG{skqcIh!qEj(3i$BgO0ZC)m>Eq z6s@~$Zomz(-{iA&I#Xaj`EKPc&4x+(V0_bc+Kb+iqrE{*pndM*Unuo7_1f0uVfJno zTcxsgMH2(={cTN{u_R-R9BshrUY^HC0~*F$=I-=UH5RZFJL&^scma*;&F(k9Wjc*0Azp~la(3*<|uA--_mNl)m)vY~c5fe*JXQp%#LNZryZ>V_7E;`mwOeLq1 zP4`^Ois>HRMhbQdJCqBIY*h>Pq?-(W`|quuKiC;Ah8K=F~@3QX0tG3rH8XR?bcxG#*JS~G(o)YE-lXD+gsgzX}DkO`&X>3^2hk=gf%rZkTu>Wm2MQX z)D5o6a6f^ahCBsRkGoWwsI1bZW1V+gjP(Ub);K-X98XC+5q~MoxeeK+qpiD@QoXqE z?PqCyLe}UlT}qT1TK@oLn$>fvmQfvLy5mnb(G#89T^S@NJhHPX7)MfR>Nr}WmrH)9 z+i|`RYb%Wxh~t-7{u;tL9f0o62X2^8$9=tP_Mfr3R(fkqb-M3csVSP8IVW>hPZ%I% z7*sLJ=OnNJe1O=`R8$bQX9yS%F*|iy&04jTP7kVf-M>{Bb^W7U>$*c^zgq3uD?wVV z6W(CHS?|(UP)@aRB<)88av=7WNgOywC{VfJj1IKX>2XUxf?7PFl6w0owAH8Vn8ANz zpRJWu`hf0krtUVa(M@Q*S*Udmi0#BWGLCIQUo?YI%`EbL0!WwzKitBK7~%GUj7C)S zzlOSHT^^q_^0$?baV;K$AG@zV{7cl^U#!6tPX1(Vu_x4?oj+B4pR-rAw=UfF>Z`gn z-Otor$UWWC_M4HkYaJ;|r>{B^vYr--u7(Msk&Kl4-FAspTl;|7A@kK8Zn7V#JiUXN zq_FqhPOITKYIMk-1yOTe!0drw>tti6MQL=EGqPf-<7t50%!sgn4dBKa z;|C#gDvAne6CA^X`_mP7dx?f)cS)%YI-$l zYkb1&w%S_DWm{571Ut&Cj!6u;$Hfd-8<`QBM!hB8PB>W*&kaL+m49Sn#a3#MzQJ(-6ch2_RDe~b)$xPVvbP*ozb%* z2W4(E$T%Y|#$3mTJ0NulE@TdamG2BDZ(tI*w-w_W9-hMsC+ z7NFPCQ!oya5(r8?<(0q1CeAQC=`@-eiphLgg`yviZ}Zu5E-K>seLJ3#kP|5cT<$$U z=%%D7l(8U4na-8pEJl8KBmbm zY}UKACB~w<-)Xhb%T+A1T`sqIEUzO-rDc#v8E|&}Ir|SFb<3x!sHiUHB;1wgnmsxi z2C=a-%m5f~K$`B!Nj+8DS=3u-Xuq>C+=UD}k||oHZ}L+qf;cE-1S?a(i-Rva+1m$> zw45mwOl^Cm7HJCs@hYNuiw3#1#4jra9QeSdhN?Wc4r>ILGrPQ~53JZVW&R|?6d zt1h%Lh-E=3{{Y!kJYL%nMq8E#&rtZ3Pe)ejnA}89ZJat^`>XGVbI@wk45idZG|;=r z+zrNm026;<)!LIs8k#*%IM;DrYEs`%WxLEOO(VH&uMC{bpfzH7pE-7JxETz|k?&(&-BX5P*?IL=qVDzhGBz0BrN}Gxh`T*Kg6>Tc*Qv zbILBfk;Q-i0FqVMW0@%s27GP>KN z!&45!iWOsQvW7Sy1!iIOag)bGI|QI?-!AJmEgFR^TZ{k(bMfP%aUr=x96`Dd@ewS> zoXZKQR1%6|IxRs{fFIk=?WCLnMl;8rn=%XX-zrFka}U}B31#hjV*Rd$eWV3)P_qv| z;2Gznk_FR4%z0I1da3W;sJQmNJ2jq)%|~;(>ua5g_d?Ju(vqg#ZL3J(k)d{315Cyy zAv^^*J!I>3aXev+b(|b;>=$g|E(WAEE|$JNXv|=aVf{pQ^ivzO9m}BCx*DTaMMXUY zzS&zY}YUg}7y7=!)UKV#MIpF1mQ#GqJhmCbmgN*X4l`ZDnA zXWIJ$kY1Ci9;3H)I=-P%0sZYSI+d=2b_K#Y54s)@zkjr7)b{Bx6xAw zL`072T*ehhXuwjVA-o(B{eDmK{d!NjHJ`Z3KBKq=C>)$9=g8=6jN78lB3W_3EOEH~ zMDzFly#z=>7|F*caoPYm@sor6x+fb8gb_Bbp^myrBU?xN!YC4Fp*2XgijtR9a~V0q zY;dO>l{o2xQwNA+4jjX$RVVC~9uL|CXOq3L>b;pBpemeuXXz?Q1mp7lpV0JN#m41E zRfqdbX`|A*C)57`d6Rln_D|IwlhlI4B?hBF0-jz^{cqh->sg$Rgk7K^? zfOA8Kp=erKMC> zQMu%aec1{{x*jxCRdRQsSSq+VXG3#ZzpzT1^V9mCJwB z*6Ul*E0zjoLpgK=sQ|Ko*f`Hpqtoh(xj@g?@=={#O2+fK)*bpL<6LPwu93J;X}d{5 zH9@C>wmO?-a^0=adE_3N ztgVWkno6dh@=`c|K&q|Q*`!r4w6yuhPzF!3UQp`YMcqocF0DP*hQ+9RgG)_q(-GD+ z(koRIPXd%7vcoJN1%TkNEITPbO*;_x_ zn@dS^^xxh66GLF9v{Tb*>$bb8dU_>*+-jqzrKL&V9$b5{g69N{xykEYrqwz+vfgWs zi-hrpfkjWC&}uZy0!QKh0KVY$Tse1c=^ZuRD-9}{Xms7RZLyhK+ub6J)IQUZxuh-s z0Md@Nl*7y8I9bm(KceKi#H}*2nTN|8c}M0?%%)z+dXaAwCt~5JSXxKG*rb5RKc;$| z_)A;PZ;otN#G>>e~e`;_g#v`k4%trJV@C zc#>HeN%0i4;PN@;JVa@x)E*#i+vEDW{{YJMhXF^aQ|J&ju-uV$`ZJ~f0Jm!?kKCT# zcD9<$OHHYDRb|G{sw>*x5?5N9(={~4AjUZ>AacnGjS7Z92|IxpJyE(K8Uv4%mC;>O zTRjBvv7?v_XM6rh3w-q(taP3IZJIvQrnOd!rPH*~*sZLRQhpjVX<`m$LL~keR~bLx zBOLW6I*Frr5xV1REKO$zXti`kTG%Z$i;J3UZe%1{+(+}iP?F+{gqz#v$T39{{Y?%BXOy<+p4Or zUEr|2=9;#KI<&aW1$WEyy6Dt$NHkXxY(p{h z!nS>N1WlwhQ90by*j5~XJ?O%&KHmU%!98f|E#SFw=-lT{*IzeK?^GJvJxSZzh-&Iq zihA1nP12qzOcd2I)X=&_WK50QSuzF*2a(odzM;@Ljva4*WzaZo2G2=X7a%eYM>gXk z&d=bOe%f~OD`oe$wECAx>AH(ei$`h-3x#f?(dlrpYG{&ZswrwNG<6HMLr94uMDhah zE=oC4NQX&QT~gbN0eq0Py5v_ zp53Q(?H-+_yFnWmsjf3a3}`n^9vCz3ZH%8*I1_57bhO3p8>-zpf*J>y<9Tu1lfCV? z$p_fo52J5d8(7>bw568sex$zM%{|tA5e3@02%w5sllO}$mNbdUWr&g#kECov zWCUjB*z{SQf0`{yHwR$b^Gxrg{dK44X4g7q;dmBm)x5{3>8R@^NGWTgs6ib;R?c^a zR>>rs;E<<|kyiFG;O*UYJuT8tN8k*Rk?eoUe6=sA9^O~$%^ldyCuy~J6I$yV)IW-j zT6%k(7L%rje3RT+-5EiKHIrlTLu~+pPf_Hmh*_)`#!qXfTM%TeY|hQ_2j*9j=&dJg zuBV0x?-wa-6>!~ub7}ir7b|Si($&dbEG}HLOtVVl%0R;T=jO68cKDr^mN^WK@Z_)u z8NJfSLEP;62SjMQZlcrFmwkWS8;yPc08Hs>Jq2aE>PsqL-G*{pO-owKyt?e!^BNGF228v1q;MO8;6F-a9n54~PItK%Tcd?rFC2XSI8 zkHKVVH3=Y{w6PuChg{s{bNAfMf8S2U_NUXPlkLB7s_8X8wWos9s;*a~6CZ{_ve8|tZ}%?g z_g?!$Jv|*pr|%Thx{LcC9Ec#1t+ezKQrqB+NrsYWsa|qjvm*>IMW{=9Cm362W19o> z-6KQQwTkU(I%(%~80+%bmWNyAY@${@6Ft`SZZA_q2eW2$r;4lavqM=?H{v7qzX>>G zm9k=Kw(iBjuH;;c93qC4ACYmJ5vH{qu$S$a=umcZ$zY-N~u7 z>%QZ67RyVhr%O(&)tA^Ruk|#b?SFEn+)|jpS)EX-#=99oR5@O{H7_htats}fzj;|5 zZl+&+=Ct6Ge0z*rvXq{Nd$CP@yj>{ox>`+Lsq}?{nwz&*s*@#UeWg-ul-AT> ztn#0BR9Fy(kw*w|h3f&vG>wEsJWl0noni;#eY^Bs7va{f9Xzqs#$}m+7|H3-H`hCL z?7EiqL+VSi-HG&n+8<0hZY^Im=TuK=ue?isu%(J!F4ESu+UE^+$qE|S>ZK7iIt;4) zO|!tN3|@wUEk6(3&_`g(W89|{y&>@MJ*j$~n-(=hRaP7UHNoegmZPM}3-EQ^T zLfv$(w(6QGD=!v$$fU2ewM9EH2=2z*5sAyGSKYWek(cAG5}uB=m5jOZF`oP3Xg(6_ za%wt!)G`75u+!HUxW{||wVtcJEWdQD+7Y|0rSz>QYxLdfqN`jjnOjHQClwU_)vDod zSb_I0G?jv#>D>%c?mKs26?%;k&(rHmybfaK*`xmeYx;UEZx-q9)wIak*#l!^`JUsj z7TkK@Z(qeTs{Jx{ufF>K0JA;K?-lA>{{VTtK3-wHXfEyEEcW{sb$gpInwv!#oo! zB{6vgC}|)Nm1u*h1$P{?9W6V>OfvGg3|R7#u5~t2OzCv_>CBCBvF2!VN%sBQb;JJv zs@*%LbdRYn_36zOW2VyDTF=~zr8R?0QdCP>N2e*pOPHu(npSBVI5X`bk=csIGRMj6 zx-_*DX;4d8ZzGy6ZEO6!my)=Wni@TJs+OI+tZUo==m%l!guMEn?^dMjewOs_ch!|u zowCu_2`j92w@s74vO7r~B$H<{Q^O>ZyivCZ(=lG4N5c9%8tj}$6n3eQ0ONcc3trs~ zlP}h_DKzHkQb>FjoDb93bX{%!z>e2ite%B?g{pPVnzrhzM{~Q_FBWSapxrH^bEd^C zG}TK_z-NxK5a{5BNh#Fh92|!m*3V5@7li9_kDhn@7kBtor$a7`_RcTP``e~1Z^U2Z zx+A>Y?$nwZgHTuKOHD;Zk~h3*+Tl{x`W-DSs_H8qh!gLW5_^rg8_6Jpp0bYS5rtvi}) zuBB>LT8mY_Cu)tg^$k!;%%v%b8EZ}*tBX#rZB&iD$1ko<DDZ9-%HQeW9)Hdv>Q=>1!RrlU#Q0qN7myXz#tL zz4{FqQv|X$qV1<}e+|B>j@w+D{fC#_R5JJUuKxqm~tR1(q&G?FK zIjL#ZqPFrOsYF_Lrmm{nGBPR^mZEHgQlL($tE#JlIOZUj?_=CwZ;(|D(dp{qTpUyRWECX{2?}X0GC(v+MI~d(TX2s#;2j z+^Z>siD~37lEEWvo;N?Ecy#S>e&g}~03B9$j%cLUB4k0pH>I;;05{KD8xhzm39YgA z{+{=1zE(%5s&2Ns4OM`ON}1BzaE7eL@~}ik!>cIRRfq8q%6=^QAn{DO+TB$pBP*k# zZ4(~eQEL-x`lah$kb-pHxZ z2}@!WR=qV#Y^0*NM|q0hZ=RxB%*7;l*o% zSEOpWeIreLd^q4|Lr-D94G?3o=kNNaZ z6>Zx2+Uw6~E&8(RE;aSqo-1~rvdt5~Yd;oVnyPa*Ew(g~orXN1JcFK`k+MS8i3%!b zQ)*CDHW6!!U#>G{Cv_&0w`(mGsC4B;Rj%o8salk$t+z~TQi52kVy(B#@D&Um8RJGE zjA2N~-P6!WStxiQfq&hWVxfkTKNbesR@&DYw^4r9RZ-uqM@3-ntP@c+!b&dMz0+3e zDgOX@Ow^Bkf}3Pe!m~>!uy?bSiY=iqMmZQ_X{3%bBTcSFzDISvqn)!;18f|h&=fCd zwAKA|UWTz*?=wfNp zwUNYb=VYG4y2kMls&vn)s&6ekepdeg?&H%t+V<^xc2=L-{^xdcR;8Fy>zYYz*Ncs2 zmeTJvQ_$4vdb?8?YhH*y*DP?naxc4r2}d~~ZW>uDAc{EY*(J%?`+oYaYIqj9lBRm9 zwgITs2e3NsO}$Vu66Z#UrlOzE~UKNV_K`Vrq5j+QLx1e;c6~*JV8pR zz@PYr4sb%QPI^mXER;;_kHg;T$UU*?GE+o3OPX5HHzf1}f1+tSfeeF@$T2Q`}4uPtKSbluYF zK@_(gIZ*|+I33>M6>Tz8$yYYlr$Wfgyf<4vhr?B=)MArMaDO9%i*80XB=;8Ruv~2& z95fRROqR9HBH#meTHp_u7dFP-mmD_O6lxkc>SBe2^#NH5e+wQ;_&EUN9QgiydZDGf z_p#g5Gnw!*Sp7gWYJIw~7jqO(pE!R(e@~=pwHriWlWb~9fW00XNwBZx- z_T$0jy5XE*5Q|rt%pO2}v$26wnpag0K);mWF>4jTLpvxB;J?xShkUqu%l9SW)B zu(JT|atGuWPd&J}R%=^r6>XZbo-G!X5Kz?GDx*sKOt2(EBv}${$AYL;h6Zuqb(E(2 zM7QxIyKFCgyLDR4R-TVac&CAvdx;>n;O98DRegHB)0%rx)>&zEbv4eTN*l!U8swrz z)3+(0WlD-lI*{AFxP(Vy1>3dcJB9%1nrBJO;_>{ukUxEuT~%yOi|p@s@rAjE_w`L5 zW^Z;L$lj~h0WPRbIr_+^K3N6qeeFGvG^4 zO0uBvt0>w?Bdu)+dmy{FC2>AHu8yl-bPylq#shwRN6Q#eusbT2WEmJ@xyO;?{J+zw z!NeS_Ui%=5JdE$1s^o0|XK29l{Xh3QG0aaj&{#^RXdyANw~|j8!SH`E{=FN>*#umb z@W&;1ARVA*@A`C}Va;-a_+~)C7Dgy=?4x=iz+g}PGxj|>aCS}zq%G&=JiXI1-JbH< zyFXvs2=DZ%EvvZN(ez~30W(0>Ml`Ka9Z>;TIsyQ2+iz5i47E_9wAbzxzdMDLav(du4t$nXPS49dt2MRaHej)A03A?o%}CqzKkz zfoBRyAzd?!wkYeXn^R6>7!J?Tbj>q{AH#I_d-;rnTw2_w+kOhIyH=Cw-C1a^bW&of z%E|b0>HuP72N?tr?tLr(BrZJUVKoNw##*&>j&yPdDVeP_r)qO(O<{{Y+T`@IFq>2RpL+%8m1oX{p)%JeaTmJxjYTZS7uN0Kk zHk~b0^b<=XY+bbuQ*b=}aiLSjPES;$PpErcFNNh7xj&!pb$+`Ar}b^hI4db9q0%=i?IDI{3aK-|9fGhdr9wCH0C?&%Xxm#5 znkE6u*RDQk{d-c2OL?HEd2^iIfW8hl2rt>04W{uG#-g6tZjz5cTW^|6Ok7}x-H-5# zsq2j_u@lMzOC&L;0EA3ne+uk0(C6w8d$uhfTLtHSD5`vP42A~~-eNc1w>J4%TXcYo zbIOgy@OGRI59^Ho08X^NtDdTA{i>D;B(q>l60NMN{j0_4fG{jVWZIth`*Q zYN`g>1&)Fru6C925~;uvG6RsqtuTnp;}Z>u*xLE_RJu(Z6_XZBZEnh6dR^0$eXQ+N zTI#BjI_~gyiC#UU0M>RasODtlNdreB`z^x10I)gh&wN*1Syit|M=S3f zXOs?|&!ztWCF=eJ(J5#+emR&2it&DJ@vsBZ-&7{Iy0!4M_a}IwmG`0vuq7iURhj<) z#mFR|gN&SjU_~2akB}{cxlC5Ndi@G$-8-y%{{W_{bq!2ZmK`BL`l_;NXB3f1F(xWR zFP*@9u3vEDDUJ!{xtv zFaA_664a`77P_*j*L#V%`KK??*0eS*>FZwF$uvuDzR-VaCc{e-?T(p_5Esw3T}WLLfY&DR<(`Khbz`sQ163FMO3MQ?SY zf+)O$DNb3p4B(Ou6byBnuZgaxbd7Fzzpd8KORDfR(A-_3);8>pdNJ+Bvh^{jwGHpo zHmbbq4L54D$9uDA`*ibIto5rTjEgPBV}EvZUu@wWz{v58b)n(CB95`r8JbH)jfuX0 zeHJ&1c#~41re}cuS3eg5*zIB0)kGg(-Ltn;cjrUte%sM4gH2sE6$QHWru5}Q+wAoz zEo3khT42FRV9U9ACvhaMdb8Dy9W3mEoq!Y2bUxpTk3%JNx>R#jINvwvk6!-(uT^*& z@6*1&&=T5vx!4OjRo`rSN((Nj?Hu$G$79yi5k(&V0Nq#sQ`YTHVi{V32P+^OuBx;O znBWx@M$Z6Uy$&{6Ef0;_E5C;7@4Y`UvyNtkY`zT4>QMNN+1tf9BG7u`{(X%_t&)fctbJV-Xr?405JP2d}+dmF=1*OVUqq)f(Ep z0sJ)>j2scW1hF6hIUsY=d|2SCV^5jRI0EM9rPRjADm1Ac_jqh>3*12EY2TNx$v3q+ z?&(c#lDEHlF5%g#%1g8U=&ZO=NpjO`M<_t6S9FhcIFW%ngE9nQ2gg!%b2RWe9YO-q z50$`NTh&wW8c|DHc^!9AP>*M{(WW~%6eF?_Yr)J^14hD>Q!|h1_K`0@BURSe$alv*)<1pJvVx^ zvEJ*g{l3(_z>Bqg-xL=Xq|;ZnrId?JbwZ{M)j{S+1NPh>1r*IVY0u-y`YwFP9BD^+FTrmv#1 zrE|P-dy^tNm=W1<@r~HW>Ua%QVuy;14K`qu{V%uamDm``Yc#tP=W}g*^&j7|Q~Ha! z_ZLQX_RrcqRowaRV$Y@RcB<;zMHob%o~lzOs{S0vCwG~k18%2n_sXjXXtcHCz1FMdw*CEP(AsYEMP!oarl^F~*J{dk zjKZ-zi|nMKlx3ykg1I=|*LTqkRX+^I+CU72gp2n%3xjI!p{nBh>Lj)h@X|*17{9vh z57Q>P(3;;wSf4>u)K)`awnb{M(-k)wdoHK3O-iZ@R8kS2txCC7U4#*WMmpe?)&4b8 z!`ejPo@VWv?mL6%yWX9m#X&^sc%>3j-^lwL*z|Ddf8|R*-0;04R>MtEPhV2YMM*uMw&ATtvdP_%(O`?K2nwK9Fme|6LefI4&p8Wzv zu5G%0$D?deOMJQwIO=UO5&*u%0QR?+VqOH-!EXLa2w^u*tS3=(H-kCdf1XNElO%-iKa|xnlb!y3ipW+AL_#c1F zoxX-Irm@Z2E6&_&I}W<`-|mYiPt--%Q})BOI zD&rC?a=R{aHz>$F^xqIoBsx^4Gh#))s#gHf(`r0H6m!#?soh+2hh0g)wAHVXvy~i3YMw_d;R{~ilnY~VX{`(?+ zy)^SbVeVF2%?!|7ZkL)`s})T>OmSCRDk)psYM5kJB^gtCpZS!Lf)7jLAi<}(lD6UB zf=2G-P7^yJ;#)t3gAuUs<2r{w%Do|9G6{_*@&jD!=sXB~CQ76`QH-ahDP{{Sn@+(%1R?kk>(R{sD!@><@c;cPTr zRTpt=P-?9aRTcjLPu9yVEiKX~6qMB_84Pk15^Z9kh68vwIQ-wGk+pFNq5G<{Thl6Z z3ioNX#0gt#*xYBQ_e#^Gbq3JCyO~HCB-Fwbepuhn-#>n(2;Sa`n99c!VzC-aPylw@ ziENX(>YzpZ{J-VVIyYq57mUDeO3(WvsW9wll(P8WR|2W|$vgfy$4PS>(0R8?W192I z%>7g!)%Uu~w{vwh_fOj^8eK19c(SJA5f$|qPx`SKHe>T!lIIUt-nvu z#PreK;jFDmsv=0@X%$?!1=)Ec>OUlPcQt?6wC6pincxfMbGm&6`j-_Jx-!Td@13tS;#X4l7^}~=DcTUvCjS5>v%5WDdC8fw zJnn8+eGU;*y^xERH_M&K7*D3ET{)(`GU^*oYVS4+)g`{&7jLbVHf!B2X*VmZkcGCJo zOzFC7d=W)rvr}8530(mJV2L6hiAscvMhZrN2YmOgTCgy^P`y{O`v5?cf6 zxYIEQ$^QW3obm_H{!$>8_pth;8RHwF29CZl&$CLuBt6EMW8>k^N;LCc*8Ea_(HC`* z(syXaJ*s5JS@UqGAaF_Jen*cT0|c!c&P$F)%I;QfR;t-cPj+~swcacj8D3cj;py+R za!;5~_sSv?Z~8EI3~`R3vRGz!g%iPc_PAD+I##JiAB|N`_OrQZ13PEcR25E|*Y z_mB7eRl?;G_a26l8S1Ojr8M0wzWA3|V~R;-Rx9m1Wkeg0qw)MDdgfY%OSG+OM%0sM zI9t#z{{W=vaqB!UPcWJJ7WY}l2;e1C#-5RDk8Cz+2ZtruS!A0-dCE2^TaXlP* zh_KSrQB>S0`)^yS?8R%KmT2p2dv5R;!8r|@G65Wdc;_8hvYK|Ai&o3)!`fu)Dle_kweK!SzOKQH=v~0Bg&6>8J*Hc-2nz5ypPsdPKD=l@u+l;gk zqrkG3kyf6gSf5C#EPq{(OOH?A$!)lAgqg*Zq6pqRR-B7l%I>%8Zr1iH>3avOyZhbE zY2RMXci*^um%CqV7Ogj^pucuEwv<{*m$`PT;ZyEbTf&8Y>pXq#hW`C`N#gzve+kVTHA3xhxW3&+Ms2c~beax~CF)zM(#EvW z*52>%)?7Wb`XY}isT!nes;G#dDu4&iR=>>WE|A^F)nVTwIZr6C^b4NvT{d%1>;C|= z(A7&0&)iy!NMWcYew!Txgl|Gf8<6C4@NvgFYBT=;irfDH?5QM>nwLI3uHF68^H1n1 zZD*-;p0BpsboHl9>e@S|j%2WDX+L#Q*U|lZ9*GE4l68(uxZ$OVi8;qyms`~;WR870 zt)I+mf$fXp%hmcWg{6NRpx1Pk2GdIqD}Wde4apYK{lsIA?x zwbk5+x`AmF^_4MHQ9>z|;smThS8{}s4he2YS%=h2$CB~O&tPxYx7Bo*s3=(2Uej?0 zJBD_+KcP52iIwcmlfL%@wUxJ6za4ps?{~IGbe<`{6;Nr?W~eJvgoX!TO~`+YC{Q?T zTI)}BH4ACEY%!IB_-#!dvBZ^nl+qlNZ&B;{dnv`+&r8=`J*y|W#i(qw7P{GJR+80k zvCHhCr)HXYHv$IfgGZ1QkU-%4Wa*zHxl6yM`R=E=>2=p*uaVZ=X=GQJO80vmH@i(7j1iu-Cmaq$;U z;hi2qr_eC{s}3%`#g9YW`&!CYdIkNPUXwjRe$L8kwcoZfU;R_}Ue&7a8XLLQIKxLRN`u?O?{ec4Vi#Pd;0fUO%H%Les6}q z_f2~bk7qlY`w&Y&$4^eAuCRR~KW}e6jO^44U2C@6Y<;D$%~x)tnLXM`p5IF((K=`N zkjt=-A&`uWW2!eq*>x!yGrXXi{Z_U)s%bQuc`3=Wz_$1n7WPP=RlV5kirQAwrS%%s zcN0w9sjIDeZp%sdirb`K=#HWpS}@BSBC(YoOcSw_IDB;rQj(S5%cnMQJyxSYs;G(w zHlfWW-7lYzOx?2IV$~8_DlZqE3vOD92&;_|rK+W>mu!q7r>XXr`?(Re$iQV=V8I{5 z)f}}CY=Dd$WNa19Ocip|yhPjF9;0g|4|^_B>rF{oEYnF>VePe<>8S3MzV$5yUEaL_ zd17_|O0mL$7C;6)$Nny@e$r}MOMdA6-E*xsNg6aRhF}EGB%jcHhvK#VfHc)j`%?Fl zP<}R!F>U?Vr&Vs%El;{xjYVvsPR1w1VEE@B9v#r)eAQ9_K)2=7@>rfbt!!|`O5yAK z`m0m7=_C+9zWb*uXfq5o008Tnk_%7 zbcM#BR%wfkWptLxI@+2>5_@Yg9^91k#?rwjxwS!Iz{Yy4tET2-yudxV8QpHUNwpN! z%yZ)Bf?>+*WPp7)xb#qJPS$HZIjiit$}4>x4Z0hW>Pvj`SJTA}B)^OkR8oz{0%gp~ z5gCJ{t1A$2GtcoEBV6|Nz4~wYuJcg(daW*9Ii}~3w2r%As~FUER;?#TZMocQ=;em> zafaVxqqa!(_4f&?KfH=Mcy@y4Xe8j_LXvnLYNi67HoE-W+X0fi&qJiuYBdu>5akhE zxVr!VZJ%F7S{jnP)ptuoUL?w_UE!duee9$nEzf5x4i5!9XZT0oA{A4>k)G>zVG(Ik zLesN8s?K|xS9YfD_NJ24YNNZ?ENYS3s;*+rwd?OFXp*d}BvKFoN01ou2I2uME^FOC z+3f|cd#-DvjWlYp9b1?|eDd1=0P%hO6?y2rPp|udchr=&)xGJfou=ya_1b#jMzuBi zUUopS7K&}_5Nv-6Kes17-|+(6)~Wh|s&h!TatG+Wf2C1ykMKCEG~m~_mzS8~-Scj% zJxM2WVz0F69d|uM)Eci)(rK#c?^dZTx5+8qsZB*RMhUlLVzX|InOPk1g2SnB&F2g^ zxi-$~ms|TB8g#W0HLfA1#B2%c=u@q(Yi)4S*2M}^M->dF)o&1?f`TCsM334H$QU2N zo&o0>9bQ*W8(`!j#9($@uS|k(4YE5t!v6qN2d9KVZ`PKyS`;wqDC764=__TD6IX3J zwwMTvWGNYuPSVF7M@(qXyizc9%FXdqO>FQy_4VvkXX&jIY}Xyl)K|(`xNLu&R=Rf`X{&*Rt8FY4puqx=W)~z|lsgQ&8bs>Ls@ix#Qx^z8q~1b%EGm z=Ic49__Eh90daesv1QNqtD9WcKH%spCBN&A%N3T}LrNzLPyNKyVOW#K7ile=;2hGO{uc?eh7`vY90qRwh_fNjPwb1^ctoJV4Ysw3)v%kHnq_4kQ?lm;_ zUdq;f0;c0^n)wBE^DK~E1x3B->H;B(r6B`{+QpjIz*xscfk1JqmfTJ99kY8?!; z`l0@GFCncZy9?wx_Q2`XdZ}SHs?oi}(w54qI!bF*=D1TybV>vGnPry>8De$}(GWo( zjD|du$m%?%0vH%G-@o=&bmnN~dFH!C@%!C4cFM@C7mX#`O4_O`gI-~%ubf>+?<&eD zsZpd-kfWgnjUd0$rOoW}BjwYuKh zs_D1}hAldu`OfjBZ~@rBEx8uh+SpNd)yI01T6%JZ_oL__(bY9nbh?{N-YHS2H8M=p z{{T!i3Alw|UP$&P;#hbi&ep$5g}Rj;9V5I)yOfd!#M>VwjnLaBoa))?Pauz(ttVq| z>iUJxMOt0-Rrc51i?y1kRo$-|zQO6sy1Ey+HoJ9YX1lcNiR&Y}(A3uf8$gvv)OB&R zk+i7MfG0x^7qsz*42Ed1v7F4FHjaY#0_V2)IlARs6UF8}DVg#X%?zd7+}>-k=alcU z>_$ckpOSvep1}HGHu)_&j@zned#9=?C^TKBJ9L^?Txh5fp7BpF@0u$4V5_Q*B#xd| zG~zj8Ss7IiJ$a{HuBfPR6N_@+2P3xKKf3i-2k06MB50c4QtNV@wb#Eeu?ILAxZBk& z^`~$2*L1Y~f|I#++4Y@+N@|#O9p6am$?FPHE4=oL+(|SNp@N}lYU%3LqmTr82;>{^ z!=|)-dsN|hRt=s(Bfj0eimabfq49r&*=>l%io!n{QN20~r-XP+@Uw%$T5-J~tIaOk_6rMs1R z)4kEvm6!c_+uPe(B+}-hDw~~Ub+wpMSIHm?9ZZU=8^u^hxbR37*r?jPhNhA_dYK_D z027>a{{W7Qwa{uG#HeGfWQ2m-f!5=0*&PpU@r7nRzM#44lS60M8mhx&zTRjk>*CZ` zrZl!$sw$x+?XU>d<(hCrWfn9$iV`?D>!i_Djt-5Go5>Wd4#qQY(0eR4zow6fR9-DT znN?-L zJ=)M#&gpkcR9|%-u3bxTw8d(++(izY)7123BU+fPhv|}LN8i3?J45ii4z%1UMMW$} zPz=16-_&;YRh&!28l1pT%KJxa*kb;c{^`2a-Tc#+g}qob#<9K9U2GvK>V@*^W}4qq zE?rg_6l_pcveRYv1MqnoTJc3)MDq#_(@!L=AL3XY%E~hNKy!?6GuH#vDO*c3nR{}auSjV+$7RH#V(%&v75BDznAPUD{F8~7Oztj=I;-6{;9z27ox9L9p$!C>TcNjb?*MQ)0I^4 zTq!U14G&pUXRoKItTYf*Q&cjnb3|%EfXNYLM_e-~=cPWrf;X6@nV^lqIZjgW*1KB} zsHLTI<2w*AN9wx_{hHO6zQlTF^!M04?%D61z0`VRS896h;%Q6unp;MtuoHQik_yOV zRb@B~=Q-SiBX`r+IO2#IU#XWwL1&jY9S85`y#?^)=Sk6wI*2Ws%o-1;dn=8%dZ?ee znu)t}>HgQIH4SwIBUaqCJ@Sr9oiU|pX+|WHRRnvpfHucX7G2L69Fa>iWnl2xY<}_I z-DCB@sK*d+iNH!q=v0JD06*m#t@HlT-`tp6zUq=tOLo_Or$kG*^m-;^$!6wyJ;M&cVIf#nt?V)id^ z76Sb*oT~HmJE8R*tF!ithNh;Xv}$_(;%dvTx1)mJ_&8v?$$YDZv0{cOl_OAL0Z~){ z0`LI~*Fc}bovo;Vg3{4%TrUx76x9%GGq$OmvU9(f0c#TDd;yHBOkUaBudvjb-r(rX zE|iwxahh#MNprW-OB74}<|Sw_90n)bUCoYgN1UBrrv(89rvRH@x%^h6hImq|iUiTn zNCc6KmYwb2*+2e{`!(Gy72OW&RcdSYm$>#TS!o?Nsk?7@(;B*-=R+Z4(XK;)eHHX$ZdOL&2HDlyQ#U{ z8v74zEwuOgTa~x)m9iRXzM%4)soVxRVgdZJ4t(^gxjxL$=s-79G^pyeiOoGl!3u{x zd1>oss$EOlUridTU2ClYp?k@%W43E8ZJ_PTdDIpf2<>+Y+9>JaaqTR16GKe{$uI~5 zsAgT;mK`NohOL#QpoV#@epw#2*+$g(ei>^20EC$fInA+*@{%v^KnDiFBK;(O$xht* zbnGW_y*hWxwceLKQ)=)1N3ZU;YqceAo2s|#y+Ljf#w^fZs(qNN=pvPAq=dsuHANQc zxe`t0J;q+G#j?JswKP(>hSnnedfVMy@V^D=l$v~$+MP2dA>@aa`DGz+M*sYKYtvrB%ELPL_84=NH1hEfx zXNbsu<0Bh*I2Cm4Whs`9PZS4RYi-nZP3XFl^$kK;HAp-H0JBNj{W@P6zf`5Q`jGVv z>O;E+vK^?>w;d9e`)pTU;cNSyG_cTUnh7NkwLy<=`Kn|p=>#*bJ&jF=zVLVZkAV< zRY_BGz0zMIm5sJQ>rYQTB1Y;ZQ|q};~)|Ga+`+GC3HTO!}s2QW7ye#i9WNNC2CB$Gx zV^x8JKK+XlSfMs!Ze4Dw=S`}RQ@EFMH0@w9pT_FY`+Kc4)~&Te+>0^1+3D^ftEp$W z$1NmR4ZlN(Y6^s!F@ggE!0tIX9ac;uf=iM`zk8%q!&4z_EVHlM*K36Y^)-mys&!X) zH0`d3v&z!NO8v)nXD`}#| z40Pr>I-8GQ+32)%)YW~igVY|j(TPc`>26)NgGZ&>3K=MMU6NI#YB=bvG)nS*DGZY~ z=3l4@BlK(P{NB1=UX@!+3aT%TF%A{{UqPtwUO9F63yR z{V}LG48j~n%NlmiCi-_T$Yt1Tg&1cWSjQ` zWW`(JG?IAi1b}hsbNPJ&zUuuQ+8TWYt$QzH)i#LlI)k>?>YAErYeA;3)iN!$&3(p6 zm50ADdE$}eV#Py(I2>P6Rq3yb?9tD81AAOt4B2_sIzAv~xel{YOz#K909foVVUC{m zQ3uh#cdc4O(e9U_)HK@bS@$bM8@-ap+1(4KA6j=yRz*l-tf!8SmM04o3Tp&Lwyeib z5L}la1uN0pOFbwu${5~aKNUOT7L}+=#IAh>JDeWIxcl2Hn{QHowWrlijrF%nZ}ms% z(&yT4+bop!8g9hu{Uudx)OIUe)hZ*qt#hn%*Hp+#`;)-t2?G0Zs%JfEb?PAf@{SFy9fR|-R5nFFuAaEPhZHc!}RxVHLkPL8WU2* zR|cA+yV|L)R93r`)f3fOX=I5S5YeD0OGL_cD{fuH79@4YBhu>(Ae%L$ZGC{k?=_rv zrBl|(*jiozzc$w=rh6`4KW-PMp6PbSNa)=~MWS^C{ivV0S8I(%sj=+2X^TZgY)bg6 zF*7wEyRqH}sYt_nZiJQ?Jrm(I99nI4OI|=Fpf|Y}?y=tyb-GP^ON7wg;l{4rbTzY`hq>|E`V&65(PYUXd(pj&D-VM)iFJMUZJ6h|l&rChHeHZCl)Ao|NTx~jj zDh}4sU-cEoQO_(ki*-%YHPZ>?NZhC|E;w8QK;U2wImJ~>si>N(`b*DF*x7b|7}MpF zmMSO*m^5SMbNQ+S^*M2@vHsL#`~}fzsUz-=leVqS&nWyfly#KW`gvLzK*L7x&dY~U zl#?BF&K+cP{5o@YyI=Lqm!9~lS!g~fw41fedjTNsEH1iQ?M=T}YD+~YW;E}5>>49R ze`#ThR@9mrtDdjCQq5RWy=_&n=8`D{D6q#Q?%_!#KqsyN6$FvW*k^fT97f>h{uia= z)~Bq}r>N7IC8&*t$9D{L{H_$U^#i8#^`@&w=_^7;mR%{QJ=$t-!I-0>r))-u+_phT z!7d3ba!)6%Hla-n4s21IwV`re9G14IPg!0Mi05Ye+-|CG)OEU>T+!&gI4deCEcc%6 z*=$$COvwTyTd8RgV5Wv85{x8q#)tqI!u8Z*rG&Ad$(t`U z%TrY}&ze@AXA(*{G>r~O{o`J8IR?P59GZ!K)S06fu&f<6Fl& zKXxo+XYPI6e?LFEj0{-p4@G!bQXX059%{ z&nW(cQ0UuZb1mAp8*_)YM~vei{QEy2@6Sc{SPpsr03>7C z>IaN7IxdaE?b;9AlPoHrK!k`G18ct2Fkmzi9Zohf8tP7mYP{{>#?rXwr(b!*-UcN@=O) zk9ZImWl*g3QRR?*LuJIYF4A<2I&8YPu=qWIN%N;CQ{o1-8EY9k@Mm zsUPE1zEk~HHeJqxMRuDDbmx%nLg9Sm6Ti~mHKeQb$>;;Ky7tGbq#9<`tss@>)0YiN zd4k_ZV45KHEj+ceuwaT*lfF}uz-OFv9a&o;bRHv%4?+1@eHNONL8hYQtuVGXX3lZ3 zHtlos-D~^Hq`d}u$k)~hXYQ7otklnCw^3c1!C$(jddonY@b4X3NRzB>m@;Ry+;X^Imp0ggah;FVPVYrp8%Ai};rG`` zSt@I7_S+2|ik6P5t*Lfiy~qVj^)Wj-w1l*QWhWr82PBeuyy2ILs%31h9JU7iZ+(}a zz9wm}(;rO8h40Kyr)&DF4E@ulQ)xHoxhEN(gpzpV12%K_$MoxFVWl7bAo_*M1eGUf z{{S^jf3?Pr*9|YH`R$iQt985TDte_^sib(+(ox8}f=E?)-OGQ<2>TnY8W>yRJ||tq z-IWg!35`1ht+stf=BvlGS}Kmoq`Qya9ba3nv^}Fo_TKY+)1AfAQO!?Pqw6Ub*=xNW zQZ^p4j;5lSVWc=|$e1f1ryJcTN^_~?tEd(Pc@N-E_Eh>z1=TF(HYC`4ZFMs}EA~Fy ztvesv>fJ|vsgP;C8%s;9HEgf=isvnCw>x#m zQ4Lv9e5@}X`QcL<3RFZt-m!1P$C&Z7aK{Uyl5Y)w>^{B!0LQw}YI<84R@!Yf-Xp;C zTL5|s_Uhtobs@bMb{k&k?^L?)NcTR~EtYZFxo%YU`fWu?eYQyyl{E3Gf~t;pkAJxz z_lRHIjO_#rf_6{R=#Git3l}(!VmG+$=sPY;SvL`BJX&S0X^o-3%NNCo0GoRE=$nq@ z-8A&qJB^Crr*)>0xXlFghT(R!TkEY5OzLnRT56VjWao1R{t=84dhC2dGg%;Onn5Gv zxGs*_1vn3I<@``Rz1AYx+T_yrtBsc9U8gGKr?lQQ+!YjXRMJWHE6*In?UWGtA&Qcu zWFI`Yh-55_n%T1NUk+ttkU9qtOHWT;>O^`}(NQFNzr2@7B=;3&)0%o&GbE)-tJO*y z&H-dlKpt_AzGi|MJQG&_*jvp?R=QSGv}BbSJyPCYYMRQq+D4JG0}7LTS$sZI%F1;`uOF8=^$SE*fFbnZT@(H7ek zy5D6TylOkNl@rN5#UV`zYMFSqqG6O|#i=Z?CZJS9I2Gzn%8@iDcnWyaaXadE`{ z3~-pldEWQ!{!kt7pqBC7>rSPmbb5Eyx zoXuRlod`cg*D2|(rG_4j{T0KHQQhgHv$fK%N@#joN-JOD>gFP?iH;anM|B?H+l2+N zd|>m&dg@SDRm%$`Hpm5e-nN1!RLI_LrE`znuUKA{yZ->+3-57Px|(~pnzvEaEj`}L zZLhdkXlg6z+whH1Au+0ZlZch1%!HOX@_Nhbw0e}YI(T7gqa%D=`i`ruaDK6*!>2<{ zJmg5*+V>v9{+{Z`{U7%rUAt@CtFDFBww-CFEA<3@yT4uG{6$Q*xoCn))bw(;z)ZgG z=?GF75JP9E`c({?W|vbrZKQtwfgZ7{N3C%sEir#QQT}H)KcbVm+tmL6a=N#9P^NuMNyR%oaDrm23BFv=x?K?P=cSwvp3%F43t=rl8S!3btK6r7l%b zgCVM0QJK<`X>xZwQLJu55QOKf7Z{3G7P2q{%X)fs>E;&r z?u~tT>cFRHVT73@5+^EMnNdy$8;&wL>LfKsQrEwTOfAgrVm;ImLMWtl11@M(c z9E^Hijw1y-AYcKZpjaNm=Dg)oT@12L`Ay#EmwrFtU5$pDy%aiYwH@Q_C9cyw%9ll3 zsXdDYvE#bx%S?!}#TCI)Jk-xjWCAJVMUX~_2>Nl?72`^1p4V11faa5sK8NJG-vMfG zHBQruiEI4UCjfTz9hAt{9;-X|r+ZCXt82R<-7kAe+Qz21+-SRbQFj8K6%8x?2XJXd z+_3|003_|lSp5#7S!&{B=M6W%Lb?YP(a<+QseLnfr7gE8%f3KmK3oQ zzUpmu^QEknJ))`A6*WTZA^bE+T?By`Jn}djvcMc<;2yTTKT#BVXCuk8N$Kji*BI$- zlV2h>6V3(5JynBuqq-M~w1t|7US6nYt~QkZ(^T7REd{uHqkOTgwOO3t4W%~{I3xH+ zS>1P06-@gyrzZBd;I_OYqeG=twq^|6Ui*~2>;{&s);bo+sdT-=Ptm1bSuVE9LYKRW zp=6FpnowARpm5(<+l>76k&2#1xZKM%eX%nO=8H|V3c?Go+Hs_WQ$oo=pz zhfr7O+V6gzvZ8_*FBGX#;Z|xInAK&co}QpVQ5?|~Wpyl0e8sJNkiH@hm^=6Gs5K9= z*HFr5h!z%-ZZGM+)-Ai+->9HH1G4J6T!7b&-uJd!_%VD(Rq# z_nk%F{U6({ZKi2%Iy3(OODz`Jtu#7vdSs7MMk=I7og%p*Ej|pBGH?qkfL*W;Q>t}2 z;L@86E*@-Kt(9hHUz$EI^?9# zx^gWvseQ0p+`UBAHFa6c!BK}S0Rsxfz8$BosAN#-@jN#Dx4J~!H=!Du-X+)B&dZPk zjs=0X6R{t8{d2_v2h^RZl1Nci%)PgYMg)2F4bS9eM)O3HruwRwN^zk zO-!#|sP(DHmKG#_nEYeM(d{Z)$W!%ri`if<%pT9Em8vv>;a7JmvA^FZ9W;& z;fkWU#x{$$p%_cz9a^p}J;rC7I~c{id#f1M*RNK(hg){*w?Ep=6-`BJo%@|z9gntl zjXg^W*|7zwW{w!KA{pl-M&obyL&rGOlUL!Gv2(UIT%t$QJovH#?ebl7>0+ei2DkN} z9@zf?^&3s>bVpTg-CIKp01j}tmiE0TbVk@&2aReHoK8cyZda#QLt=zC}ho;;Ym z4+Da6jPst0{{SzPpAh{KmQaELXX2UO;ChAcu9u{!puKmV(Q=#dX=}Y%ty(sU&0kLp z#3YUH`$J|_kQ{CYa5x-i7p-e`u#XBEjq`j3+ddxfZk%Ust6dm-NCla|H|y#;6%(~~ zw(h=-lG9P3>oq-+`AvI{Ix4zQ(t>3nRq9$5aeynCwcQQ+ z{MUZeDIlt&k_xCp;~;_vxFhjDuc}z;e)wqpMS7OW-|atFq`Tu4EHl^1eYeFj>PUjD zQC#geX#KcrsOMCV1jp{i01QhGi(aX(Y4K`qU$-^AI`;k9Vf0C~I(S6|2@PXOvu|;e z(DwA)DKFU_f8I;}i+OuTttzzMhM~OFP|(xX+39a9Ur-AEB5HYOjzG(7q`FTtTth>Rfgjy*kBSk{JBS2xs+A8c- z)N^TTWi)cbSxqf7hGd6vTu5?3&I!iSK^q94sWIWtaU-pQ=5J=6)*mUqOsHGvW3b+) zu0EW*f1>rA20E_UrRPLxy9S}X&{=L2cId8kbnqD4cf1l*NZuuwfDsp;sGhOf?B8jt zk~(|1i~47+uVvYOAJaEQY;|>4Z#AuK++Wi6Qk%2a?FZ?jQ0kpI-W%t4`+uryo+_HU zDlu)7Pu%FqXQOEAL^IS#xH4s;kVeFua-{W1qH5KeeD97>=3jdO^1t|92aa@jIL+}- z8=B^@SOanI^Y__L{R`c0#P<%@aymC%QEEw6EtL@5bxTrQsM$dUvi{q~K|fO}k)MvW zfA}c^|HJa_4c~=07)2;fuyO`O=<9?lXw{P;W zyi37t)1ZE-8%rB@j#54H2SeZRN$$th(&(exX6 z5hQ-(k`)LGj2=%^JYP`BHC}do>jBw!KZP*8{4gIrS~_odPNCGa zsZB*3w<=i@rn)NhMn-lkBO{DR!aOr0CWynysMI+LX>qpZ&DeemvtQZyOWIz^`e5|a z+pgZ|U30DVwwCSPzf;uT(@+gFQw43=1m1o zX|%D!LgMD1y3k1@H|y{8QXA6`VReq0(Nq;(%g|RX1E{99Pg~pz{-#)k^6?`QyNidC zLS!Nr+6sGn4+9(~QR3D)*Rw79Ca7trr;U$%L`j>TxAomO+QYM#-7Bc4y&bC2$~7e4DT(N~Qt zq%HNATAA)3nk!@g!9YI0AB?!PkifCc?iOX+u$ca)Y>nWY1JwF9)=5fRPZ>AZ+XYbS z45Egp%Ud&8S_rXrew(C+Ydeo@?0%WlH(f{S4%yh_d%s6jda>O#lotDxvf-hoYS<%! zNcWT^;u$6?j0}Zwk!wLkUqai?IbQDFy;mUO%Dq0aWX^M{>*HQjUA2yYqtbepQEHnlJuQZYgGAZtbuOX_JwrxXvW+7$#VJKN z42hHEs6Aq(uhgfgbX?bM>^c)==&EiD&}eyPjPi!r-SS2-63*w}Uf}jmwY1vzR@koe zR!elV>ZvguS0@cVs(9oKF0+Nar)!i|aB1&~ zSwJM@b2Ql7>z`tY_P@WH`_?6@(W^9$p41u!gGE==YC21VS4n2M*s7RG9UUw&{{R9= zVfR_pi3+cct+*bqblEFv*|9vmM#I~(=NwN_qG!CY&+KUAipPRYV)UsGFn(FA447EC9>q#p#HPAz{SBaD?)XcG!kSi28H|hqq zrdGN;HJ|`be(Tn}DZ+E;`cxFOQ}~m)+|L61wj%Zb?QXcgWjeGcsSe0@3fFDYUCgU$ zy-`9xdf6mYXzrHJ?>)gF+kqryTP{HuCnZNYm8I1;HaPt~l@AkXHE`9s z8bTV`Hyy?7anxN$`}eA@*XXY6TC6&gNTnxkX`z~$Ni`V!RNslXOSo3DvbxHt?E7!D z7C`yVIytp(8dfyLc!9_}`~Lp`HEm16(~Sf{6qlcS^aG&&{{STY_TyXjZnnCfzd+Au zw%V`N6IWa&vRqo(M{$Oq-1cAI-L_IUY(UC3hsPM<6gs^fEY1VVd)yL7vdQawBRxcI zWmxmJ+@+uso!39Ukt{mTPI`{@&1${syOyG{>0M5iofltSUoCwJw_Pjh?-X-VyN&9m zmZAmQ@If4aab>462Xj`#0E|2na0YE*e0tqz^@#iiK}>JtV+Q?qxb1L9vYy_VwG?^} z)Fjq==w5IANYnFBQcFWiRduO)t6^%z3r_&|8C_meApnpE0}4k~UMpFsiCj(cFfWtr zu>4(0*=XaC8xghf*C~nht=bJIO>ou~^^`Nq9c}J=t+JkZrJfoObR)?U24ck(+2c^- za-j%5pW>TSGusnL7RtTTDqm5f#|=lA2IT%q;It05&>FJIX{XcG_A8v$8!fJmrWLf^ zqihR$q%kl%5GGPZ8+>dWf#%AVwwj`yyso+HgSZQbSH$@0rD(wBHqWYzp1gbUqdO1U zZ8NI13skixs_qpAlNNgop66LTB+W%tGJ#IZBgvLP2#H;{Z77f9s@;08QKzP4`ZOLi zt#G>wxh~y}iN*7LtyctTV^gk{83`P%+-D^A9^SsnqxC&({lM=&i?&lOOQrs$D&>)> zY9o4BMHKZ;?M`+`fl@!N5*2|~8$$+OqgP7#SlXGJXY%E^-?jR!_LogPKCc}M#zTj3 zwsWx`fm&@-+B&1_U8w#dKsT?U^^l8nmdU_9L8AHK<1rD*jolD|VsrEb@&4c@~XSDU_~O+i(3 zq`swpyZA~eEi*`Agix#iB(Vt0!a=;{crzfGfVsFEd#I*Jpp-d+&+D6md)N?r53f?K z3$b$EHBOV!{pi=U)`)eLPPDj3HTt%9T4c6SM9{-Y7GEV~!qj~rFlTJ!j#_kv7#mXD zyPI?EvY<5wT-K^|X`5&SV!^o2Ht43RhqiQ@ce!-di?z+J`nKIQgw)*UYP&EMH8IUp zkd3MpBq~3MvmKs3k<@lv&EgCf9Q!SNx?7zLE|J2~3$%5;t^2Zro}#1In(pDI-%n{9 zzy6Tunwog0)Y6)2D-C@`3~G?2FrGw`tU~Bqie!}T!2nfmOoMbGLJg>=y65eT>yQ%hP|Rw9{HPt5Is|zgU`Qzxwdg z(AsJ0teSG)TJ2IEs;;h_JH-meD^XM&yUa@CEIRck69!l6GCj6)T3Rf6i}{XmYagD= z%bYsa>9NO9=9`gn;5NQMKfh#|?q$2ZowwDR&fQuvU$8rG<*qFCw?u`CixPRY0GQM<1badwkUL95SB**QsZBdbUz`}Fqwm%O-V zS=2QR0-sZYn9CSw1;BaQ0O$te)QkJ6y=ByW;kjwMCC5+LC^Ve_w?i#$sjSMk3!pI~ zytfE~;LDCllq`g^43X!XOe!8p1Rh*_uC)_s`9UJr&5y6-QNGZ24^KaJJH_AoZ1LH< zo2)xwWbLKqyGo*1sx8eF^%Kiq54DGmqF5rMftUbF(8rwRy6YSjt4}V3?Iu&?W3E1b z=PS(r02*|NDR_zlttp}{^)(AedhV{fyOgff z6B!+S_#sp?Rn6?GC$`?%X4t=2RLqLLP# z+t{?faWv+Y*ZL}c;AsoZm8Q{GEB=(IqOsm;?Tt+=RZmX9y(L^~4D`zGj8`T-+=aK) zwd#8PGMF7)b%bLkMlI(i-U46up|Bz6MoY#QJ$dt1)y)8 zz@^a|l8)t3->cVW?N?nOJ)$L$*Q~q1tC~zLQN| zLnG!Q=b+yGO2m9g*X!u@ScN->D7dw-Mf|>*@7LK^H=^%Y{leE;f4a7t|k)yWmc z$xmxZ4Vj`y9+p`iGq@{Lw2`oooH{WKNR4{jX;cD&Cr3v61Dktw_gvy#Vyjn_nu`um zY!BbnZ+$cBNNTBd2lk5RC3WiUeXOsmnUYB-s(*X%?CTx~Kg7XU{{RVIM~;AVq$il? zH&x+<&lXk%=r-vE%d)l#WSU85(z=rMrJ$**b&{fA-S-NJqhrns7@jgukD&38NaZ|H z31w^A-k=rTI3{y0hZ9fq^AF$1s$2cE{hpgadds-$s%tvYSbN>0t-Zpcs)-gVYU_fl zTJJlE8&+kiqb5V1Osd)XvDUkSD@8_(Da)?t$#19^xcmy{zYr)L2NJ$U3kd^UJ?&%o zh0^DzPgm8xki9c{bLEts#Ofb~E zQ!_`g-jtB}BRI`kApJ&qxQPJ0+xj2wyYCEAY4mzEJszv(b6C-Fk#a5uJu$aLv$J;> zU;fdpSKS>qNGWvXhqw9~8jTU$jd5sQ8((Xv6FXPKbu|9vL(^OYf+c{5{5gRp3Zy!k zn5GdpIJ)DgJ+F&&->=DDOQqB5kWU_;A1H4xDeHc>&FyZTEDq`~Q1(jo+buCA>qY9S znx5|2?k}h#(v(_`<404kQZI5!%Vmxz+wil`6mcWQvoc9m%)0@7p`dwiRtrX2 zKs}E_PUG|oDNU!>X|X!9N^x~WZsslKAh-{_8ZTmP({~j1+HHFCyIMkuPSf5s2BD?Y zm)dUe=xdd_{%m?);a;*V8mCC=NZwef{{Z4*_nifB7@nOn%PevOK}=aqRV5{E8gA3+ zad6@OI(ikdmZrMChC011#m?t!jm?@x?IRpLi69=M8M@W?f6>;hlfC+O^)Gg{pKr7$ zb1PuEYIyr)tSW^Kvc8%e-%tpf*^aJwX`-kMLEiI7;5H-!Q>SW?P-u=|0n$b=4`Okj zOYPZnz9-=4>b!3h&bukEtDfWns>fS$bK}f}3y{OaG@cZhV#_wEBxn&r2y3 z@|ohm5!EtOMwKzH&|-Mx3%NhmkbSit7%)e=Ir6qN$z%@d8QD*pg-gu=mz0Z84D#g(u@>K$AW)6^CVmiwll zt$C$n(tsV@SvKdS5dJ$k$9eMw7Mcofu^n>3SKX!2*_VH7Et%^#f8_&5r zyPd1OhzAEG;GV4Ki1IQqxi?R6%|jVPCu2azrh6%6YxJ|)&0_^c2X_)JLGM`UsPva^ z#-^&!Hw$gPFvu%ntXZS?XOTa=;Y3UBGPfj?3Q#!GegpAL z@2alUdKl9^yt3F=vyo6=)Dt+!pV zWFKMlwcobgy@y9?i;kSUT=aFmTNUiJY?_Li??|&rJsj5hm)J@Mk~WCCt1iu@H!A@W zs$O}WD6j{o_D<2kH6;vm^Ix5~z5f7sPefW*+FfG>lKVYfbq%tHT{i6`mdfvbx#nqP zB!6@ta2rIJM%l)CW)~7ej>zV$aeD);*8cz`%=ed3c3ac6+eyzY9XD_FRZT#dyN{@0 zH98YXO>(qUMPD^lVoUCRBB9`iYb`wN{{TW67wH{YzAv?TBYTakPp_c)s+mKiXNgcp zgh?H~s;()0YEk!B)E14`+Q&l6ZSCi6wB5qS`g=p_Yo*eUQ-SV@ZpOYIausL z6lJojo}#{r86+)-7yADH0AU>*@UW84y3p>o2RqupU|Vs4zEb}Hy!vXA{{W+3ygr}% zo3Hep*2hGUTJC+l)l}kV5xlhtOLwK40#=OWBuPUJsy>{Yi(VM7f|pSK8>mLtM*Z$S zR|og*t2nBR>NLkwpr~|mGh)Is=s~yR^jgnJ{;fL!`%(K9{{W)ixU@!@)jh@RX0)TY zX-!pdNp$`8%~rJnN^6Ch>=n@=tZG+=w$U?~XWDZcf|5tJ)TrwCYEtbf(uH|x9t%S4h5fMf(Jv4kI^V~m#Kd0b|b&N=d{vyYhLM{Hx=^M{k6A^ zPbJ4m)X~>K@|tKMnVAJVMn7mp7lmwR3Z!IRNF|Am47;<{k(*zeb?= zlTlN|6yjLqi~vZ#E3uG20;U#^^fB1p(RVg4QvR5<{mVkZeBEW%-M^vLcS^lKqFTOq zT1l<+63pl+R#1)sB-0bdR|Pq}R=+&){hC)`8{CY8wXfNAZ97Jy(yB(Qr#8%Zu>-O0 zHuve-P7dPUR-Z~HpqXl^-o1ZwU2Xwb!6jTd+)3ecAdSf*{6ofh>KkWgAz$>vQW~&&T?P$OxZR&~DdRe5Qr>U&0n&%A- zBob8A%KC;)utgFx$lp`2@T4EhK0NgA@RlODUK<&mp4&a&7vi+q2!X z(f#q!Z`=(ZXVzBB6KWfdp0_rk)c*jCp6G3rABCE>7DAvwB#S1%a&V24<1zHwLtg=& z*3Uw;++j;c!+M)^=q2$FC?^{exc2RSiQI$Il`4?Ghps@(8H--r4aAI`hX-~rN#LAv zPI{blgSEdBvIkXXF(to(9sMUzkgc+*wh!a|@a0>{8`QQ*&mf-|UV1;_BptthRFkT( zo0k3wn(q&6wBKx@vsx1Dw!Lwy#bW4deO2_u72--5mZGK=+{735&J-5qop5=_M(PL0 zO(TZj6TSzjTD}t01iG6}2SMNDn*Q`^T_ttw1iBKM=ToUQHPYou+P=yECAY zn&DNa?{0mIokPy;92XLg8ERArb6r1kAgIcO>V8`w0UFma`YsgzKadV zTurEGnoDTtZ_ObfI|PB(*SF@X6V)WWq_p?vxb%IF*0z07per@3(rK#wD^9Uk>An54 zy)6QnC1!$|b9`anv&%@HnXeI*Hwz5Dw<8heLXBG3(}=b1%attx(pH5b~Dvb@Z~*CY2=pH zbFJpzH(cjJgH4-=p9>k|M-AN@Nw{}5#Ep%PGOZt4SuQ%F&t=j&PT@kdni)X8ORA|O zue{w7INBLK>EeLHTCx(xM4k=DBa#`1Se@JzYx(zmqS1z+! zKc6u+<-lk?EOtFNva5Z2+={N*YK=pqbsAc1($3Eo>*Lulayv-uLPA{6c}c_eJ-UUR7!hSEGAv{{X6*2LAs5 zx@&1|Ek}LS&rF~+$sMLjh-xa7GdOgkZ*fCpDH~5kK`Dj)6z(CzH$5|q`ziHr)inmX zrU=Zi8w(FHw_5^1Bfl=)x~AIS*0gPd+GGr08iP-2e0h5j^D&V)3AT;fJA+1a(b zdn?fFUup+;Z9j{yrHsXD)AS;idZ!RgAep5o` zR&+A9M|q2!eQ=~DAEin=Ra6!Bilb_{(zu?A<88aiNn1%O{YxZ#6$d1qLC=GbPg*ge z%^QQ-<ai6D`(HJJwE0Wm%A?WNPb7ykhL5$;49b}r*veX7pd_kQCTp^oKGGbxff zs+eLv>J>>NsDY53$d4MUW2>4Pik&Y~j;2WmhU_?Wx9{;?OI6eKK0n|`)xk;|Ss1wG z0^p7D>J&YL(r0t89m~;vpDpzE`(JMKZlka6*L$wIj)zd)bQf~wwarCCXR>NY_M*i} zTTZf9(t9PMl+wmzMU@+OZ=Z;CeJ4k4MKs`+fbiSjnD!&3j%{l$52Wx$saamiSm7WG z2NQ8?oc#TjmiJe*nt*m@9?*JnthcR2!l5nCdX`A4xixpXifN{e>kU6UVGr)I z;3;MpJO@*qy7sLtRG)R{n1+jI*?NYCo}-5}nCYlk81?|xmuAEL-lwgvm0ca*?k{S6 z4e6-63)*U$Ep6%#P}sj8+zn|t52+5(ES0Z#HBW7r-R?>I&pZ1Kzcugdva7AXcWb^niuG}*yIf<^ zR5T4$TPc#EzY|u{5;9KT{hETK{8{oaI@0SD@X*B#EjY7sxMvS*TBi}}H9DrPF_Kel z`g#t4DAlYi-QCl*GU>kY>DxpX1cqZ`zF049f75pu;w(Z@RuCn0P*eM=fF_I*c93!o zgN^C?EN|Kc<8iQX$R~Vu_9-=SmZMGfSGbp`B>Wuo7Rcte zUSWh(idmXa5wPHl5Jq_CX~-W>QjH8cja+oow(TTbdLrSv`i&}@rdoFvn_&9e8~Uv$ zYrkvfXS;RVJv-Wd=IG65LwD1(M%i}Ox<=a$qOe`&4VS8xpWKS385@G=s^D$FBn))k zwZipuO#3dC%JydtHY3vZAgwl+$JBGYO{+EDAh5e~4Z4wn54IBt-QQh(gzm(VX`a;F zu3F0ReyK5Cs3o*j>Dld6FY!4J6c@e(-n1h-6vZN zHyTL_)0(Md_dqeSGcgJdcOEb?*18@es_@}#VZ6O|zTcYV75ocPC3zI=klo*U*s(o2 zStGld=tI*+y42HMAngW|(f5|D7nyDvGNP`;lv2BUueK#}yHWQj4uoM3KRrgM;tfy6 zv~IHxMbe<)%?c`L;+8IFxB9j>`C(gkYddG#Urqjr^v$zMX}U{Yvg2`Uh*U`0;d`s7 zt9PiYo>R+BBBK_5508P?mad>Thdgp%DtTemCQE&R6oSmn zJY>jRWp;?r@`YJ|Aa%<4%AiGG;gN#f*QS0IGFkX?Hn5InNaLI29`;NolI%^kmgQ=_ z-0QnXT@}6xr9;i#_dS5+M>6URE#*2v^X2h!tvNIs@m_ZA}q z@8AxnQAT`t!0taaMOZIQBZ>Z!wceP$8Ty9q_hY-~Rom{`>WyP@R?hX2dYhcd1{?!(VbcEqu)OUD?QXB`)vhb$ zn!4Ea7F+S2>!j^1wi`tSCG*z_F^lGIw((G8}3=#=(;?YfrIS@pj-jp zbJv)R6V!K5YrQx6U3Yc8$qWrm9Ym7<0Ce!2ApwL;QJau54iArWlg4_BRa9zcd-{Iz zsT&t8r0sv~nN34vsIghJtQQH4Hz8?@-&B-T$?t4A3o0FqS~9y?PB2IZ?9I7AD#D-2 z(VU~b+q(;fm(sFG;z=p#cgG^gsTdJ#j|69FKjOwS=aG_nY|qZpz;X(Ds}YY}q@Qa$ zRsR60-?SsN`pZ*V>JFIgw`Qp|?Ln=CO-o&0L+-&t8#nOrG>a!7AMVtT13Ee#Nz}S< zYjWo}gYDNIs~KBHE4A+t_Z*A_db?ry-C0Jbzt-zbZ)dW-MLN%W)UeRZYwDwl3PC*k z14>wd7$9WijsgsyoZVARMyAFWTbS?AE5jpn>PN|YkkWl_KgwslU~BrXM}6ayc%+ym#=o~7x$7xT~_S5QoJp?U^rWfu`RLpcWhn2(5ZsbT)qE>PpEWt&Kl^(i(WuhN>v` z$&VY;Z~$jH9R5eFl=P6#P{^k^2J3S!wL7U?#xwv$tN{N2m9Xwcw7cE=v7@Xy9!haN zHR_7RXi41?h2BS4k|IeMk7_W&@>y}@5!Ljy45_GPBnIGYssf8(!x*`7L*K)3f#ZYMW4Nts6d`t+Ao6x5aFm_eG>m2$dnLrvS$~?pzQU zXCwya9WJQSx(<0`EpXeQMWc$g)xJ6@LzsT?IX3D+=zY@x=>~$~-&)N}>SI$?Q{1Jf zzg)Y2+u8((Ej5OM*;VY-JRAX;WJO$oz>8@A02f-05~U4@*HpIdI3AYm^4W5)i+cOK zX!vrBa>URa?&O>9dgNtK17MVqh|sE_-I&JHj1%B-z!~S`=dGxjg7$CVxOpe3MJ_Z{ zR(o|#%DNhdriC|1XsHcE*&yMRC@g%O;2)EmXR57VP-Ptp=j^mxEu=eI)nlY@Q{6>M zySHa=x0>e(tX{6Eo&!9y%TEQklb`O`peT6$2i!6U&jYSH-AX#CjE}!DC3@FLRLY_X+9=V1SSndSSwZ1|Tq}emfrHbO zY>J~%WO5s{m0`phl}4Mxa@I!Q<^gZ>?4<8`ES8t;z1Onzkf5rsv=b zCW@ve8-@|omr`*YoBsfSIT}q{S!S5grm>f8yX?4U4DgrnhqqsvZdZ~?7W=^Zs-5iD zZLU6&y-;cE<<_oxodc+=NTmnwE2ob}ln_7YwV?!432dic`z+v4cn&dYtQ)OI_SHFmHUD@+tLRaWO!XGk7aGVgDC7FSgY>dpZK z4zpU;x&Hu#6Y^k(d_AQN3`v&hZUA4AdPZ?{GZ5N55s#z8=d{CV>QwXDf06HrQ-H>;2H$ zTT1AyOQ)gN+IDS4Nol^z6zM|uDtpaNnN(yl($zwUB}HKwLhLyU!Oj8CM@>i`CUyn; z-q~FWwz931PXO~0(`yS};O*<^tGo7$-Ko2caj;sbEp*?F(HFSsbe-#Tu~yuvDiQ5Qk^!}^THTx(onu3Lf`nzu}v1;Rz zC~Ikig;qg4v4&P<&9xkDs*Q$W{J;Psuc7VV@lHovY3kqBDG4C$p4RAgRJ#4k)_S(} zYSGqMYc2YU=U+aJCX$5E-svQh9^9;WagC4e6Z`@rmd+1MYP8VC(<__h0_Uy*vujJO z95)5n^}pfs?5yikQ0Q9+V=SG%{rg#8sw{V_eN8oWMc#X;s+s{JR-LlBJLWGVxgX*H zaq}C39W(fWlQ!I?uDII=Z=&b_0268D{t)+H$kNg3NbCL54?}DHOQaxcy>^wkYCRRA zZ?LGAmDW(LP_I$GNPZMPcQ82tlQ=zWHOfgPulqnE)*J1F_rjhfWE?v#mpgDAKqGvM z{;OBqZ`x6)AgHLHKYBNl!tPPi zAClGTn*2It3#Nt=;5(niZv7$muTgh0ZsY2TTFRP^^ILS}ms{=L{{V5Qmf2erwLxg% zh5$BGKmtsQ6lh6wB$5L48&r;3Hv;l`NWtoT{ZuUjifDD3b`$=iUFT`o4wm%k-_=Q- zP2KHFZ_+i8-}M3g`z;d+m}9Dc!X%jAgdm0h^Nw?Y&pl-(tUTPj$16cSbZ(fKzzygv z^iku`G&-|iYu@~7T|;Qq^)|~z?%8AQ_O-cD)-9&&+v=L{6|Qo=-2TMNPLjG7A(w7X zIq6yq43ABUcQ+(12gmxwWoDx4GW)O}m+UI?^dH{ZDZP9C(T>{am?6_|ul0>Y)szgX zR_AY|zE)6O=~>-d+=h0mX(fe$QnfsTjD_(#=YvXuXdTKgV{Gq{?6m&?2Wu#0)avy5 zwl&XlL2bZ4bl9K8SubQXy;X-!$*1+6g|=#o&u^Nd&3Mz)SL%%&Nm)TfRV-AwxKqmv zu)_3dOyr}1f=)ar=Gv_A)oKEvt>%o_*#02=*K07>JBLjR-ODq1nh5D*owD}^qwxZw zR{UAC%Sl;t6wZPj@={XI6lOPLxtOWw8W4=>c4jiU9~lWhjgvd>?oocH_x}JYaC&R( zKc^1r==-c4((Fc)*7bTvQXlN?%Timc*IR86ucnSl`g#g_D^02>L{1}DilU8bRI%Rw z00Sk(uW*%&1oDy4k&)}wXm}csPZW~9jd2HJ(Cc5^VNE>^{{W#qhSPF(-?iEgOK5#7 z4d$x<08ytjt-tU#Dr(x+4^y`(FJ||tV5Wwi@m`Us_RRH4zVxaG3%QT+ zDe={8+LK(;G|2g6cUx|K3ebueXxJaARJu-I=_do_{uM=c3)R-W@7AKcP}(f>-gG4` zJhU33_gzCR!j`T#z-m>LxKK-DaF28O{vSOq9VM?Kvbd8uw_TNNn$Vw`3K+nIZf(8& zark9jFYM5@Y1q9jtTqT*8p{^5y{@1oi&WLsN*1;kl!9^$Ga@N$j7CE64_j?DjgFl7 zO|a{3xLg~HiZo>ZncuC+8b~3chOgW93MbFW5t`KV=*SuNc4`X?S zhzBPF2lMEdF64Sl(|7$DYwee7D>T-E(2H`p+%+$>YN_v63ag*LEVYnS#*AK}s%BYV ze~`OW^O2sHO%gS%hTNlj^pw?&h6}BRt4>u7Jx5rv(;%X%YS}@Yv8bk4+TK2icPPOv%xZg3_^`Ws5pIU~ z>-(~QRX@e2rkVzN->XG|&AWhan_n5aQ&_bhr7u!a*lYWVRXu&y!#RC7f3RMpv$YYB zVbY?CK=ks3%PCnO@M~ku^Mi%_(Rcz=fjRj~H-4D4+q;GE?}^<%l$sZTA-6 z2XzQ)%%=slk&xkg<9qF#ZTTmE)IVahpJQjYYb_r~QBO9g(sum~tYn^NntP=75i`(N zyoH!EG&9cwXD4h?0CClY7mGu99P5*OboIAjvh~#xY7hHUz~vSg?foO%18?|EFQn>6 z?l*ZF_xPHNT-qATJ@VaAZ@8Fdr>S;Iby<%Dh7vq-Ms|i-7-x)i2C7LJD3USex~Z;;GDp!FwyKWIOo3pEa^^$()^UEE&KUnY%fFZPJ0ZEd1kC)uaG3V9-z zYKa*kpJSnOhJJR2^o>tQs;52!oF-;DNWtmMKep=!uJC55rw3NlfcV{>X6({>5!mf~ zi==n$!1Y^T)Lp6cqo?!*!Ko(IcG^!-AB~~8R2zhF)Z1egX(T(FWU9|QC`LOPGlFn> z+EK$pEM{p>GtGwNk5TelKZUwnFi=$LH5cc3voUNm9Q@AS%31nGukH_hwXT!yp0ijR zQ|T_($}W1owuYW6yQKFkO*h~wWQ{TI$jdyLah72y1cCq@`l!k(953Yri+X4Evgvb2 z1$2?>Z;W`&^0~le*8qZT*4I+bhV!iL)%DYA8ajPTO2}zV2e`k2x&$k+O3HAm#DTI* z9!L#>2(1!EUtyf)>B%K)hbu-CJ5!{swHk|1UYf~KZ;pG8<3m)DFW^yAY*g{>EUgqk zFjJBMAO|?=_LLXFVmzT^HOI#tX=Hnl5)ViEua8OVokQB4L!|W$mqpoTOYJ7Cn%7!% zeeBhhg@jU+Fhx`W2+D+sc5d1jKT#u`)dLt70GoWe*;Hu()O!5269dZTwA_Plk?uQP zNt@?*yM0HbZd#K|=q*d#)wOAN)%6tiiWwob%R;jyIh{S@8cdBjSVyz&Wy=k}9Xi&Q zf?Phh`TUmbO7}I-itYql28-Y8Yy6cv_rFkg#`)@=mfhX`A$`%;XzaB5i%sYooz9x) zWz%+BjEg}<6}C!Q9+zx}N|4OI-Up1S!)_gVzuQK0oU^ z#Z=MgrLJojTJBts0q~L-)peT3$w5-)fJh)40x!7F;Jl~D-voGr;&!1;E|tc0 zx*Rda<~k~02)0)`)_c50xbw66Y;BWptKYhGSI*{lE41`l9-hae^~J`virb^^mMg#Z zHiu8u7~_sIw`D%$5Uzd4W-f%t`BJP0TrY{}O$c-{yPSe~iOuut`}JPm_*KKYuL^Ls zm%>q3$yGf(ZH!MNfRl&L}RFuZwQ6(Lw zrj}ZWWT2nhR&`+SB8}V@47?mZxM~keqF6 z`|q++Y3cjd-EUO%w;R@@vR}PFX$q>#o}JRSD*7EUXVtFb{{V^J&0|x^C%+QmmGc`N z#N>E3^|G>8I#`A7ZaupFeroec@wB}zIHYlFgDgM*o?H@XGutgL--K&I$TWMH0Us;+4GcdX2#KPm5cclp8hT=iD5A1yuY+(^%>l^)~(Bc~7V! zFWur3FDQ} zNYij_a%>KITIS1Z7N=1xLZ?b`WNsM^ZOG;uoq)#QlA~YSe@|7|eI?nx>3Vb3HFIgv z-U#;GEH87sCW^aLTcwpK1>RUuYH6wz5f=FxKw)^!c82Ru!F17TwenL{GUJl=9{&Jb zf0c*hT8jNMOoFnJ#6QH}uH9|lx5-S;OTMWz_i(*Ct;A{DZkX>^a145rxs`Sq8kP&a z<*8}t<*hV=LlB;2jtOUyHA6c;xg=s&W^Bg2Ni{87qXO{)d0cPzdtcKlq3~X(1zwig zml5MhmoRj8#Qg1Z_@_6rdh*?;E?1fRn9X#sJxWPiMN${{pS*$M6%mqfhB&94S70QP zM&{f{P~zv6;56djB0DV&You%zd9(U@6s+%0sa+?ajZ56)rLn#8MzhtAV!DoU^|K;`MMx>6 zP|^a$M$?Wu&S=wr1lQrLnZ&dca0jKa^H-cjr^&<|F;zuNX1(?RxRINJZ}RAaxM=R! z&FR9IuzGU3^{BtH`fvLmdDnEN3T+WxbcDS`hTjkiJdF)b$vxu5N}~hy9QC@V)aoj# zA66P#Ij?TM-qu(NxOYs_Xd~00=Vx zrH!&0Rd|R~E1qNz@(yZatNTktfSyyb(o;&&5CNWS0(zfcnp0MHBe%VXvsBexEpc3^ z>ZuG>v;vBfx|L%J%JCB+8&XV_I6hkk$m-d$MH@#pN6AEeB}H4EE8pR@y>3VD%7pv* zTMw$f;ag?5(AQ~x-B3wBi_v;XCjH$&u|DWa#3FJ6?wD+ljl@91aR;Yqt12itq?7_~ z2m|^@Z+_~&yi-?^3tmetYn)t>VsW-kJ(eG{A5&_&&eYS{bu5=7bnTv`xOUd6dgd&$ z$*1ZXB@u?;gh}8+gn$fZ#^5@=<2o8>CyuU)-W-ifm>Rl&qO-V})WwO^;_ZTSRf5JgJPZPpobO-oVo;SexKu3)Afh`iAM-_Pb znQ7!EAL_<>DuwlFsS^8sp4V%pjyhU2g4ID!77{q)g?+dYPIH6101wNR&U&_}m&J5Y zGoZD-)Vc_tPYe0;&6Php1*tT@q@K)PX4JMiny%gHO)*KS@0yOyB$o|UTYs#nhT9dE zn%GDZnWJ+oZmzo@dawb3Tdg{-o{}e-Mq9e)JZGlVYFdRnRQ~{cw17HbgjSne(svJ6 zzjbMCS8Y9PlS@@<+IxNRBZm2>-macFsS>3Th)I)tgaj-Ds`JNIQB*}z@hID(mrqSL znWr+2OgIn^=2SiIuc|*)gR?!vyIn6Gq^s?&o3EbHB18(=6(1?~w zh!j=BI!vg{<`Sg0QK}+oVU5SB$A6mM&}kZzbn~x82rw`bU3`yr^~oPB*)-j&HGS{x zR9e!Krsr;{rKzU7O<|}>o?6PwC0sRZg`{llZITQ!nHUne9~pV3hK{H;m*xDg-E3$z z7i&5j*jhmr$70idy+0LVmVGaF)-*a>QQe`XN4rHe@|Eng@kLfQ(=$wj;K&PaDl()U z!yW999`*j0Z4eUw>61xKq?T$5KdP&JB~(VD7c^QQfH8ywD)eiN2l)kp8Znj;RZaH5N$Gl1Jx%qJv4`og!!0@_Em#fVb$Z z@3tO_`!DF*(e)Q#YBcqa{r{cWl!_iAotvu6`BWsI~OAG#`b9d@DOWrjuvASqmy}s$H zXtdpOy*=YiSf{+#Pe&Y%X{siMnlkXXP{KwfRb5F^R|BdYI$-$u$KE|ZMb@PM0LlV6 z4l$53>9)z36!r}pqIK=ZwJBGqE>wDQs;a(aGF)z{FiB%bRz0MlQb}b5kWeweI1kcO zva3*v3fnP`a0j>4r>2YS8f4Pa0$s{abJ=ulA8GA<-}L?3T|2F>-`N`@X*~n2DI~X2 zMO9T#QDjS9)(C`h6+k4C0FR8e);n>Ivznbl=(RWUIC*)SoPr1=zhm8W9V1Qqevu16 zC+@o)+Clus(G~9ZYA%<1-Md_B&f)3JH`}C2x$e5Q(NPrlJ8d;4*_M``f={kV3eT$?gpaOvr=naNo=3-5K+fZK;G4=n%z@V3XRUKC%F({!(m>!9+1s)eGXSr z$^QU{2{#9!_8m_}%s7gVf)Ba%rj1c!)ifHzQC%&% zr?%2HwE)FHI=^aPwY|lrQ>v7f_S)k?D#j9`g+MUP?uBt6jD=vt^@6FXWK(#u+Q;{O zw)$^?x^Sa)D2k4XH@%L}F=zk*iyYqPrGXeXBLOFmdh8XNg8QL6l(lvGI7|DZ_eH+Z z9aTMJIai89Aas&9gluTpF^3?AI3uZ0RL1!HL$TRtD)g8iP01MkVYTji_TI`D_lr;I zSFhI<8ZIl9*3l7)y46)&$Y!NVQh_O^0A-un67F-3RP7`Im=)5vy{-oeG}P^ehrt_x z?~(7Hs=f}+(n+g3OWQq3Av4rnJAG)Ynn@}|VrTpuag&^rmf4>i{kiL?X)cz1Iw_?4 z#iRH1UMb=RMN6#I)38~g?)=kt>d4gTe!*+om75gTn%F6H?K;Fux}|+m!!ZmG{{TAP z57=k)>K7BuB`%9I_25Yf2s8h z&8lA3V!7KzGSF1prnp>dB=_syLXpI>GkrU9S#U=@bw#9c6&|0bMNH;6yqthAFVvIr zTaG38f5bZ95!F_}+eA(rx_`zVC7hWds9KhNWi zq!}9|H-iYfjjXD__L27QMR&WkXG!00m)#wzEcaE^eZSWlMx)r(8aBEx z6WoI=J;)|c?&pDui2znsS5-Yw*6UJf#q}&B%q$vqaP9tAU*YZ*j#^Pp>$HnIm~I?8 z`j16hI!8ciPR{69EPAt8Cb!kMD!=U&=TbE%?%AqdXrU2DI>=iy?Ty+)g$!6640Fuq z)MBli)KjySyITIeJr_}l@~U`;hqUchlkIwi z`C+*hHntT`{?nez>z>>Cm+jwgYIM$t(Y3?3^xBU}cOtf)dOZzMd$yUXDy@|YlyQW1 zta|HwwGHpAi(g3YLds_#`>X*$(yL0zc(iRs?-frVG$sNx9oQIc9%a*w%GDPk3aQo*BX zw9bvuM%MC?n|ZcYPSmBHpwvj>*I?wEE57}m9s2F9JJp8i_{$|#Y!fqn2up32bb=@jW0Bb(+{&J#@jVMQ9TrF#mkSZ{Kd4$B3e_2; z>&>Whyo46qoO*7$A?_b|v{sL+kGK7_qB(NN=6Su0%2a|VJAJK*i<)mK056YPB^r|c(d z@AYX7H*uh%zWy=kt10ViZ`Cw4G}6f=lE&@sGo?go7#*wbrbs(+VHE_LZk0kA7#nHNRMBO_@+_#p)PYi`9E9oj_wAVo7 zsYFl)4?3a_-W_a`so^HP=wyn)gLZOHO5)I4R>skg1ZSQp2z==T-qnk<^_hOJzo? z%7?Uha2VU%p61~6i~_M{tDU!iT>kQ*UANXB zX8lH9E&amnpK~iUeNL96j)viA{{Yfkk8Ug$c4M%$4P9)~R96X|WPVOz$UCDB6Rdw5 z@a#HmJaSPRgM)M1*P`?f!97AowyKJ(4pVD)B>E`}sC&1pHJvRCv|6_1Js#0TRbig2 z&rNTApyOt~)EOE9a2r^k#Cxv)03MmAK+_~}fOoyJwX*t&xb`OB zZntS|1%K4K{{T_BSg(4((dms0kRjrDt7US|oQ%6gxU&5qf(d#ZL+p*bL(Y1f0sa2~ zc~y0~OSO4?I-m4L!KTFfo}R%}$E=R=Yp(Bi29oXEXf!0(yEUC??YBK3i*S)?rvCC+ z4aMo9ozr<4jH!qmmHseKMd2EWYUrOd?giZ41&7MpuPXdzk(9c`S~WajvBoYkNjL9w z`F_i~^|p5lyL2ozO?1*W>hLyfQ|(tv8(?FPso40(1D_oi6}|EJGBjf6J(VZJ&RGpa zWY~)vb^V0NQ+Fe|wbt8)o9-%B&ub;2qmuJUO;2=z*)S?vIR2I?h8y7^vb%Z4I^uK{ za!}SV)1F(Aw#(Ey^((bKHcEQta}CA!!2Q^S-ui~V$)vq6YI+qEvfMQ#&XS61nq-bT zV+doqL?kINvG)(-w)=t*4*2$=((2eZlEty zTTe)mJ<^Q)P^X?O|JgO0-jrSE=tY!vyI`XE3wR zRK`3Z$x){B#cQzM-k!@t@UqnU z%z{gR=GYUlJKOsyr>$PwOQoA=R>qOze?k9#tm%1+UMNys=O zuPo{jOv&E&w!oYdf%vaeQnYef#E=dKPsnbiAEch(YHsfKlTF{djiN648(G?@XQjMb zuG(4bvCJTq(w?RhB8|TKta5!NfO6xEgV3d=0sDdm#AoDwf0DChbkEabeMDulI|ZiT zi*>Q?GL?Foo)i@kiB~nH!tCNyU8DjAPC>ywM?CYAI(}o2Q*pewp2|h{{)bxC_Vcto zzS8<;?RcTn+6Io}aC%6PM?FHXkf5~O?X%I`>8t8L5k*-6rkB27McyhF?lzH`h?ZIDwM7&~Hhl~~4>r;c2n-@Wa9j23q5L_lVHGqE z!-bqZM#t#5@5PD(%}uDVV=XBKZs4j2C!A#Q`E|+o#nDTtfJoa5 z)PD@9>gjlBJ}`X5+*>z6$J^f5={g_B+~v~rizFn;_}WCgl@FYlmA;&wG82>fo~R_D zrF3Aqz#ppA!Ki8uoW|CYGuFXZFM7N4+D^z<*C%6a_RVA5I0xY?`;Dn+&DK3713Z!~ zH55|rSl%-uGNSFkUQRZSrM>kPGcn8_R)9IJ(01?YRb(>K=~77Gz+`bIz~021-}A7t zuaxxb>JQXS*HZTi$=f}7s;*kLb6arMS2`J1BKJcBiXFB!!?g;@{HGpuO$tnf(LW4_3aK^)hykRM&S;wz^WdR@`*m zf?JGtD^gW68j0t#Toz0~t_ONqqdpg~FAEK1~sn#B)JJZ?yVOw*a-Q24#ow>_nmRsDcFBbt%5t3$6OQaJ!HAPgq2p$PRNY217;Z(@Hg*j)#Q`2M!5PbR&sbeHA8wZQ6olh&Bt&7z*O~m(=qBQOT$4$x=HQzQbu4a23W@B zfyq(jSY)0`{{Rv2GRA&KlJ4olNDax~Dm!-$^Ay(W4Ixy9Xl#`680U}Mlx>7220w&- z9C5}D3C|Ks`LK>KIWCdf>hVbyl+o19R7FD6PHr%zE29kIi!Dbhw{Fq3_VXCS9(svN z3*R7bLX%qdh}sFyU-?#P*v%86du{1&RQj~nRF$_4UwyE_p)_(?Yd-^Wvr$vb@lzz_ z!$DE+)JyI>4l%V9#^HxLidq_HY2GxB^OJ#`U#h^?>eJHk0EV0b3q|fSZR^oj#<8;Z zD_q@gS2(mS(d^KLp0>K`Y9*cnyKpKa2&m1qPq>+6WtQ)?T%Zfz}SjayBbNO{G-o zq4Gq+>kEtCvfVMv1WAOb`Kc|0g4!!M_9mdH&YAtuoZ9uJNs?=+I zmeXmicoW!4rlUmMu0rlBxPaV_KAyLc@RW5$wT*D)aN9e3tmpmt_Fw#IBDb?Ov!?(v`;FrYbA-9oM+!dy{6Oj(e;&XsnO;`umG2o$=GgT8)EA^r@7SfJQPb zr*@abb5Tkz#(+WeD|w^pFzYlBPZ+2ssDrPxI==lDY|b<$bw9T76SVs;6ry=?N}%vt-$KtJHU=c=R>u+pRD3&{`Ip z)YMvxP)S)j#&*0&WbjxLyOeluBcWYgOC%w(1Il*C>XD=AI<}uwCvN>uPnhbf^R&LN zUq|VUIiWo}dTOt<=nLKA;F>0FNvR`9{{RtHGfzFvwl@C%0PxdID@~Dt>R2ZwSiz^) ztMv2XQxVI*E%}Z8_Ey|M!1^B$QomBvB6ysPJ+@?ksoX){9a~RvmfugV#+{_n_nX}*z@`@{X^5th zsy)RTcv2xK0h%>@<%->Uw^F7N&ywS8E4?3rbj}~Fbxj#K$tUvu>C>R?UXHO_7U8aL zb}=l%DdPww02G^2R8#Xd@>(U~2S1L@m<3v@JiVW`$yO)ITy zpQrEYpz-$+)@gbJ;*FPmfOYn}x_@$0?7EJE zhkBa28km^kzJ-0&9O7zoJQ6DnplJA)PNA!$bo9qE7<3)eAsiW(f|e<%_8j;pX$Qb#*o5GB$OY%h|1l>Y$HwQ<}u&X!7A&&JczSg9@4 z^)7dN(Nn`55xH-%CX1 zG@4wgY`4D0>dH+?V5B0Z8f{l?3lO^7tLgXqQl&*4@)UiWl1SB-KpBTz$64Y!sQ7|i zEyS3}HW%nu|(mY97dH8Zl_pG#6QG zEn1q2`(13Mr;-(N^r==@g;3?A+D`+(=`?Xw!7OtD_eeW*2^yocnuNLw zERa5++e7!~Q+FF)X-bN^s*OLb?X@wrY$A%j-&T`*HPmy{?_jZ%SdQb3+2jql==BPQ z)mBMU7&ble>G~*|H52q*GM`JFgUBoh+rQ&#bUX)K$_i zZKWG=&dwS%IXF4pf&uEWt#^(I7gv)^C8R7kYky#(nl@`UtG`#eH%-{>a6_XzdwE@X zt!@b_%}o>(Qkmd^xC^>!m52pA1y|2FJy~hAlWH}QzyRfG=ErM`kKc99IO|`6Jq^r= z-P;4|cDJZk^;1z!oWW40Li={8jx|A?1>uRu7y$LwFXbGo%!HR7VyM^lkovt(O_zzQ zbuOn7QR@9)Nv1T;mWmI@NqeNHiaD=0JH!Ap$wNz(r-A@BE6C5an1VBUl@)%f`5>k^ zZf(%|EsqOov>Ghzs;_0iHrs3U{{V$dec`9vgz>gWO`1nTxZggT6?A@s`vs-7 zPp6*YUNqfpevIx0rtS;XS#{lDYmLeThTlw-)OQG$L^TwJ<(F~{NH=drR$Lu74$wtW zPcUh-!L`Rlf#R+wpGMYVk%O8(T(`b=zjYXUliN=0_8YkMGV3ni=y)|Qp|@1lY0l#5 zNxypOy;1FzO0Q;DSf-A6)aB`?Q7mEAvmiUVq}H@b_%7L8OAYPYD`}u{o}H?@?G%p! zP%;kVx%T{%$LZ@q>JH*k->!O^ip700(aC7LSXzb~eRI)D=so%>r9VWf(W@(vSsfGV z`iSc@NZO4qzB!{dEf}%=;b=96Q0mkM3ZNYuu;s6))0aNk>Hg*Do2yEm&ZUx~+f?zY zCZf00Qb#2$;a7xUsVs8FF|ueFDI*!&&#SjlfJz7k);{Y4p>Xf;6EsbCGkMFKkLe>B z`DH@rw1$|1?|QP$NlFt~SZb`570t2<(pl65k(`gG4iU=&N#`f;o~)i`Ig-S3*8}nk zQ5-C(qml}NerA#NAKfW`X5OE;(swJrU%X*xYV4i1x7zNsEw~7!j_*+$f-%WbvqnCC zk3C#*Jw$R))5{h^u0i(!b6yIHYHe1c8HKDvPocT8e>>Sqt7E->?~Z9MAp}&f6o5+7 zO3M^zgc0SO0m$?AJ#)H=9%qM``AdcW09DqfZ!B^ab~aNN&~+kMJuUXCmg6nzg5;CGV!&u$-q5#DqjRsGr~Swe7;M~TD-DNTK9ajy5u8U z`hvCkSN*ab^zK+^qtKTw^y*C+tEtuq=^C2fd6Yv}SW++*O*G~zucsTmranpPezB(i z01(mL1bcuSJ;(0KM+9*v{kz1_>M{@Il34M7>2?YEZ}MGrcHc(YyP-XwxY~C2MPs_P zs93eNwy-@_qgc{y-$_#gD-2AkNDa(#Ln4j{40v%bkaD~D57X&ER>&$h~x%P(Fs``fJRr4dS%rj7jv*= zby43;>bM&d@X>5q`1}(GY&DhL=&pkArmD2kTB%mwUt^Gpnlz`PjV6uh+&e3)1dCxz zs}0A4k<^MdI#{iH`l_v1GAf@9hiiWS0J4qU?z=|UE4HP%$uO?CS3OMV$7{#FLIBKlFj!gUqK=LfYdO~Ssdn(;X&U|PGRh{d8LB5+L( zwDwO}%6kGvZbka^>H4kL0z)Mpk3Ojz?CiGJ-yM46*Q%8L>eZ`Y6?ThUNk>e9D5a>0 zzv2l*5vrq%wpCOdo=$Re&NF(vjdZ3q>{j1Lte8=UxZV8~8+x$Q8ppbEUtsMG8NTWr zKW;aB)fDd`hO#FnHB#w-TXEfjz!Inj)No)^Y82G1jj^nbez8UlgBa7n0XE z>-+r_dh})99bMdgC)|A}uI$li{ZXOl=$5LE)l4n6+Ss9}sipi$gM?a*rDJxCePAg( zh9^fH4r@dA4$tq=WOSWUqM@@xR^C@K+iZGX-THd2gS`Ojwd_WO)wd4jA=COFxEe*Z zwwaJt)74kaQEY-(mRV@fnV?F#X(KSa$e!o0rAq<{Vl8?K8i^ov+}j_+Lej$xO%!VK z%~@G9NU(k$RU|wtWBQpzbafwU0fD}2-+j9O0Ls|^0Ne6WQNC#%<^(hVFU`{(Z_o~^ z@jH2VskmreJ0_*LzKXP2w6(g9fchkspHSiqB@x;gm{L{ z0DemyrD^S@sgab?7f4)jZLWIyri;0ryS*#+64hB%QK@QmEykWEjtSX>@yx_wOkA(` zdGb(aA3aC@EkzaCOw#!WeS*@|=(Tna)aPtboY-Xj1@fq}_oelJsx5!s4*fwza_zrr zJA-(RqPC+^MLnUloU%GPMQ(}NOqBbg4fvN<0Pvnzib~0^Fng?Ces=x;0Ls6nr*Wlx zjJseA12`_Q>FMkATb}s#!%XQdJ6GIYC#Wo4uDEF`S{qejSJlN}()y%G7Lo`gQdJ|a zXHX-MXWc9j_``{j(i)GtFV@HR`}bKWb>XH+WSUMvdj}JX>;e5hc9g!Dn_k!`trfTZ zTULvDrH1CPo3k~#FLEX^f(8yw=J%5Ce5GjZu;xX1Zz%j<35>X~PYgc~Nb!)YYU-a;#*Hw$sGYA9039 zAm@{bXZezXPS;e?I0#-2N&fr)0CktBUi4@?KXEMmw!GP|mAaQ()=t)o<-YPQmi<5N zu`evN#t8*MAQBgPGWiE8I(~SaJWr9i4Np_C|-fhenZu(glZ%x46Hkx+x-LgCk3<5uW6O&Tv z6*R73V_zFd%f9eEEw)F0%|TA~+PjtCyTyk~&)K;(UGmdwHbvDo%WA`TszDq6A2PIp zoP?2`k#MD%m~vPFq@t>A4cibLr1d@f4b^w?U2>MKkm>Zd+&I`|Th|xAZT@Q7^bdLO zo}Fs6_9-iB^tkQ)nx9h8Np4|TV{3i3ni`stfqlqgQZVB>`< zf4t|DjN_6ASobzoPVW)6veMF2(ay`oC?NW+B$}!h(30KVqFL`1wNpd4acW>?D5^Z= zl!h4toMRnmA(qq}>ouwPbvl`A4gd>NY}GdHQ|ZqAp*_nT=6XwwY<0F;>L#hVQz}%o z!j-=fyfjNAAay7X;0PN?>bp$<2RWwZ_fo3nZ`d0J{KFQ{%hKxBG)JVJH(8*x1edz0 z>7cLe29?wI4LeUvJ(vZqb-PIi;sGRklFGY+0nBG4jLYrf^t-L?8c);?x6&6{O+((U?cS`k`ci{VPzt?81%}gciRtvT zNaQP1PLEqtQ8-wF%{ECf1zp>f|eP%T;f2uEeF`0*9EKKU1o}v)v_>Ig6^@oA0ht$2{EXB z3|=*DE|$Lbj>)3#axbX6Uvf2Uy0%+Rkk-0t)o+?5sGzcnNS=^DBNObUrja6;O09s( z0Oee2YNz4}EN>OM9r5eB?i>}V>9pK4NG50gLtfW&WY_|4k$Za_da3KFJ5AXx%W0i+ z+^u0OR5r>@MOoadg!N(}RV7EaPJM{kRJaH5ag67CG>?)=>m?;EG%PX~5C%Z~7P=lK zs-CQ}m7J}2-*-XX);@z}&EA`>x%YoXckfQxYpQfcqwZ}^p}pw(x@-xw-NwGAqTy^I zg8eNV--isOa=Wpfdcx`s6xy{td&T1fa}MI_4BW~!97Xh2Dn=K^-?UH&k zW;Xcgwfgk_>n{yeWJQqIx1RQ~&F)RN9lHA~5%ove>hACBdu@&eie;glE%X-aZ9IyC zNQh7tILe}-WOKB58Q_7|K1t<OGW=8hB+4jNz0BN}T{t6Xu zJo;;yMRx;&5A|S+5AT&+S|;J8sVAYZ>%UE1!R;H7A7w)nyHa49an1QK(l` zQ=0mW%)xBq()Q_bzUmzYpGMighc)GlmB-ZIx3AX9!q?ITlhcNaqqu3UQ+}_czTX8+ z)%8uDD-F6h(us^lj-4cFJ;qe_-AQF~s8p+P)!H`^NvqU4DOq9$E$`P0b2kgepu*S3 zA$K{=$EQmrUH<^EUA^zWZ(FmS^wbjR1-fes4x+f|oA#KhhQ8@(w^dWz)_O{(Du~m? z9I*x3*^YS_Fu_o|dgst;{{U%#`G(z%!3S=~>aE?vqgK;=EkIeIhggde0l2mM{P3iA zsow5rmD0BRUu`F+I(to1wwk7)rJ*!SXM1u4G)n(R*0+ z#g5%U#>q457u1h$eQbJG^&6!r>|O1@-l+71+U}O`ukSQb>B|M;#OZmUooOj4Vu`1h z*^)2M=`?^M_7M)$g^U%Q3L~JFvK2p(fl1cRM zWk|k{d(ADX&#CVTj*^S+d6t0dMn{gldt6#D&Nt7V6Hv z3TUU1)Q%;D<88gS?x0a>&NMKJ$23XHoY<4Mw*6Gquv7MHPxqU=*6JB-+LyDs@|uTM z>Dleqbi7z==&B-bew0+9VEbpMDY;mcXqR{yAW(5^b#A1Frite4xW)~>od?xwxK65; zH%ShmmdF9H$Ru1}e)&k~ocNbNg-)W${>3YjtwGrHPAd)Dk+LazCsjcY_S}CJg z)#VBR+GKU-JXUCpXobSG7hqb~7XHfnRH=rZRu}e6sJg}b{)n&Ps%mM>$?hV?n~;AA0Y*G=wUiTQ_V{3vk&v78&BgoNtle>*ur-vrDN^M+7(Lj0Ta@7yT@=aA-P?m8(>0vIhN{ zXIv0-&0%myf6-6g+%#2mOGj2p($-tvf~9amta2kOx18h#IOB|YQBp_WR9aJ*$&7#2nPzlKmT)38S)t5{?A zR#VOeD0x$-xpLWUUAKK(s;=*D)4CtHG@8cXtpKXG&bgkNk*Z-_u@OA#$iNaCoM3M0 zI@_iqNFd$9--;Shr;esNy05y=HPT*|?F8B*xcZKs;VnYynu=L%^)(a8vW}h`c&KNJ zCglT$3`YZuka_CsNMwxD;||@R-`Q4cayFw;e9Xvmub))}duMsKTRW3+w%=%`y=bjW z($h%@f5WA8bD@HzYIin5v`nsynE|Q%5_8fkY9w_Z^3RxLd++=ATD~0ACZvi@G50V@ z)2Cy9m*lK-(?6ztbE2%8{@ZZBX}J4ec-2i^p!H~tt1dc<(N{qpU1?PBGNTyL%M?>A zPC;cVdaphuXl-1LXF_)0K-NRuYxb7Wl3X=aO4D4mE!C+LT5nbSJamzww9+C4X#K|kWmsbXlUGXM z=-tlJZIgm=@=oiJ$t75oj3Ca*iI&^k zY@)PQtu~FnTC}{^%UADOiB?D>tC2TFNQ@+rT4~6PnN)6K+fDxf47}<@>5&UbYmQ^M zAFrar@jZJqGbXQ0OPUDC7ti+fKFgmSS?bPC_1mWW7j!MPGtog&b!&Z0aq0Thjx?2} zjyPo_+}eOJ_L-Tsj4n<()we{brf79kew+92{&rbM@r^#J1d_-xas|0a{_5&IBl?5X zUBvX&+Md{H+f{{Zl^P`4G~M!!vPwJbQo@xZ-)MH?MwWOSZU;YDECJ`NMyaMx43!bE z+4ubR&HYzM;XQtex|#@sJg*#~*TxO9(mRCm=uYxqC+t14Yv#Pw`lhbsce~cmN2#x} zUsq0qoLh|*Fmg<4wG@)%DG}$uQ_oSf%6(%@Xra_zTq7rPNbW6k{{R!{dSxcK`6!Dn z;0Z0ZZ_wNKb*Aj6bbI$<)3@utY5T2t(1!7-XRoTXQc^(HT|+bowBak+V-zT(aE)oX8{vxlEFN2+t!yzLTJlKlHDDW3$~t`(?cCSp7UaXqqV&)G-(`b zQ3RPuBf@|-H@G+c<>)zQm`{HEro>6yn{{WR+dUI1=;MX-e zYw(vDQoboI7ibnWNU2s_q|#JGLa8Vi5U5`wF@Sj;NU02(fv&i}MTV%I(bbxH8|m%u zx9Yl@?2VjSyD{221)-^Qw06?bZAst;IT*u793-oiAciW$gU3B|tq3^jP;(6Oh2u^u z9Gpp5(0{GUCVKkr_Lk84UrlKnw3X>RuKmKj!$~_*+-U8zDJ?S3kflj8%yt3_mXG*P z7@^~8x5Z5j69<}8kCNN`A%X4JWz=2wBWWLB@E0q-xBLAUf2y>-_fB@`S?v09!j{cB zevK-HMxaVs#L@?>3enZ=|fdp0Fs@{ER#;O zjS7O~qda6UEPA%#jY39M3Q3%7?r&?4!E^rrih6md(px-DyW(?ie7eT?y0pIV_iBd0 zM^?!!YYj6r6tRJpcU+c{hC#{XE)O5mtq!GL45fo$KBZ;&Lx-CjVp)aW;eSv&e|1j! z@46Ja<5f>tf4)#rQd7r0Z8a5rNHg6egk}mTR|GuLWVXiRY*@+4spplouB@qXk=AIv zhW`M&uC)UrqKUDvWZ6e8W3ME=T?F9-iz{u}xU?}ZDYbF*s5r)Q2OrX*&TMWG$JDI^ zFqvZU9lD%;nfrZqymw2}#-F)cYQ>Jars3XdiE2>G4MY}*1w|Yrk&WK-Qj!?t2>4tO zdb#07!(Xok9ENA+KShV*+SxST7@f@izc05p>a>5hkFx9BKF!zans})#_Z=;$E9xq> z3JQ3xHmZA`ovx4GidCjrLYk;)B9uJSDH0)Q!Bu4SpA0}I(+oh^y5|1ZUR;J&!q*p@ zn_w<4FE=esqI7Sh%a)fq{tDYvb-L0h1*(o1surGo^-n`Gf@K9g^k z)9)^0B5?OoV#}*Eu8!3D+eOstSoH5~JE=Vne0w$Anj6fOwVkolP#7LzLsX#vuPjV* z`(;!6pfU&tr8k=PX~n{RH$itb&a+*Rdn=;Sey4l$bX=K-D1{g$$sv+uVU-b8Ony`KZ^VyORg( z`tA;k)Y=b4Xb$9eW`|fqUrpQI<4)HZ?ikEySE zSNHay?uV#tUqkBKv)Y?i+_dG-wejArw%eTzTvxS{38be-Sk?-*brtke)KgBYGHyNM zl*3yYeKT=pfDMg^2L6WT-s_G{4MY-{&H>0fBc7@2JI(0>R#5jdw|=AJ)3x2H)UWA& z;ic^M6z`3jxB52b^%w06sidZ5mQ+JYT{Rq(>$Y}!R@(IdyhdB!4NC(X5ezmy=e@h9 zAdXQ^-!?k>o9?tdf~NINt$P!xq}JW^?Z0!a+HbfuH!k0&Y;>w=t87zC7VC;t!!0y5 z5V1IWuj>{b=s3* z@W})l++D35$^8~1;s+4v{4Jvys$>F9ngPjoYYn~B618euq*YPW+*vOAebh$xI~{WB zcwRIlvwQJwB!wiXI3qqW$6bR<(__-9+eHIx(SMohSA_NLUaMWzWYnu2ce~d19S6x> zH|)&QmRaw;>DKj?kjXug$z!rw<%Up{l`vhZWNeX~VcICwPJEC&`Ok4{$!u)MXat_b z-oxg#e-7p&QIZC?%&gpV!&cMkiyhFa!*!{*dl#!Bmip1+ZX6)o zNm4k*RA;Ua8z+Aw;br=-WYh+>R<>7*ej!26UfQ2aX?uQ~(OOFPKBBhP*hR{Arj%9F zRWV?`;(+I1QkdE^$O8k!(=*T?Ra>h<9ZwvmxgU~awN|w{hq|&` z^_6YrpG(7aikhI>YQ-JemYi%4>^z&1W$?j@l?};UbwRAu)fr}f@by2bBDT3MPxj%6**;GsO{auiFE03xWvnbCV8PM>q~UB{`xv%&cwm zw|_+Eccb=UH>jv>mtAk`AH0utv&N>#w)w>doT6}{WA>>cXz~;V9FW8X=cx{@6Oj2H z94(8B{0Du6=h%%@^4o;QD{FTYFpF9ZmhdxKUNiY#PR< zu+Js(f=LTN?ybyaK`O#RPZ{2G)G)$c^4nXW9Tm=>M?6sqcSv4uf_JxL>N=^f>57`8 zMR#)JQK+Z3+U?^+Rm*XfJERv1I6$hVSj3MLx}y@=+W0y6@z$q;*y>GX(@yZ#hUY%3 zGw}mPt<-du(o-_>^V|=Sx?Xo|@aZ9kje$W2V#Eo{q0jRO#C3Aew7+QoTCL zvLM`5Cu(qh0?0`i9c_5hIcqdew9-jtHpJVgRX+oKJs*u_)3s=TmCPZbz#NR@8=pl? zHs0rVGrF2ik5*IOuJpIvEiAfv?^AFxMO$-({{VYW{psbsy~S0qNL*()J#pq#!#mp* zbGe=^Z_#=Oi|M4(q&3=ed^nzLKo%U{gV%kON$+oZy-d?sZZc_0-l)}oSK+DX?Rt8u z@pW%-du5P7u6Cg#Y>XENkE(G%ZqV7ud8YFUue?_bcEyq zebli1p8c-Yy6)?w>N}H3Q$Z!F#x+gan^V!4?zftjoumhm?RT>orw_ZhUNFmm^?oIoC%Czgpst({=JCSPbexK|fs935l(ORD2 zchmKBwt8wWa75MOww;=tQ4|?Au*MhoLF=DtmGU}5DI*2D8=U-rU4Kr~+Z+uQoc#U& z0H^Ey)Ijw?>T9+dq<1H@8p_RA2BOiG&m2~|$4bg8rA00nRM3@WsEDrtX4<|=mL3f> zPppb~%w*p8xZAc>hNvkj^y#$efF!gV9s7fA@!V`y{{YjDorgsFajUjdTh~T9I*Q>NdKRfu^bDl6qfC1CXJhOAlCGKr+Mb048*+C;9VcS1ks2}OqO|2Jp&Bo&! z#A&NYh4vMXcfFSbBgnzv4}y8;tfbNMI!B(T^;dMD^M^aP=v9DvptV|T)HId)bR<(= z9Nw!YSi-E1A__C{^={67;2Z!m*1nv?V6!$MRu@Yoz`xWek)o=novId9l4!S@X_6vb zmCjDw@SySYfCo6|s57ypzN%}0S2acsSDLfw$>Y80bo}K0rYzNgu?K|p6PV-taPshw+A2DTh!}t>Ka{NhYQ%?(_rDhvDt9Fum1oPHMXis z*p>>&uk}&YLaVe#BFy2}9~dBveqDNNP0a*Eb!b0=@vfuHD`XDb61tlI0N%Xm>t3+# z52(p6*Ez%J&fbW$#j*f`NLuv9p5;`Jw6Zs~NlzGH!}x$Iz@D;vNly%QVn7EpjW<1U zwti)7_)bqqw|7zPu^^T^M6}fnQTVt+kr1nfLV;Uo z2+FUJKpAd2!Bs@a8s>w0uSV(hRW(%cz0z`<4DWBR_e@QL({`haS*6>%mwImG+HG|T zXms7OqNdufDjXK6rFh&;gTRbF02#sfVph!+5NW^fpjUKIy|TE}$|M~(1KfoA+&>jZ zsi?IZ>QknvboDf_Y5f~`rb`W?dbU83Gt_QSjJQa^W!r#ubiD-KJAGl=jHF)qTTm5yj{fY+_7I5 zQ;W0|cK-mzTMZo>TjQCwCI_kxKhFU;;Iyys^D9F;eM0VcMQHtz9)sUxaQ{I+hMohs5s7HClAW!v=U2iaedDI>K6XaZ&e-WtMxge zdvU1yhp8a3_d@Y=wcEA546xMCXS^*nMP&>%bj1D^YI%fYG8l&TUI<~hcII%-pRUx1 z=RB{?oZNiRb<1?lG1au0059i=U&`!{OLPkBd&}y})K_fpOWN&A7LL8zwJZ`tL#b{0 zd9BdYMy%V4(T64{Aa7ifyc{+_>z{F74o$<=4%4KVz9W!uEW zDL68i&KXG=vElA2zLv`JT7l80DdlE7f`}E=3T}fHm4L4gJuWL0G&Z4&AYqZ#uye&f| zRN^S>6^6!ej3Z@V8!?m4G`a;0wbTugDTvq@<{Az#M<`L`ARw00t-ZV^;ejqrfK^A zinnNVjjp%78phjgsIIBE>&oEwin=>Ew^qhBTCnil(c; zB$1VQTRftZ#=vuWboCw7X7wGTW}(&A-q+go6&NCtYkU{hj!05np^mXTEd z02bCvm27mEQo2gVQnAAWbq`psF!1B5i%1T!u-?jT{>yIM!P^@jb#0Z;L3!0z8u}}h z`nnLc*4Tr`By`m9R>=}cAPA+MSrBe)?c{Z*;d*A%K0s_wb?443u6s>shkr!Ychv=}) zXEC-&Uz%_2A@!Yj^$+ToU*4?u>xQP&R=do)Q$|R^?mS1qc|%LH;hR_*%WN)k{VPnCH{7=YJ8jzG$G- zb7OY=_d@>B3-l1%`x&P1*E#Lle^6^1)ynaEwLiB7m-ls!XQi5{-VnhOS)(kdL69j> zetOe!6UXrL)ZADOq^#e=*h{sCNwY&u&t(|BFZU+T?^awi=A^W0Dk?jJTPo}5T0u=w zheRv3Kp9BJb`g$O>S77&n$%LVW8#~&!}s%D_9utLS`FG%zVBCWEj`iDHw&G*c&RlU z6z^SZk~J|gl~87uKmi`q<8BTFi-BvMvD4cy1A?A+hZevKHz@tny*yV)fO($ z_df2W<9l98d&Fs7_6dt3Tw~aATE}_z|aGI`?#jPw;K$p4g`B@D-7n&-XE1{;w!BDmB z82Yx3u}M6%HE*Dw?tlw_`r8&B_+E0Yqjg<7Yg%sNNI2{IV?OE-df@aM=u_1H0Cqc{ zsBQh;?`Nm4Qu@DI+-fctuIgyBS=f8+;Z!qFjkK^-!3jefEoCH={{VLDBSj`#sWWkO zv=t^PnjIf|i`&>_e8T7&Kf|pbS<_>6H9=)j0@nmLo2WMe{{SQPR>kOJvbyiHUYz?` z+5Ys?U21!ar!9-6Ce&6vXtnlvXld1&hPs}rC3tG7+6F|4*az7d1aA69A6}k{vcJZp zZJ6PH**PV4y$+hMP0=9J>Rt=tZz=1x00-L%`_vZ79Y=Pk()ue&Y6{IoX^Yyt-gMpS zp`Pg;17=!A4uSB?^~Z*7ye|W+-0->9iWU;=`rIuXFEGR>sFKYi7qGXt`An3$3a3x% zJx8hQtM4;X$)Q$`G}LUZaJ1G6-)d@Y>Z`smoT*?6oUb_Q!$>9Z7MvEF5VJbme6?a` zn}-kI;HtaSPN<}s;WZjnE2!Ng#Oi*cF#IXxhXjG}Fup!@GE++(xrXELS$crm^7TrK z2X^#Uko4)JXtnmDw^V62yjIUqX^zig*LB)9<215OLvXCq*H2<|1wzJ9Tx=H#T7-28 zJbCt=^;%2+0Pz_ZIV9uvwbv!$S2^0LqaObNc89$BpG{lzCI0~T zy?9<_Tp_3z zMJAsCC!c-&u%~Z!Bc{DYEp%wo#$q*U#X(q$sUf`MI4#aW=lP6fT&$Vl;dK2yo((@M z_X?$dw7ur-h4WTw-q-2sjZt8RactL`etT4Ri0)J@4Ma#&0(CL_Y~osHNf$eTay_=s zKADv)bQ8MQCzSR(e(#UXE-IS(M>?jEUBA>U4n4Q}e}uw%WYTxtf9ewbd9`U;%O0HX zKDwW?c59sUvQkr5Tx(PD^(zZ)5z3UJo>ys5kiOixAcLKy8J|yr3Rw>`n#=Xb7`@N0 zLb6O`RXUv0+m((bzcMfSD^=FIQ4>&ir9XbsXzd+rwOV^~M^kf2^)00SAUnN0Mlu-t zG_cTyML9;4_$LP*$Cq$}0L zZ5B@Nc9TFwru4mrs)1&)(b}seMxugSe1ulr%YHNidKIJ^o5Cbb9QllzJVBJmB>8FOT?1W*5d*eO26_C<(NMO^S zRZlBKl7ems<{pQrO=qS%*Qeg!XsJoeVqHDD!F1Vs=v^q^vNrD(H%$p+x zV@VcrjLxzv20R|CD<`Tozh-D9m=|u}Gt~NY?6kTw^r*DaSyubbZcjEy-(k>t?t7_S zr8}>v{ZZVTxwpuxX}cw(YK;b%O1f30w`)7SGi@Rmh76EV5tooIJ>7$L17b^}WI%Ec zH|fZxz`&}%N_%-w|1R;8y-(dvD5Eluv>N4+X!)G$d3!%1DV z>=BAel&FbLSmHuIhbLvjRTSm51dv`Ea6LUfd;FIo<4Ed1kjsB1&fot4YwUhTM`@}ks_N<>pt9SkBY31TpaO;zF{5MtRUm=(BP5QnQWiRAyQwGhU3!(RG|X#o z13>x!mOa<8&3f$x%EwbQe4bo9c840 zk>cSn-J8-fcFR{;eU`XT-S3y$DhS>hiDs6Hl1ZcdR87Bfh)ikiIN^5ZoRHm0xR7$c zBdUo+#?tdSpLn1>MQBQ!zkKu#r>3?wNVe8b95vHS!j^>YWz2yNcDfRv5OP8O6O7D; zXxT|C9C~1PS`9iT&gP4GoAe87Y|+;XO(wdr(q8QssPzR}RFtmwZIMW#HAVn{L1a)s z-T*DQ?*NR}x=7zM9z}~nyp9Q(8<^8@?wfjk{{S=}el%Bd;_XzLQ%=5;6xMnNx#_!f zbyW7+t833sncf?MsrOZhEZ+3E4TfA5W7Ulrjnj`7`~7aB*3;D*Llic+2G=&X&-w{eF@WobYYLKv!1dKZFn{aP+IXGg|ys*w@ z+&1_-eHCRb3#FN+X4%Hs!96dY$~bEO08X8-xZGB#X{l&!6VLegt@eszZ<2wVX?UsY zX$)j8SpNWbBDOG~9tkwl&haUgpl8uuRB-N@Qa~-UdV%F5*o%EEQ_lJ#&uHzXqTQpe zw>leMo1|NGG?$2np|tETm9}#Uzprn{vbIlCUZWS&){d#S>6_sfU&AG)#TDvy ztByF~MNe^n848Gni{yk$BY(TnKG?R;4f2xHY%k>eh zJ2Bm^*=oB!ql#|K_ZFg?MPI38r&>CDMafUIYO11`Di30zNQOwCc@CkJh2yO*iK|y? zH0F;{d32HWy~zWiKA-ZlwK`mSbwdq2Z4tfJIN8TyJ@0SCCzsR|_CHX*n|p<*w3e^A z>)URFyTN-}6bt~G%{@H#N@u2$FdQTkJcU>t%ML*Yr)nzb*z36591ZYJ0sZtvsYg|( z%-TuX(B}*JY;FcXKd4lXqVDPW{w0+e&&>Fr%+rk=jpYyQ(gT|K&5Sm~-M>(XqI zDrQ*K;yasZjr<&Qf_l&RPGwn?Jco5Zzs+l%sPfYI62=Qg!zlsT?%-PPcV_hi-*?sE zX!?aehH7;efY59Sz;11iUtWqs_b=7gq|Iq=w%EIm-OV|0qSUni0Ee_yRah!67MkdZ zF_tw^M&Lz~;fcr!TL*H2DkqCodz~b4xz1({v2V*N&aYX}=qdaeCH`EuwXQ+$($-X= zd(j<`)B3km>F@n`5@@O_+3t2)ttoa&tK}TiBRE@KOn=@lwvuDrINg_1$vD!*Eo6{2 z;vYS-2*=DWAyrL59bAlUNAkfovCexCo!-sMWYiGq{?X{p=}ARXW78Fy!%oTE{Zn|p z>MQ(dDhIM#>Niaca>&Engi3)Ic0I)R8xjP+WN+Fk;oO0Cv~GHvbPDrBf^9+X)9EF< znBHcGxRO9WbYBM3icf4CgTTw+&vM8cfUGBt4XNzeL zp^$^L@zzehD^xx<41#Pg*>+7Xug0Q=rbm(p0_Q%K`5TVj$-?eViq!Vb$ZFgD4VzO- zNoBfG>d8gJP02w`JqdZJu2NA*>zPlrIH+OI0~pHZs}3D;ZmPidS*`?n6Vm-UD$X#c z=i#|P7jsBC8x4(*&-Y|kvptrxUcD@9JwV6m+oRW{{8-eIef%nD8 z>2cL>dn4KDlebkps<6dyzFd3P1;)oTsc&noXsl{iqcZz2MqQ(YBw0=aaIznyoCwvf zl1)-6fcvg(zDDVnHX02Ua6xe8aW(?(#>1gMyeDI{Kd?tl=$i+pE9ZXh9j5MG>#}yr zn~Zik*lX_kPgc&Am35D%t8FzY3~f(U?}u4sEMuKWC>PGgvr*MxGRsKt8zw-$NfyU& zPTjk#rw`KTx`b3stEO?5F=7uu`~0lZZ|*xL2frV(v$Hx2L|?nF*!^kUe%p5Iy4Cdz znhL(#ajvcHOGhk~bvAWKi^)B%1~mp23X>usNfJ`2A5_y;?*eVt7+GfIa*du^Cna;Qe-=_EL zj;aTD!?3-}?v9|K(|w`SRMK0m^p9P5yVcQ_vr^4bk@#{(cO8(&A;4m$QHB`DQ6H(r zPs=q)&OlYJ;o7ZIV9FNY3zL!s{{U41wY8hQy^I$sU14L@lz+P0bdj|kLR+OtLH_bN zj6qpW?Bs9>1%Tl7Yfn8DV_NoF=jyY%j*F}5t$C@1!<6LM+uv{BRP1_G^$mHw+?PYs z)j>k{;Z-HB%~KIi!&M@gith||nvn_yU*RWd#&em12qrINrvQ8XJ(6^-N~)2dHP$@= z{q@4Rp3Cb^8ECAgy;t8SziZt$rz`F?8ZJtcLqkVIL^0RC8!IFG5|>g5VeJuu0X-iF zaLCoQdGy!2k)&O&_WuA2TgCiWOHH9cUlY0BFy?GU{{Ue)eZ;SdEe~Ja$~`w(bkcN} zX)SeEJtcIv>PW3}xkU!5G{lj^zC>TdV4*T7EHj?9x}N}Ol=W<+b!DgC)&k*XG~O%X zO1(4qwLYFr8%>Ot<^c9Rzj;hmU7XZfDCzDsv{eR$v~B8oyWM+1bi6FIsaEgqA_49) zBgo9a?jw>gLB{b-40?4}*`T>?vFYjhE%yUeO{mcQwp(8IIp5dySlv5`ceHng`){{? z?Uu`^^wqOSO>~3auQXKYTSs2eOB!)YE7S~o#1r&|JPtAN4+!Z!2Yj-EW$qLJE}ImcenAQc1x6Ey~Nm$I0r(KumWXmpo&Mb!_pbJ`R7ou*UA@m44qb@3^4=Eex19m zNAY@X1{T&;5y(LnJ$*e-qFYpYFwwfQ&v&1e<@vA7t1}698_o^E@}V;<2)8+Qy+%_J}CJjn2n2tZnVos{a7C zXzOF%DJaoas8KC89jU?^gox~MJbS*9$`~9LAdF|nSlJ$V?$d%-QKNAUXUSWRoU;mh zJ+g{>^;PbPDPxY^ZM0CWj@3;ORWU%a$QoG!4hS236X&V&Mj0SrB#z5><2=L9U_Ey! z*|2uUw~SVs z@o@8O_WV^p{{Zl%_KM$fTkXF}(8Dscl(iAZQ&UMo*&82qC}I?`Y!IiO02$9#bsSr( zxuvdt51?5XxKB$qcPHceD`)hdO--QmPL8icJI^zAit8g6SOy4s$q zs;nA1=D*x)?+!wYIT6cKIw>pwLB=di? z*<=-cowwX%iSaeYwxR(c!A-RU1GxQJa=*pLfydL1gf9M5#kR+~W;r=t7&?-?)v(^@ z)K2#?Pf}7K(dqGs$tNqgJe4rGE)Dh$41(2O%3HEPhTh zHy)S`bbz_W-@c1UAz_SoU9s-?@6T_q9gyzrl-r(y zj(XQWiJ`fQVycitEWb!LND zq;p+n$;`qw$jCPDe0z0B&e2le^(TA#f2J>YIqter@u>aF&YHN=d(=0YNZ_8Rq{YVa zj3eZEd^T7BFzmC*9!9|b0EFj{QOn95<+k4(?&oUmw>mD@+~(CfPMAAVXj|pc zlTzA%W+s~3a&XI47*q7YQUt2FUGiXN#`M($HfQ)`?%*yyW2d;nzS4NBP@{pc-La>d0RB!uiJDC+HdE9Bs z>eo_PdtE`HHKZw2UORnkcPi_P(8{a<+){d330@TK!OtBZ5zPekQ9Xv{JN$}A1;bmV z(ivoLD3;D1plpA#tW6oNXuF4F(i&wc=;o-hSgP$Y(b7|z+l^~9p5mktN4eiJIBl5S zxr1}Yajx-N_sT_qv0cYX)TyiDj-A%#Ye=_Wm+yS`Q>x#nuA26%(?!OXlU8Y~mWA)8 zgNwM0d#tpCgrW8IQ zihV|jjC^DUy`0>@f<|&d-re)>(N8Z?UEa9s{Z&_B(yt`5O)RE3qN!IiF7x#jPEiiP zcb}w$b=*!zQgsUX>u(!Q=kfJb`dth(5qL)2!*k!VOxiT16@y3LDKA$mLctYGGF_^_ z5EkirbBQ;_4mW#0P>f^+1fDV&^`DkE$57UnT!m#EjFLAJEEHn5Y4q29(XeRy9?Daz z^;Hdm-XkJ$P57DPjpagcquGyp06&Y{-PPC8L7j0~~*MJYt?h_9cg&I=<1PsL?pCI4TXf zuW|+~?TY67OQ=%uM*~SyOb*R;x`GZtO3wM|og=RFhO*IGw)Ij2=B-!&AMKtb8OAFN^oVUT2l08%RD|FVDZ!Ct>UR z8Q+f4_GemC+5%{5Ek&p6?ss*nwAn9lQOP<%aFOX|mvU88H7w}pvA6s{R#pRXmsbgj zZw<%y@>U$pcxEwfzM(WaUs2mM=8d>^_fcrp?u4DP)<%+o?K%h1T5Cya7$$;h_+u(0 zG6`jhNaubKl6NUVwNSbCeMP8ypJTD!{YL5?Cuz|=(x>-q z+K!fON878Wozp-3QKq1g9kNlY+AKtvR@hjnAg@;8?-5uNeXZXX$JIuR85rjc?sM5( z7pE-;+HY1@KIQjEy*HmuUD?$=@AXZot27mXtP7>+>u9@oPgK;CM?*+rZL-lDyl*&l zl>Ry=d1NSqrfTYHH2A@$7#7a>+kWG8(P)yyBU#rF?Z zb~`|6>8_VgNmu<5r!Sw_jaf#Q%DS4=x7;b}65%9C^v6$8Q5>*=Q6Y?!1a%g%^feXU z2y;x07d_fYzth{I)#>!wr61YBVG+t&Hy{vAuf5N8c73+=qo=RE((D$x?jDNMx0C5V zw$%{-0P1$D()9QJZL99}w%U3aR<`{%>FU~;rA=npS^cRcTm&Rz&T?zo;j61;vJn<> zd|K!6=oh9nZ5M^!h3>6h`S7Nt>A5EUZ~Y5=qY4#SY6EVd~$sEGzhCULW1ExXYb@<~k`uA8Tyu>j;{dAcSUNQI-! z@)`i>Z)IZrsq9o9p1Uok`*fGq)(1vWNG`g{;ZD&_tg6hcR<1;Lb{^_HN^)NT6@Q0l z>&&|Dul!e0eQUnxy|2(OM`$!3!{}k81Iz#p?oU!xYxj!Nt@YNiq_*0%1;W=yT~x_m zZMOjwl?f4HB!)qPK`dA6BkVE#A^x>@VR z#-jP6=_|DQ-(pbF&qr{LW>j>OYMhPD8-VIa1QhB}P=+?q``GmT^-j}pjDJGB|yRP z7L^@sE8(JHu^o5$Y_$9}t3HEPhN4sC4h7cU$%^&$>W|WO#wjke8hRz}D_W$YwbfdE zqZI7x{n@L9Mhhs~$jC$E8-_4P1ktH$HTu>=K+Z;7U$wh0W^o3oL8Mc7wKEAG8b}>| zKf>m_xINR>Rk76BgQ=3Zy2V#e9%}1-JcXI#Ml5)3*voT_a60r|4wDv%LMZ7?!5Q0o zWqD6o)nwMI-BVE8SmV<>D3vn2l?^PeA8f@Gv!7`TXFGu8Wb?qzdV(+%Tij(#k4}{F zY6}Lb)9FnmT3D$@p?|?s8ERrcjTEfE;$>37_JfiGW1MxQ;d+Q+tAC8^0xh2DjX|xG zP4JIH%%Lx+np#U%s;I1qmo_A z@i^zOKfJF+d_S$F)wK6%m1Fs=9$fA{`YxI+dPlJ|w$JR$oyOGHN-58^M_*~Br>fI* zKo4yr_GLyKV*?M7fu3-B#ED~QEOU*{))@ZlqlhNQD@BGfbND7h)GuNCZ=!o|KC`Co z3^lYin}l_c&1|5K+gEH<1&i!BRUtFXZ-cZP3}>jdaXGPvu=5>-uYa0@Rse~`?Jc%? zeir`#2tLmDf7B+4)HhGwJ=4@RJ-cq&wy)CtzwUmUmYY&u9TGRDlGXTxTA67kK*UUp z`@Ph{1yD^(r>lpOIT~8$9m&BRG5gssOk`8Y=hWHFAmHKG9gk7pebeKoJyZ6FyFKRZ zzifMfq4hn#SYOpGYjd&QO(WAt)Z(q-6yH!(P)TWW4kIUN0D*5yTT;rlQ&hw}GDkDP zw&uX)Yn{W8L#0Wm>9XEtg5evRatIvOxXJYHtRCN?`(@g_Yg1>@dTz%H*4PdHO;4J0a%)NZZSx`Vs@jjBQ*wWgV-W`);%Ik*%f^GrZ@liKP zcAvRAKSXL8jd4R`Yi(p3X(Nv2lh(&HY%=1UFVw6<4hY6ZPB1#p)4aN^g@@+09BgB$ z(wq;N45QwYD=zvwx>x$UD^gNa)Y$5&s{a5S(lt1b=yAK*kz3pt-k_fY$0rk-=^Iua zJD#44&$_KSl8wz5y~2NQJ;l^D8rnLT_3PGB!y^i+CXObZ$iZax)m`}7FvO@)x1Tvf zby~<}E@SS{b~}9(Z5mlL@y`jd?Z3%H?_1uuZ5@QR&}dzMsynG-J;1k$-7BiJTN@P| z5S9_VABqatm^S4x@$~W>XB}v?IP0~-_pmgybSG}VMZRYh>9SL?lg3#5UBGUCAW}!u z?NxuOtt)BJ-JiGV9bc}Y)72N#-LB&?wqGsrdx#B1+P7qk(-s0S#5p5pBmlxQDJrJb zKF-l#H_ipO{gtYdTha!J_L6SvSQ0$M?SZ}hx+(tvqpZ5qvfZ(>_WQicZHr#5x}ui4 zvfon;eWttI_XIT*l`w%5Lc<$baCpH1vO3hy0gCZ7Sai+*02Ruv`kH||&Cj*J5AdK~ zi?&Ha+#96L5sjp}O3fo|{_zVEnFHV+PSM6#bMu*=7ZmW1mNc9V{)!}a-qAJM z-Kj0Mw1zv4Ri2^fH?o6%p8IRt z{`Gp3p|9@Dv{wx|Y)aT}c6+?amY5_#Bu_nXY{#(<6e&CsPn>5>OxRr`A(g&Uj>{5S z=hgU@=5PlVzEz%f7qLCA(B1z4*ZSv0>AEO8S=qR)_lqPJTY8H|thrUgl&Orb(JW8| zeUd0Dq?7T)p-V{G$CyavXzzZiZ6=*8l`d@XmIH2<7b9?b*(Uu_>)YS+ znyS@S@?5H@M9@>gS6@zj$7th*ISh_V0fJcVB-qr(#@4h(Z_VHI{FVzz*9A=kl=a7z zu#Q`s=Ge&xpvvM0xs}jddy%hh6tyC@ma|!0s;R2WnMG7@Su-Qis+O3=5G zjwagHX#AIwbr~A{MrjysIgigPvfushm#BWhcOK1c?d7Ys`Y%KG<3ef5i(TUPrtMML z^#-uECTEVSvScdNaf5^{F6KuukKs7$oN*&+X!RB{p~S@Z65mVo{1;u}jZ%Y9(M>!t zwUe_10l4lDRn)@ic7~=Fto_SK^&C>kRvtN~FMu}Z1&IU>KdI`nSH*_Cx#+aC(^SL* zSs}381drAoimkm=OD0%cg}You+M|lbj^H@aA_oV9TtO6 z)ihE+f1!oQe{{oFb=LpK;gWcVTMWS6-5z> zpPl!`in2Pi70xi+UEMErRo;ZV1Kexhbu~>VbF}uP9l6o^np#~WMPp?ixPeCkNCI-?ETCx~O#Jw>HZJ zZwovo0zKHo5U$KWvH;vdkejl{B(DPpstrm&`B>JUD84^^6^w8g*c?TH3aqvK;LS_}BNij~W9XzlhMJ;*^s=_>a3J;l=PR9_!)a@mXZ!I*W0b31J8|BNO=Y&B zo7{q-BDh5lxS?~)!@qLpAUi3~f$1I^uXRhKs{@w}KAx-0nw2xDsvSt?+=4~7y^6ZJ z%MW$^N_vm(jhe$`y5D5ey~UG7Xq!a0C@72+_PS8DGc`o+sT_HbGssQ=DlkdMS>K3K zKDSs5jPvsFl9SBUL$Pkpyt z)|T;Xpq6vYTct*hM33ntfK=hOfu6aBrAI}i(h7>ATRHo=wU0~%(zKeooqD~LQM5Xp zqc;G8I_?x8(4CO&uB6e|{V(a4xb|9FsC7BN!P-q>B_@})SRSEK>Y}h$z|Oydo_~te~Tlhbm=Zi~j%}#^5tNgzhc42Y#aE zN_{cvQupa=N$K4o+zWMcR|%)4j)`OyYe6z?mS{|oF;_-+FC2-%5*~bJ^M`d>%1B=W z0JCy_f4izZdr8yvN|7v^J8Ugyc0Fg@uXgHLtF-O&P1Ic}zY%ArzS`=o&2)(J9+_p0 zM61g0WF!DbQ|t9g+M?cVij|}2`bL!##Afd8YjjXUzW%2>)#>9!Xstt~K(f;JLj6%w zt!^zsWU04+fvITy)H{^V5Oxcd&c-;%AV{K#&580k<*p*&4!_}LYc&XCt8)u3-fhl) zp6K-juIt|IXWIJvT~!U9yH`|0JtckO={$Bfr=9~+XQ-%n+D~n^k_OU#u%w<(S*GeU zH=Nis?UQR**xg-f)GXAru@pz|Hv@ge#ue9kPtdw^wmr4KOHqHYYP*$Irl@^EsjSAL zTU>1dB0&ntBF5whik?>lu>hQBuBF3u)UjxZ7cA{_`EG5vHrw5PX4cmdYMK}-A~3wy zIO(T}g8)g9Rf7}tXUIM{}xb~d-N$y0!5V0Uo4W$)&kuh;#|?cZvVOHr-=itSb@&M}NInQGVgFN*xvDN_e+#_M>6JmPaHg$sBYj9w{|w zrH$TO=J>%@97V#=+=#JA_uXjmo@<(OVi$^l$O0T_1JjQCmWcJHR9_EN{$irmTMEB13HRsAt zskQxjA;lUL8dWSpp25cbg~hvK{{Sq7WxcA@u~u6nq?8mAY%wM`v}Hy=?nur)-y^DN z=)@8dGA^-F7CJE`eS4+@)W7W6?Ki0%O=|9yW#3b1?O96%R;^QU(YFu4MXIQxJ1A$l zzz~U~r7Tfp19!D18!CW@+ciWnmP7#_y)LU`qtfeZ0j_BV*1Juw*c<*IL~BEKBTf2f z(Sx*_LhDg_wo+cIuJsohvF_DXyN>42Mck;ygRazcR7rKIv`282A!@Ns&Wj<7c={RF zA&Ae8sG*tkx|B75{lX27$K6>}(6dmdbpwwth&gZ6T_XJ=e#zeDe$Q_H+U^>ExYqvj zc7I$=9emGKY)uiYbVbgZ8j4tEte{!shN_mPDyd;4S;K`m1Q zByI3A9MkxV5H0Uz%%8xgN_*<4<}*SZ0l4KYBRA|vPX3BW`nc^K_rBfW)A|osUF}e4 z%1S{+S#7yPSFE)q`Q&vl$7qHI-$gWek)y6zLq-Ik#>mI4UaLJrbyoOf^K)l>#g#Q3z>ZTYHkQJi z;PU%H@q=~X_Ngw6BftH*pruK=<6HCtciceV(J1`2}4jojUsXuPLFZ_O2FK zj!cfh!P~zIoAZ&h^T6u1sMJL6c#WLka5u8mQC3n^L(5TqSnMwCu2Tcu4SPp+(;BYX zr!@s$sgB=G8M@pmY8qMAcELN2;7DLNK0E`A^yY>pidPv14sxrtndzznd=~;+y}w~l z-*c*Ku3CvWv{GK&oq)rA%AN)h{(&FUcSQ_|6BeH#hkOFLb}7FHHWG;O-#w)1<2`P+v5~ z6}M2!TXLSNTE`V~%L1!RNl~?n7C0H&Ng!vYt1G6fpnIO{+xw|{Zj}a~s58T0YmWIR zZ~0nnLvvbd6Tu-QB!5as;dX6OLNoF_uY?)uWwz%zUz&D zr@MOBm#v+lq^YL0L%As6NcKHk#CXE7RaR}g#~1^5NRAuG*SKc={{RJ7CaUPenjdS} zeFpu1$y3|VrQf<;pS9cTyP;iYwsxaQwPud(uAc5KLo~A2Rr}9W`Z(;GIO@bx)EQmE zGAj9lQ4Gtb1C2YISXpM^UM) zKiJ((XPOF)I~_CW{ZjV&sL7HD>EuL&8FL%SQ4FUz2M0Oo4Lc<#ozE7w-AC`b&{Dph z897X6oPSmBFZI8$vaK&q-IuiJZ8_i0(|0z=+Lub|nwpAwdv>OVJFSlMO;V97M>>z8 z$VkXWz-{52VYatgDmt>-w$#PtEdt))l~u%=WVO_crw5uc>$o1RKkd)pd7zSYcSH=WG@mh++gl;1Hw8!Gy^lRZ`(20Co1ab#h)Ifxa8A18{vUg0JcH z!f39?_KQhrOK`Mkoh{p|S)rPIQySSS=^?DDtC;0^d1P}Vc-%oe06K|L;fXm%-tF7J zvao2e3m^bnnOWSB#hzBAp0NKQmVA0uIW#wYcBRVq+Hu0`+`Snt9H`*2IZox zc58k5*HLPft+7aBnNmm}WJ(!UNXw&@&m~xsxMS=yQpYo8bL8qty1!&{!w_qmYhg7V z*zOIRN9l|9wwf5>vFVzTS6@H5B##6U<~N*$%dr8AU}cET(YphrxDy~9@$>!v0F=#q z?4+ad<@=!L&?=mz_4TZ@_jm<=X?2ZVp5b3+p2-w6aMRqPyKEx4p{tCB0x1L=1Z)B^ z+ngRv#VccJ5$@yK-~h4^@f>pML5y!REr5ES=c=&Y*6Gbb>Jvh0ZsS(!h-~(It$bIy zdo3OMYHOW=o|kn^EgU2h76$?1kL^u9SJ;7^V!vZ{zIz{enWozOb8~**aPyU9t+_m+( zRSMY88e$-VS4sgS3IP9PS)sZDHY;Q;!75TxR^3NeqwA@utyk;R^ycSyuv071(bG~+CP`$4SgevcR=@!^u1R6I^xSN7>7K^7 zC-O~C8|JAG4kMSkl%9)wGh*yNZo7lsmee#luUYqUyxb$bQ^53*+O+j5?V*AwQNi}DN@Jm7FC!swDu;1LOdG+z%ST0(j zYc6#cNhoQxTsnT9TP*SZE`q+gIVtEW3cu3n3xLuBa#6?%2n1A7)XPyTzR*rUBk;PP zQBcZwBV;4WEHR4{*Vf&CWlm|k#h|-e*}Vk1zeH$D*0_erM{1|nddh}>+&Wap35F(? z84A1LuH;5t`H?^w=c#Rp)kHP9b+6wZ+btfOEi??hQ~7y*LjB1(O?H&hp0qty>Dr1b zkE+cTrTbrZr`xABZiwx4Yj?dt0NAnG(|XSoP?rdkOC&NAlDn6Z-Daatr#uNGE^z2h zE$wf?RO%Dznxh{DEbI&??=iL{9r91(z5Nt-?&s`v@7DFS-Ch1^n)S=7Cxyj9gpqN?u^ z>U&LLuQsNs(!m;{2WsFO*};fWG{hZ}qm$>S%fyZjBF!e(@9e60Zh^J>j8vuGLVVrq z2iJUEOQ`z|1*=f%j^+00uXWcAC7`NoRlT*lPA*#8OjK3-LMqxR;9Oj2rKR^C3aC^* zSdMm_Tg4~YGe+15Z5+PF8xl+E}6Xrlx(HDmMO4eI%)p~H~o26|` zvD^(uv^G3};Dy3UjGo-!j4?Z#idktGBx|f4*RDF}_k|Nl(zLB*^V3&=T^SA=;`an# zjA`lgS&9ntKMXrr68SHDfuT`4;S4aRFt=Kdh8(hnP?HNsmpY%VGVJwwk8L`>nL zaU?j$lli*qipq+aFZDPNzko)1GQ+4~I-1Za^cx4ekNBKiNv2-}(#m ztLoRVnm@VvpG47V-s5*mO4I8ajal2q{?Am~YU;8?NRj<6kpQc*RUyb{;g3fZeO(cf znUDL1z!7_oUv8iY z)&k!lXxK>*sE$y}ApjL2PS#M~cQ`BxoSD?RvzrdsPz@A zQc+7`eLZSfYAN7KrIr&jJ7Hps237?8sLvV97^-ECQ0Sdv4Z?E0tgEMWEPz;x9>gZ2 zS6Hn&2e_TR?QH{E>MfS7D|n%%S{zf(v@{fG&^+Nz4q9c8dvF<#0~qU9qcznNOH)uU zax>EBb%)}KVWFm`(&+2}2OU6dt%R`jq22z>_7V#HZ`_?Ne7jEiowVMY*4FotVC~b( zObg9W$UV50t1-mVOss&UXjCcBRxg-CT3+Vd+ZnM3zpA9C(yH~YT4*H<7xP?P5$bvm z*Q%0w-?;tP@6Nl@+H17hlAgz?Ak}dG{i?m&Y45g!Z4rv9d-L1FZI%gX!@$msx7}!S zgU?3=M747?z4s*a{oB;7$MB6ag><t>vzv}k)0!3CE^SZFkzy(s}O#I$gV za8%%ZB%_`(ezC_b)^*J-Bskpv0F_l+FN-ji*1zxaOy;!I9;bUL zNp3VcKCCsPP}wOAQ&Qh)>SHNeMIy7hMv`un@}wZa0B1c~d`i=#6phv?&+{X&KbSZ4 zD@X8ah}lGHxMsTk4MR^T++NuPdXB1M>ZPOXhL5n{bT!`Dd(<`BYTa(X>FdJNTyAht z+n|~obwpIeZ&^$-#%2Ivm@$pd2zh?7uhHw0$599&-~ixuzoP2=JHz!nElVXN;1(C% zq#KgcwZQFssN+#pV(!Hy=TlN>k)rj!pQER_UaR!&1m@YPVS=OGXf7=ZG*F{}+bX0A zHw~=ha5FV0!+9?A3*Q4}q@m(x&4>L^2GAdBB~+?xw}4ZT(}r%r=WtZeo3IK~bcYys)&PhQ(8N`neFhI%)mgqZRPFdHn->bsGFf#)=?ae4MbIQ%F;BX zMfC0sTq%5z|I^YmFtr;R#ZNJuyJ{pCXoZGzu- z?ALPdw@OM|h04h#r@1lyt zFzYm1@w(%G5H(7gN~$?&UPa0I99aAR0CgR-=XP~PB}&|FHP`xSDL`>84W<&olWQu) zT(Q5l!G=_@$I=NoI1_*EjR~@Nf|-{Y1l-wWhZAd)U5=@Bwl>G&GPU|YQq}hzD(mhr zh%WGJJLm7AP^yk9DXVHEb~{yY8D))#a5PdO;=k?nUU%XfUqj6lEjeS3BU*B9s%HB_0B562FqOxU^c-^-pkPk z?WDHqJj5)u46w^1D;Xnw%)&AAhGM+=IXTACZgf&zPbK%dc2)ox%eU|QrvtfqK0e?> z*jt1#6s)bij@Df&p@>ZE)iuf%b?HR1DAsNaYgCqh^PEpf}-B0*s^5WYbz?&5^ zrOl<&e~4S|hhNs#BlTAASLvRkwAv!up>);q-FBwav735Na-g2eEp8=eYKC<8kTi@7 zZ6tw^Gl7%Ps=gg+F*BN)R=a#0E?-6Q0)l#w>WG}sJ6NduYwX^*k5JA@^%*!5&gZgz?3Xs#6$29`&08$aOMs~*yC z1Oo1-z$5aZtrEi00lsa&;;&ArF{OMkym^~!42%Bz6&$@tb`Q9nf~K=tZ!=#lcVSZ1 zRdp2gUhNfKHpoWmSKI9tEEQRyP+1e5*y_Jemzqf;b-9P{+=KL4O1e`^$oVcoxd-X= zJ?)g(b}Q5-o9%aV>{^RoR-H)=zMe}xZ8JHhziCFPrWA&)5t9=^5Ic6L84lb6!Mc7{ z{{Sr81AFu+eZCeD*PG(UyM29>(bZSVE8WR%)DyXb78W-L@=Bc@bhT;yNc6?Ytdfcw0LMT$zogX77Uxx+9Bcq{ zf>a!1jrqzwZuHDCGAzlg6P)U^@gNS-fhe(43I`1qE*7}e{Hyt zka5oppkxwHQHhqGcDxG^ZWB6{Jw07B>1Q0#yjcGFev6!s+J!;h8oyGyse7)}B1_zh zsO=TjTXC^zjY&r3BBiOOh?npoRGK~P%PL8n5<0v!0-_T+1Dx;a{{THUSohI7jm)J7 z$i~^e-}AbNzM3z3leb;w(>kL@>D^0yy6Jg8eO)cORlU2s)J%Ppw)jN_UAneu#B?)UDq{hC_}W0yCNa4i2bIoRj*_ZM<26gHTnPCM?Y8~bMdBTP zf@ou>fwq0d21U*@>)b2(?Ee5}yBnZ;Yg?lh#iy$7cM2bR;j3cewg2H1TRCqB&tCHKybap!eS8H(lEF-`V|tr>B~( zwe9zMYh%+}?snRh6*Lp?U6K{Z5+L36BYi9j3}gZ#*HY54hGt-a`?yo1H8MTXJ(m~X z)A!LW4*?{{Sv+ zhyKHFs7!^AyZU=jYl@m1Hl}(Ci^Z*`uRyb}G?^QaeL9W0ZnzU>k~g##-G?6E^0?w1#njri@nfmArDEz@ifKD%tZ5eJ zxz-lPr~;a*aDYN1r)5CsPu0&KR!bDNa6H)9Z}_POW8q(7x|8%PuDhk$-pk&i7vE2M z=HW#_+^+H6Be{u1O@izyd^--yu3!Kxn zkEZHadIRmouF^fY^wX;cVJ%jE;%L6kQ{Qx*WHse!^%Ylg^>l{6-hi_!O;u@zNYFMt zwh^{KB=u3QR7VvAj^?{SCf>sK`lV39`6`4gwaEkadv#qJ+51Il&{po-X#FRs?iyRS zJ-^X1Xo~F}W}`Ha>RLb}N?2x@2w35aB!#0u3mH!!an~3c)q5&soF6;JPHr>P@%u=yno{qKoA7o!BE7{aDj{XIJiKg@L}B%i1$?bmTA?*`}HTXw0_8iY-6yHi<`Ez!YEU29k8h#ek9l{6gx`RxW z6A|QZ-fMacb{J@YUXL2IUtIj2A*jR?B{iHCjqwiB}7iacE`6`uhmbe+jSfo zgT6hS@79>pey1#&=JK_4S|3X4Xzqm1`?j7%MVd(~Y37BFS(7f^Kd2QY9UK+YX!POt`+5~_O^#b1M60A z`FtkaA1CS=>w(qHX81tmcYPugB&Jz58+_6`(RZdw{_WkhA9Jo$RP*VpJ?1?#YnGx- ztye5Ksj9+}nG~5LQ@bMsu5pmkbbc1D)#EiWn>OOt^jZEq z%B(N&ei}&UmY>`sA47=uZ3B4Yt10UrGeIq}^i>9xvAnt?e|64B?Y*Toe@@yaIV!&i zP~G5DJp+S9aHx(eWoj^%Gq)bost!iwEy>8>r*lMPlh7P1Dke3vX8!R{JRZFL*KY1)(z?gQb0C4-Ph1aa4&>Gk?OK5}Uy=eFcn z50`(I7pNoP-CJ6x6I9M42Vibbxg9=xrsvc*?C6-)1 ztZd5s5m!&`hL8eV5=KeL1gISKHk*tftEw_omq5|n`AI&v!l~6h9co&AA*hPev~S8h z!v6sJ?nkKER2HZ0-KMq+w3aHWs$D^8n`PHd-2hjCG7B_dg?={Vs}0Id20%F6Q`WXt z+?%xQMndM5G#(w=%ZH7@#k;Bf`y_i?q`R5wlGoc!M>30D{{TeZr_>NfFof2}4JN@7 zFZhUNMmX{9vE*l~Dr-p~4LRTFs%l!+(;i@!9m}@*J?xipJCo@f)(@vDDKA#**8g?JINBhR><#=aGcl zCq|Xxki@zAmj$+rs^ikJ2t4e6<8{s*mb8o)H3x(9UcZLRqTlVTH1k8I+Er{#i zKjm~H)P1t9N$RY3yK9s|?aLLaJ3EjF+N-sI!RHKof$@&9b(2%Eq`@F0bX&@3>s;~A z6`Sdm8++iE4((kuKVh#G5JRUmE~~XA?xqPBbz})$1dm9vD`c9K4HF&-SsNM8RNuvm z^(ZI+9%3`^g=IdG;?uf!k{UDg&AxkkBEG-$8`g61vr2WfZ6~%Q9y^1+) zw$9SpXlJ2WXR4@RVqb0-5!2J77pZ@vU;&(TO3gAUXXTi4IDi|BSbkRTd@OdOTNOnm zJxv2cOip(;Kp^1Ud+Y_Wakf)M>MznoR*CgDqV;rbuC*?Kvg=wobq!n;{{V%#MQ@HM z>FcVJdLoicb)t_Sow%}M_xA*m36Nc+$)O2H1=iYXZZS9Vk z_fSGE*mt_=t+kTNsx=(CZDF|DEO!gV@~}%?48HPP>b;S$Bd8I%Bn-CTSL(p8nkpk1 z5HuG9u^*|u)`mS-P%*XULS8|>{MjWihO(u#>@;(-&Gb>%U3!o1 z1&MANGt+gmNN8FM6}_dbxC;~}q9h0Z0BG|BGfg}Empo^4500%_s>a8d-*&WO?E{$m zm7J-f(BhB+1dltHUz8t4j^3&z$LboY`+lgW)!o(YbbZIJL|JGix5aI^+#hpo_Tp!a z8b%-}-k`C-Am;`RY!i|8h@){~>U(T?J7!xBc@|qf1qRAs*)NW-=_8d0BCfM zp!FHr`+mKeqU~EPk51HU6|+zHc&7H^xYg1`8gxlLwIVkoLUVhA>kir2Jsu*DOj)O()b@$=wvmfN>1$npSYO&> z6i+-bB#faC0#Bs-Y)%gb`YlFEck(r$hd0nzeq~H{l?8OHmY})3uINeTJB$-y@(MNR z-u&1*nc2+~W$wO)zuYgj`qtF_v(*$gsVx_sJyjui%#}=!vZ|J4IGUPav6aRZ7z`pR z?qB?J+uH!#_rK5gWO}VNJnm&lE^M2d0cUpYY0e^s||E~hpJ|pM-gWn*+l;UNj5z@bnoYM>h%jwx;^eSx^q>vH9-|N`g*Fv zQ$*^hyMcD4akw_t1gKx}bv}BBF^nHS(EfK-`cxh*bDRjcHqWWQ=(-B*{{V6Abp67q z?bdo`dNoguA3k1}PTX}#dB2Y?G@8 zcDC4FUigVySHtyFQ0cPT2eflC*0FHTdXu{021y!OB$dC4M=~}%WSpP%>$EkYtqmO) z32`nZ#dO*K0KKN|E&ji|UZuT3MN>~lrh8Y~sC3nAlNAj;Mc$}Sg<`<2$fy|P1D|so zdFvC!{{YUGmH8kd+yF}9q=(W^ULlkck zPfC?6vB)yNQwAVsBPwz9`94lr&5W}kUj0`@sF}@kL|3|(loYh-60$5YDhw+`0LPyP z&)esz)U0T2whET2NqLAjxkb*XeVGf$n%1`FHwv(jldW!`{tt*RwxCH)+oPA8+FPEw7=etb=*9i=z zmNq`bAsK*F$-z*;PJTf6`KPP_)gnuDS}@Sa1S6&QOfRQ>;xZV23CTQTs>0DLgL_>52>hZm&FHLqLQ-h@x?`$!g>7X%kG9uA zNpP0aS}AJob#)BOPe&BYHpL^b`kB0srFkQ$&`>f-yn37XV|#mk3Fw^XFh>y_$7}4j zRbR7v(+_m7T93HXdS0usL8#(cq}4PX^}Xp0GN`R18<2sFsP#mU@_TAxZJ?NeCwD>7 z>a~dIO+6z3ryCa@p5znqR636f@RYUfs;GOu*30~daZ#0)T zxfUMRxw5!-4}HC*wGQy(b-bV(-`A!7Y6N=H?$vg&(Y@o-9mDPu(p@k0i5`;ClgT9w zQ&Y6jO&cVOjhO+X+l2>aLCY?2nzUxMuBe!j;!fuFzd?1op@xcvgwVtTM=l7#KR)We zJ3puUiGO(_(iYpDw(X~46D@5MH4Ldn&QT(eF;a40A<5oG2rLO5Q|a)`Bjs_oOqBOC zPjQK57~zvS z2OVDN{IulDIr3PKexQ1w+Ii}#W2b4mt_l3fNsHHUbvJh|Ee5K($y=r@S5L;-t+zz{ zWLD~cr2vLEU+$Y@F6B-(<3Gdn+0)AU;vV~eHXetfmBh}1iOi>_XaJ0m1<4&r`J&#x z=`^K-((ST>TFW*609IpXUm!3eU*^GDz|~oiVxZ@=znw4|yf6T^pt^mGRNkX`6wUPRb|tKNn8Yf|M;IHa9Nc?)-wM z9Bow@4N8v9l4zTLq<&<6s^dr0q<1AXL$KYwyI=BFyXm*Smwjy~e7kdQCW?xJqSp4S znXis|c_*%sp;~wV8B-XQL3KD{qiD|^H%R)X80f?7Cfs(h{{Sk+wz85lCa7cnY%L|O z?g%E=^s=|TFQct`A5GYF#gaFUj>AN>(0>B7(sI+!C(?H`vNW#T@?7Vx^F>a|I#xp- z;C?;VkF~8zeP2_XP^ve3+(|z*#=q?k{e~LTQ+n3#PkDPMaL}Es>|J%H+1)yNJEBcl zB~|{tWSZ@0vs$TBazrX1d5p3c;fwKs0c>DTsp1MM2)qfeeqVf_-WG?2I15(dXk@RZ zb6FgHPD`zv1uf{WlU%#o+e*sF;99Et6#zw%3kPFur&s!Z%6J3r2?S$~Wg(0?#hWic zXkap~osQohJY`PXhrc&)bhSBVsi(P1S3oJLkJnTP2<`ObfDX}s2lK!p2{ySqu92uU zua-M{FT0md``=$_iVL7>MW>3U>eQ^xk~~mEK~uEnh9GAr&I!o_rbEA#CoobT%TG-9 z9D+~LRsR6(2JUBP`x6F$tk#fM(_D2BsDn){v{A`ynsmWw=l3C!pcD?6F*+)eG7dut zS}vVksUBKuS)^X~y}dFrvR@H6rjJUFFSim)t{MOzjtR1#euum1P2Nt+>09kIi~Xju z!gTJYreg6{ekzRne~2pQcG=?mJfMNWkmQ1Rb6BB$B|(kA@|#%qT=Pn=W}!ePXF@?% zbEUPc2$8_y16M>Ko+(H%&y@jz`5DUt!TL$#o?+RZ4>NLqG?y^*+$d+2&ng&@xX%a%I?mV387GGr$K7ibJI&US;h8S7c2__cM>-y{#0%}L_=YHBSB^1y5yLB{8= z%}X0cr{htqZ<^lgdZSyVY%5Ktt1VFqi7fCiCQuB35bSf3Gr_?5>sB~r#%EMY@tv)k zE>d{8kwD6LA|wnuo2pCqUY|^MddEHYQC+I9HcA?Qayu-QE{Rt#1)1uQ955IpkKyO| zN$0BFLY^%#;iU6lVe9I&S}j!i+XylEecT1?Jr^+^t-VZMyV2dasUt6L(zg4C`b%UC zT9wv3Wf`~|a>x$v0Y~a0Q%2GsRN?18fb>?C^&S)3Lj&&r2Q06ESY>GdzBJlDwBD6ggaNAjKbO~L*8tA*9R zpnIpJ4nMY8Ah0 zf0U3cJ%4#f)99ztG~-Q8A29^=wmyGFHgt8{TkEdLShZff5YX%WUrinQ{{T-;0#e3> z6WM|g#GR3-P^I!b3*%G%vWqwA#8 z+K?D(<)=aT#oWLuMz~iFg-+H+^VW`no}AP8(v!?~9X^VJYFA4yhZ{VgFgJ9= zV|6)vZMkW<`4xLXM;VL6k@k_K5Dsod@sCU8HMef+YhLncD<^p+^4;CZ9t!q* zoR=A@EwvFXOc|zHymPs3M&;|bh zPja{)#ah4wRHWpdYkprP1f>0=zM?f8lyPb~du363s;Usz_X1wqTPbx*EbJ1drdeY} zfXqWk?NRLeg_)aiJoVHLmqiWcf+5ZUwljWS!b<=3vD=&NDm@9h74F7Fx|))$6RuHSBj@O>>oj12z(!YgLdx-&>?m|wU08%}BID(+s*!0E~4prfr|u2h;vZQlm@)vq!vD)Q;+mZtU7o2qLvCYl{nQZjxtm!oh3D{p8fZODLiAm|d z)IOro-RP4@)^@h#b&F72gcUMsO8}v+uznfRM1N+b7Fdg`sm{!hQv;r!d}cN{J8@*$ ztd62n3jqxx;Dc|kp;wLD9UW(m!A&Ke&jQg@LZ(Z6sv(M*WKiNHQZ}-T_$s6lda;5s z_{;5eMXA@mDNJ%Y*4y{d9@W-bi)|G}1r4TYC`2r0po9v`co-y~ZL${w^#dot$5HB9 z)<)pg{FI$DQI2NwO7VYODx%k2hq&v_NpQVdXbrNWrgnmkilzn>vqQLjQo?Z22Vh7m z&(sD89M>{gSnfuP0jkjLLqn3n(Ox272b2jP;b2 zBbB~>a0vF_Z^c@0?JWkgJdsr%R&v}p^f&VErLS>y?{6$~Yn?gXX493Ow1VMs(pO4r z)CpY;-U=xtqY>1??AxVd2fg$JCv&nDU@_3N{Uz0O46meV@fvLFboN!;Lt76IYIA9o z&JK<3z0J08?0qx%g&Au90BDD2bYE`twu{>m7X21>lZfn4P883+ zYVPy*H&*t_`RS9@-)*)2oU85SEmozrRCjKYo(sLzqxWjwDrTXmSs}v(6!S!`s)uxA z_|}34Qo$SJ)Zyit_%nw^~zCX@wfASxk!q3&d=%473zuD_ap?a265*tigH4-lk4m<}yfpy#YNz z8xFVmE4Il`RMt^U!0Ym7tMn=cbCjMP!y^h~}D- ztTIZ{84zHWO&u>R)QohvcYUq%+v|iU)ux9Ou7rH;vKU0Z(cUZ(B6nm+1kYe=?3+>1=}S+B4N z!lV+-3~ngu=TR6_HB>J0MglW}h|2Tnn^O#tPQXdq{{U0m58eIKI$o%B?M0Q^bGcmK zye)olYY=bKwXz5n#uYw()qhNVsM04$dWe?QVWP4B0A&}ooz7aTW18EoO*%5^`l@pl zRVJDSs-uuPZIkfy>`83qzF23bh*QyDCm>@zN%z8Xr&6YowGPxnc^(enlbi;RsUJ?t zzO+}Uk6Ase(_Wgp1?m3)NolF{RzqfZP z;Y%e{)H+cbeJy8tfErpFMfaojkYpxei4~M^Ff-E>I;1qW6!gq%ZgA_9^Y!|v)%qPp zSP!eImC|=*fNl4;r_1D(Iv2B=kM?)lwBDNT70%t<{TryN+QFu~qT*+-nn*p#QrU8b zS9gMChDH#OO3H{foyfzi?z#4jLT|N}fJr`3Zqtpx!T#Q>bHd^}3P$OY%3RU2&K;eB zy~lf4t*?E3RcW0GrX;#)*Y3K+k=e#e;gjDw7M5mRXoZF zYke{77K2r-i%AV}A@3%@Uq0%P{X2T&)g9CI%iPT|skK4VS~}I)tJa=}PF-Y*g)euy zYT9X{Uv5mXk`nV23PWuNe&D(5vA;!+OyS6%NXxn88}4~e`CKkder;!rOmjNTjjm_} z+T9F)xmFY{>hidz6+}n?DJG8nc@1uK}D%j?<>e?zg>Nl<=BnX0_kNvQa#jpdG zG2_T4q8duD{{Xazx!Y`ubndjyuQ13P6-S2a<2KK~uVSvtNH3;d*-ckh*#63B{XML2 zcJE?K=8UjKPjOmsN%m)}W-gG1+yyyhP)G0%I!h|(safIDK;Z0=d*i<6s#Ngmm4}~H zsl0uSv)f=kU6cX!l6585x!#uHy4)^P>AKG2U3-IB@5dX{QPt^dJhk-HGiNBKNh&uZ zj!)r_JY+K2-eG+}{{T<|4f{Oukf2Xm%37Aw#?l&ZayB*}=ISe7uB&>y1`|gj%UWDY zMi?u&#&Av!IUYDT9Q9gQ;2d0%>Dw!A4#^u2sT%8XztDE~QZ)sx(|fJ6YTM;KJ1yGP z`?^+&;S3Sa9}KM&$jyd8R21EiI;yIIW)`+vw3}PhA62~Jy=FLR9Aj`XG?L?Ni*LWO zO?H1;`j_s9aVntg_Ob5|do8w`Cxg)RhA5aIswLMz5Pssbypa&tU|7lIKhJg4tiKDEnXC$`9TNS224f z;#5d0Yc0{c%j9jsp%u5mX@xjIH58| zhT$u!vXD8>?;|f%2P~pHv;nh^_Oj>^(??9u!OJ1O4XxXuy^edS5$VIfT0dE6Dob5O z2A}QTgzfNd-&1PpvsYHv%4=LPBi(CAFD*mJ$}q^GfpRbx07??PM#_0?2>=`&&vk;< zGYW+u3aHyS*1|082H~;_?a6Wt#j!((oTZmMuu zVC_w&^whc@&7~;?aEf{#-Lz>nR>>m|8B#Y%f(ZbY00O>29eNH87fhxiSSi>D>&h1x zs?{|)o5?KhE$woe4^%y)qq*KF^~sv1D~(-(l9Hkb?lV%;R2W^+8L5@PX?8x+s8BQw`$t8 z(bnq7>0*^YrKD*li)7BRlfJSAP#k5Djt?DnzlW41)O8X+${Yi4^2*}h5vxhArH#4e z&ArNmGHFXDldGhJSKe<3^(z|F(^_fm0JcLod0CtSbDS=7yO#iGsXBxro}tkLdnzh( z&u0#)AEGqAtF%>jcUar)@z0_yeZ!jBUv{HJqk0RS!rKh;Q`9O-PQ@`{W%l-lJ4=G- zqn2^2pzxx%`lE0DtEF&!btlG@3&Jpc9dGP|w%+ZP)6>e*vn0658_cpYll&^mGsthg zPEH3Wu0vAShgribq*6%7G+6XjN9g0W`ailiy;0lij-`DqSE#hN;&iS0C=GQL4OJx2 zNbuEC?hhnQ6R|$gRvS*%Y!TFbGg5UdkB(D6; z_)e}(PM=Q z(jD2gRcUVETWV?}SiQI^9etUp8--cmkbqYiTrwPS=RI=?r>dr|GR1yo1BCPZXc5hG->`3%{^bI&KD ztm1t}c8DQh7v9^P{t6fUoub6o&p$J;aDT#!S|V$9o3m-HIZ0A(6qefhyEP?LbyL*E z5Qe0*aWl!e@>Sx&KUdU1@z#&W@Q7g+xF0MmEgP8|TTTu9#C5j&en|fSa(kC=(Ea}a zptrqMEhIN<4V*_Lj}(weJg`Wllm7rOxE3>$#`1H<(WTRinF}t`U3`0f?w4F;q^N0; z+@Zh`exoDv!m^IZYq;oUrmZbc63PDn5jjF%+5nZ@6p^`bKP&>=jkH|_d`AK@;ec^_4E_TB6#VSx?A_L$pF3HnY#rv)I%83H&a=GM{^ROfj*9MdI;&CA zTWw9Z_ZX*5h<_0i$x>#M1Ko}^-_CkPOpvlr%ohP+oR0V#exY8`XtLE%GOdNi&JK0K z4R(4L2Hw{Cr)Rp}xHb1~yQ5+4yZTwx*9%pBY!nnan&*Fp-F2D@nN}5@E!&H#4{-?& zM=IR#PfWHGJO#nP5qulw-m6N=+UTlS(Msn=>ttKp`%)1$ZiM{Bb-igRnU`XM*tb7%I505o~9;bfFWcuwjJx|#L zPcA)dEIwlWI;J;KYD(_f!L2oxu&OkgBU|@+<3Uxb8qt5Nmfcb(Gg47h7}!t=Vu}`) znoy3?lHpr$z^a~#rlqZx7|Vk|xfZbf`>J`h8X5+=mby{RCpDX!ka}2Sru|i%cH7jX zdhhRZSFzHJv0!UvddZaLiXEfz+7zpH^e1(yCk} zjI>znTikltb8T0Lw5lkf*7Uo^@cn_@@6G6=K9kXO+A~_pnoC%wnQH5VGuo`R@=K(y z^-#t`tZPA7$sJC>9S5{!DTA@l6O~X`)Y3>LqLI4-?(+PHA-pi+ILX8qroG|2xq90 zIp7FhDQ1Z$E!U?$7uWGkOJ%CmgWYQe5-o5>{=dD~D%B|T_DI1_;M;F(fPF`z7Jrnp!u4kd?nJ5<_Q^NarL^o zZ`n6&?LF7OJ;j?xUi*n(r+q#4t3Y=C&t>ie?Gd!x<+k2ttHf@{CIe904=Sc-ASnZ^ z2OU<)Nkt7itOL${K=t}9*A3~dpT&|tyxa_T{{Rc33W+UE3)N3FG6Fa3jzGutKWt;J zRMOH*nzTWZu!!tOM8|g%xjnPfF{Rs9+~ssI0;~XiZo_=G>_gwbK2ePuB)@X_QP1*|%l(}Bzyh&wCjYSml)5AeeY^SZb z)!Y(-og*0bslOTQ#?D!`M1ZjXVy{xv<<%<F)h%($%P_nzZW*Yo%?ob`m$1*%oFolHfBaYz7DKjv+3X#x?GwZS#xc z{uiz&_=XP=kkta#<7*$N-`!(#{ieN}x?JSb)cv~EdeV+)T`MlOO8Q968!rWa3s7Q_ z_TU}}IRp&gjV&2668D)%1`K_m!S^%>Hh#v9S3dheqa+x{{x@QqOVypq{IA z4zBd~M{v67tK}7&w)T3u%5!VHRI^JUdZR$Z${|B3IT;vOeL_04vxA{Z`PMPj^B2A z>hR3e^=lGbTq4W`gZP6Tlh*0geh4URhB zu6u*>RKecuVc$N;_i8N#a_&t|toj%0XEV6B>3_{QUAC+4MyAvv9jGn(+f7?_ zUFu7=pQ)_2)TKg0BQp)8n3!(kZZOS&NTiBL=*WAR3qiI8t?T|j1*y}9qpUcHr6JfL zIFj6SU2l4J^@(ZjR+7`x+-_0Z?{^{~tkd(>B|)dH1T56f%2^nzw-3l6*PeRm`gXk> z^v#l2T)VK_rdD@Y&}D{q0?t=_zXU&XsI^AAxztrcEf7;0hmw|_uDq+FgSA|2Q}tn2 z1Rt>Tp1IEwK1%&j(!AND^v6ZB;hLIlB8)dB$FNb(zppUM6DwO z<|YAlo&Y4TBP9L$s^l@SHLtnsw7>TRZ+AFu67xWIN=dG=+mh=v6x8lyk|^-*ic~7B zkI3L>i~+~bPEt@yS6gV^W7MV8aT_TpjLvRO$=ts7_Ss~$Pf1mOdg3w-Emcxf)g8*m z0H_;4&ItJ!Mg!9mm$1lUi1HHtBBBmAbm8+mOo+l(w}pEK8Ws2@vOK3Ro{Kl1mbL*fT|< zj*s|wzbAX=>an#PL#b6&{klTX;bCiH!{71lt~WAKyjSbm2Ws6Ds*G=YVi* zFKhnuvW_|nvR&ZrJ*Ev=>bp|gVbQc#AKp4|wYGQ!OITwek?ZP--eTS21S7@^9OJ6j zpR?57GlQ|V!_&XIxYJ`YHO$m(8Ztoq2|u7uO$F-Js{4gSqU?5JkU?xT6cf=jbo6v^ zD8yw@9vA6c?#9x*WDq);1AIx@9kNQS)T&^Z-W!Gik5rx4wzw?XzFHc2<&|J>?@P`j zjz(Mp7oWRlXWJa})J;$MGr5DJtblVi{nUEy_1@`a?+pQTIAz{B^hPq%NX&1)=tT8wTVbhP^%{)<}|bu4|prn~Ap zg+d#Bu8v>t0|;trWRCzv8DX95&bR<^l_x9KyF<{X;vH(6ONpfOxC3s2`9CF5U#rEW z(9K-u02tD4eL5g_vjmb#krO(jCg*4u?BjkZrs zGaZaTV8vQD0f_6++qo?PkIgVC>b{P(^xFchH9m3;WJIAi8sx!eqEX3K( zHtX8^`Vo-2REJaQ2qW#)!oh!+P4{C@Xo?j!`uT;LqUh4o!%+0{$ivzaGBPr(i?BJv zZQ+;By1f)tbV8mda>~(e$Jic+vh*IAs?^0dJ?__Jj)wN%rc#=Z*G2v~>aE(U(JNkU z)h3GN1#Ji6>uDuisg6)`Hv^9Z{{Zq_^~`k`D_rv%&F$ZHxuw;#Sso>rIj6A5QNz?% zs%s9P)3qJX*LPO1X-j;+-nmB?35OV1Vh8Jx_*CSAGH?MR!-X^&ol3M((~a`u&;hSMRZvE8`s^+uY~a@^v$-?eU`xjk;Czdb%u zIMGqPsNgC=+CwnhMsNTgiqZ5MeJ}vaS-Su%KjnERSJ!H_Q0LXSx$ZY4pWX(_k2=vT z>g{j#4t6_OX;0Z@>a)8VcGWdbtnWsqsgFui!$tVIyR8qoo8~w=DZyKZ*Rdi;d5(qORXk zy5m?;Lmc&*-iJ!wD&=ckEnQXGPwf3WY+@>8h22@$20uo3HtY_6hK8m`J=c}Qn|`YI zN~dIx0j(GAK(*9I?Iw)V@?Y&*xIQ3MV26-?mLJF z1d)@RV*pl0Nu8kVO}@BI%@_VVi#Hei2kNH}p)UA#C%?VC?rxscTBuRY+g(>{)mP0r z_3sq3D5sO!qn0)RIQJ=>FeQ|h#?;}PVErC#ICyn{a-6o`)r^ndMV!(#zv2ba(Eaw| z*THS?WB41UQ`WDpKT-h28Xv>&6d zP#yK|ZDzIBHTEvyrj(T0Y}EJNYizY&ZfQ(+AhlUt{-{@e;935naHW92&DPLW)=|9a zb}t<-VozQ7Htem7PZSJn&9jIEgVWR9DV2~C>00Z9*W2<_jr(=n8((0w zL)-1fw&Sd0O>3(R)dCvjNn$1>XjOM8h9!u6<-SkK>gg>EakN_I{^V?>>6)b@C7z;F z{MOl{=e~P{!1rUibl#ijw9TH$ZqeG$xq6a<8@=5x78SnRG_+M2FwupO5${XCe2mIY z3wZi^w3z*gk;5H}@y+}E)LkxwYV}f9YAi0N&nUSUw_A*;{oQ*t2Y79^F>|MbPt{-T z!S0sJEDHs`)jLVu)WCnk((<2 z0Mj}?Uf*kZZP(dFLAG3lL=`T{1v(g|B*?Bv$;i(nki;DQB!pBo%?@u>o}(eJ=6=Ag zguM+}s&%HRplVArblMkAQH^0)P+^QmEn~_|6n{#CxKF-f8|wN=$BYgT(b-?D3Fju! z8=Up%3a9vsuReo9`z!+9ExD#V_Ck@q?Kf9I~clr9rB_deJ8Xo zyVDv{vZ|QfwT7Ips+fjVs%jc(VvP_W2k8>ddHZh8Hxe=2M#jfHZacdF0D|xT00--) zG_^Fg^0vfwzf<&7v)x|WRp?()-MG{{RI(O&pcI&(SgHy)#u+QAKIJ-K*+pDIR!fV_2hx z2b!Sq7-=U^s>~R>VL`#_9DY27#ekK+npVadYFsmX{V_70BlDd<}WMWZkboKUB zkNZcxF!wjsx2WClZUgl@iHIQ?f&~!y*t}ivmatLCGL1XY@ZK zoUGBh2l6?|O^LD#HrDo0{`07$lJ|9~o}pXucUh~No#qZ?C4&Vdobnss1C<%%bwgO- z=}U^xL_9e8M!+FpuZH|#vjHl8_LSL#vB9-LsofaaoFD!;aJ*!L&(BedS}fq6g~P{d zPjIEb?9kJ9?$~zET52slmbQY;4k(wJ-qJ}|9MFcU*Gau6q=S(TzG?@hF zJv&c~vYbrD^7C78FZ;^OaSYQ`$>6=$V{Smd$Ya=cR&!6>Ekh+WWo{Z83MdW;brbRA zvk`?{jO6eE=NKoef3(UYJlg^Ly2T1;zR=kElB<{0roXdlXSmjDyS-H|gtbtbi_NaF zUWTrwSYI+lGAn@Ut+i2Az-DZdjCIfEno7A|=jO-ey6%}z6&)`rz_xpS%A%h5+*(Epno*d@@uQ z(~NyT1oCOhnd-X%tf<9A)U^;%MOzaq2!RyNqjMfN9jsLSw;XZ6OHHZ)8(m3><*|l0 z2l2v)njXHkp7Bvg#!0EFtJXz|H3mVon63_3U<}|AIXrpCRuxgTz`X7g@i>=@shL6C zePN|_MFoROUFs<-bq!n;6jsKldYW3#dFg58Xkjb>k}q_~5EfDxar4z_pnIZaOsxJ{ zy^pdE)FKkgMjScD;{E>sUaIUX-iFO%rlj1G$85F1M-p$_3kc#+KqrjkGZB-VkG48q zpy3=myV+6D-bqRKDkWM>r7+Xf zS3;GvwGsK2HbOz#zz}valB(VhMNd>?a0R!&WfHaV2NGRx-szF-&#Zd}n$)+AH{VNY zTKhFsvXiwo?ImF}I%7wB5;S#CA^;q2dACa|GqE}QvFcq_FO0!a7v4E`e4re zT8H@n@|$h{0NdXC_ec*=x|6mN%XHP9x37Yt&v|EBYMOOuX{uykWGo5(77M>T;1%GE z^;aZM@Puyr-=dkS$xkF+H8X*@$s1jAOZz~(j@s+K^_IA2_wD*7*&T|VgYMlUvs6k? z<~_t;z7%J!qM$p^(WXR}0UYrB&jHlDfGNTLZQf{lL`i4$iy-3RxeUu;tN))CB;s9jG+BnGa zG1e*a0Pa(KuFlto({lrGo|>9D8n6qDO;AHLhDgIyCcu8CIr!jyV+Y4koZ<)|sLr!a z5;EteEjqrg?Lk>b4P6BAiaLraswKJGst}#HlAZS<9Iz^KrG7m0!Yqo_~ZT6R#;ox(bGlthjO0{csX&4Rq= zqB=!2e7uqp&;`ldpQ?dbQtc*@lF~vA$N|4}ej6ws-+xrS+PY|6C!sr+>8is+Xzw+g zR;_i$a}2somSGHa)TFS@T{9GYg+uIq2G%%lO`(b@og^~cG1m9__B$rEjb5nGvYw`n z-Ya^ayPf^U{n3Bf``J@+^%i@Lexjg@x89$jlewC*w&hO|p<9$oJUV*cNffzRYO1Qw zzLAal5`sw_eJWdGDkBjYU(kJ4I)W)qpxBt*&V4<9P^==++!-!C`IA^)rk1X!QQfAf zxZH!Y`*O0xLhf(kQ4w`HB<3=6&ooba#e3lx` z7i+#PXR&IYon)u0LeM2n;0Ejwo=^Qeb$?Ca3Sb^>{nj^Je9zRK6a$!?_gkCAuGv3dJF5QmciqcxX)H8x zTy0;4yj{0PZn{9KYUaqs*x7k<;E*s0KUabWRP_&#y|Hrbo2^X{qijEHFR;C>ZmJJ< z*S0rK=GWBTFM4hrK{d#!xUK#IlomKf$140`=2neZGU3&RK~SnnYU)1C5OhR~c0E>w zk*Vpjx{W8I(A8 z{w6HPd7+}7qAf-pVlW(Iczv8M4Tv^9!P!yk+DvscGU=41%xuha3z&Icz(u*5M^U&w z%8!3-FQz|Hx_`Bn9bu(n(i-!$nkus8bJv&cJ4aJ*?p2YlwJ9vMx9UC2liTByYAs|r zdUG)om5i(P-D*B3=p0*I%4TWt(MUzPWBadg8L;S1_B)m4y))qV74Qa;Jlc-AKC2fw zJoP7;%CizY=bt?|*%;A# zs*@Xu@{hqNJ4xQI;C4e-+3wc5n}MdJxFqdHY8o%a5Wq4lgARp*Fbt=F#QdJB>$GYe zS{Jdvb6b0U?iJpN#5$gXTFL3&LqW*RkM>;v_w&|obA3qLG%dQi?RV|Qg{;yx>8zG3 z6whj=yiiLDLi03%%P=ntyT;-Jqh}}1W-T6VE*}c6JL2sHzblXKy2UpWjcP|al5SR# zIr&e1j^87I26 z%X4t`l-<9#YB!Pz+M1@8y0Sms3sVfhW+_rig=LfwRE5TJL5n4!jKtG`O}?cm6R8?QXTIn%k!JdFzp{-{Q>E&YzJQ)uhT85OZ_xDlkD9SdA9}k@ z+`C)7x~`55>dgNDg|0`QnV16G;p2iwJ9*>h&rZj!P|Cs`{HeZq;v^wlv^HaO$veZlthQ7^YXm+JISbo*hdbr*ai*7jb|P*l?BdqdDc zLvXE# zi}4Z2z)3QORSX!@(s2}Z(}oy}ZcXoh!1wg(7QT|I8LB)whn9|q79RIdlenI;J16R^ zx82In&}ltgqiW!&n@&?tsG6PaH>-sthD44Eh^CS0YNL{!niiTg4}cZU;0?V^9Ze-= zJy-(n&4DM%MY0d$WoI3IG?dfPi?~>TNCQ1BVr*_Pe|1@1w)ENFj_9>+q0t?@?w4_` zx<2k{u6O$-f~N6nwn&2yO(LrOZ?tY`BKIA0mPOpT(z>2c47w)V9^Rp13#FCKkb}Lx zVNP* z>HGy>_T2~UbtCz)n_Ts8Pwcs8#0@{}IZSnxQxvHsqvh#m)`mfWE_IYZ_`_Jhs zusz&`O*WLgp!Quld^HL1Sn0VblM-5C=!X$wJL?cq|(&Z zM+-=x&ap!jj*GAs9^!HXF4MzwxTz|q<$EI~o%(;Dl80AUOHR<&yfwsr``hM{UCy`m zYgTvPM|OwOA8~Ab$kQICJBdSltDi~UsDER`u7$gZnXft`T$ zcdgPx8T)8&m5df1yMC&NhBaF0H0My(IEf^bgKn(qPrqf*HkS2m>3`EUp0IXGo`&gY zgGe-5ZYv&{g5GK3n2@Gcq>i9gv3AR~K!wYaPFUb|hlX)Z()k!kH#hI|w?)gY4$2v)wy+HRtz6wYyq>c-pjXu%cQUg~65vs;4yc(~Zq5 zDi@8BK|3-(I{LYrR^TFG4i-7Goi3dEHac38($@k9ugmvkMV;27tAg2juDnk}`>#^g zJ(qG_lw2TrriLBONHWTU-$oKJRVQ~O4m!^W&rLmC6yo8{0Gwm$xbD3vZk;d#a6(RM z28xF36%9SU;cRO(kx~9Gv+ObRvD~-;V2^1=v?v6$TjjPug<2^~U zzFj{AwYWaF2H!>2J|5_v7OhLJ7Z#B6EuS#4&%M%~leU#Ll=>%2Usj_{$0fG$a?+JF zvxh@lP_Vpm?)sfonlxrYa=6IggV!jjozco(Gm(3Zz+SLxBa)YxUiKtgxwXIHJQ{05 z5$R^XNYPV^_NBkoMMPGLc&LRat972Pnr+R3BWhC?PB0}TkB*S~mb$aW*bmdHrH&42 z;OAs=AF7txK9Zqiwb4S(5`xDSu9}79Z^cu`O%zc9oGBJxuqu+uW+%A7!(57q}OzHR`iY8!g7FuHgR6GPtHR)aTm*G}r>~+zQAF z%B59~)A(&9v~8-WkaCbLZ~5=|eG29^=USGwNFr4f4azU--mUP>Le14(STFx7;d*e4zz79qg4BK zBkp4TNAD{o#dR9CpQW05_7?br01i#>lYZF!Jyf;rh1Q==&`qZ_-jc1Mp`NMcwp(Mh zEwWoB9L{B-iW>iqJXt?6->ryG?e1=q@c!aJ9Xf zvs_ftSJOvTM({~1Moh7Ctc)quRAA==7$CP^p5Tga13-#N#jngyu{d6H<9g4waS4Vu zVU}nJ{%o0ynnz9`8eZMqtNh2L*m1Ulbdx>?k z>dGBKa;ab~l?;&7n2az+)iBKyG9Tgkv%qW&H2gBk zLx5aeY>+nDdH(>6qKxqoYX)ukqW#0FrFdkjhU0szSs0OPrng6Sx=zfXnEjo;>}0MR zdOVPv)YLhpwgo_}`L zg2C2$rzRhTorsOZt>bk|c-m5FXrje_vB>*CtjnZWz z3mR|~eJ4JAqt*!o}WsltF2|3ZX5`Y%D z@i*V^8(Z~PGue$%tn@aU(KeprR?`hh{hXuz(_A2(65AbUf;Fq!?Tj|^ORhlo3jzrs z^_lxkHmcbwDGx9^1A~8MFG3ZR^f6J+>q*KkZ`ZC@L|%;hXWdOfX18lCU8n1G&W8dz z%Ox%B8Y{-8P8lVNk+SJdKl${beb7{*vi)5>r)bko!BHb^lfO~v^HtjJzd=UNu{GS& z>}`P&TyMf1!I!UI|-xIAM z4!(8-{L-VZ*BdiiEN8>$Gs-XNx8R#z;$5_jqRDW*-*o1r*HrUD@KafIPj05wS8J+} zO2YF(lg_}L{X3&v_&oJhA*QBjl2(};dj_?)`jK<_EoPlHW8`3tX2ok=&w0oH09Igr z1ovFz+`UCtT|GnVit4V%)WH<86s^hZwSRm}t}u~bJHBAP~UyD+Rn z9Av8G@uU$y%W`l|2Vrggc3nC3)J>-WgO~>IYa92-wtHV6l$7oj??c_R1xAY0HhMqo z_NCKpOMTPRt2|c^#7Jhw-W*iNBP5Z?nUG5wG+-4O>AFV`_&R%N`L1LhZ*sh)#XLzS zp~MERGh)MG*Y550Ovmick6%}J3%Xinw?X$ZmcymA+S{x;!%%3Og@T6p47WJqq*&_Z zi6MF25SB3z7>&nfNL;L+3b=wDZS@pU-Ukj)4lH-Q&MbbbMO($R`i74kJnkMNP00iB z_wK9{yp_G1qqH@%T-oi~_Tw#WOt9#ygVX95u2nYg?^)xgS!A1ZPY@DGD$^tl5}917 zQhJvL{4t7={{U^)BL+s~0&W2Z(|eBiS&E%W(#APt0ha>S^Jmkw)na!uU+M2rR@iif zs#_)MJH0ek{XZ?1{du~ID5=(8$^6xacLH5Ipu1J-GQUcCgVt6G-D}-W+vp259;UHN6}wPV4No*qZe*d})bT4$ z#DJ_Keg;l#>RLb&a^By8^i=c{%VNiXEG>mMeFRr`3eR@+b*Z%myzTFB?s|*WMb^W4 zxM>=QXr-K5EwmK$wL4XF9X!y<7R~%_MmfPdxi`d^KG-Q^Hvj|p+vK{B1?nw|S=ixs zixJw#_1Qdq`}HfYwB)eTcGK|@R8hg~%NC3wK-+N;)wZthiDV@+yrP2H}ycUqF?QLbuj^mprI^l{zy z+v(I|V^L4Sql~LFA#ih^rNaCvNN8cy=Wjf+Wb+G;PiroJuki(8GHI|n(Su>iNH_gP z>QesBuHWj;<@a9s>W^CLjVY>O?;m0`72*p%ln%6FR->S^O)3kaU6 z+9uh(M64Bpk~&n$^Y+;2%9yfmGIwc0zl8XvvAzkO$Ju=jgT>HCd!9ZfYNAH+dTURpROM0p`_B#51? ztfYgLIW9BRzRw*r)N=Wp>=D@Y%IJR#^n*9sDeK`SoVFm0Ui%+kPO61$+Vir#jn&ZW zt3|%AT8%eUE9rlHR>GB4hBBZ|Y04Qk$GA)HWLk?* zQ`B4T(CiHH)4C0%$Qe|9jBp1(F{mNbA*y+*AjADO1QGB1vW2frr&sBWhKZ-`7dIr_ zA8y{t26l_ISN&nG+KTIMt+vz9%pURhqC};Y&(XZ`yqthR$Dg-bdPv(L59qm-Q4otv zEo?4|KW8sxB(3fp%e^To#B*7Qclasz*;yCLU#+B@A z8K%Z^Pcyv-Kz+`BOQ!rf(u~rbQcajSTkd!I1!H>V=5CdhayA|iq$x4K030(Vnk5&R zV$wwztE{M(+i2Vd4$OBQ*&OqnpUaN9#-$@0D~Qfk>YcAJwnrNP6P+b36^@7AnIUS0 zU9BT+bwY4J3U~l<`r{)VMvsdaBa(7wST{Lc?6P%BL5)&|;?oNhbDu zkn>0hBWmQa<0Ns9;uaLTOnSX=iZft$KbTb&dfW7RH_4LL;12gpf23ZtM=N<2X^0EWHU$X15)vZ@k+FtBx{SR>};ppq`g7s#m$ZVnXUl#oyi3e&X+Ihh-xd9|#0oAU=hieC1z?+0f4O{Tk1db-W6Yc#bC z`gRMwaT1%PB558X&GjA0?gYU4M$k840o4?bI)zK-V6(da0MD-LX#`EsXrj}ne=}Mw zdvqIrWYKqPxOeNUki`%%(X??xNgm-XDj{5L18^qrL2YmJholEq6>fuXm;T(7)NK-}a704_)cj&gcSDup!8 zmBRM?%5AJ<@wJXN{p_RdeyO?LZ=&EM{A`sIyoyS?Io#Pm%Zv=}$OHPH;p;tHR{3Ny zm2FK;5R6=+o~BycYVD?z?k1%WLi$dUrkav*AfpsA*O-x^C4mf$92qAd9lU49Ry-{% z^*Vu~gmXE>SOI;zeN|@@(^EmEjY_CtfY|oGe@?23`-|Qi=XCGXb~|)+6xwyBd#g^y1{j+ver#Yb+X*i zcC3npQbi*V8q^#($W!z0<1fRbp=vc+j+GeuIdKjj>@LW+p*waf*dGnJzAbl7hK{(A zP}Yk(tANIRf9Kvh7$mFJ_h~1VN`H3f%Gi$}Mvf5VwoeK$2*Eid{PpB|^T=G+Z`F24 z0DQd7*+s9~Y1qAE-ag6b8M|$K)6-n6ce==~+A5;<*4;ySNTUx+EgTR1#EZY*QWikv zl|GUP>$3b8;k{2=g0^ZV0>%M*kPX1Sy-Dagu2u1KRivbCH6*Vsz0aZl00XMzQ(D{Z z7Q6jz4bq-kO8RM<3Yux+FwFy_6=Ze5!vY8+^6R5HkBRPzQD+UuWyan?0E7;U(i($b z>g_S1^rgOguBFxY>P6zw=nio$ovlEBBwEsn|C%@Ip$)tAX5Ej`NRBK!AAAzY8DN{J_P zBOm!jdgYZhHFbna+;b91J-S(R3OzKzD0H|DwTJolN?y-ss|`1ECW_k>l{$Yw+G;9j z)_FwpM)Iknr-|Q@oz)W%JmMpacDTc5)8DPC+M0%= zWJw&tKY0v84x1Np2$$gTf${esXRPIALt=%^7&cR=*k30p*;Utcd!MGXMz5axuDh>g z?R}2dW}X@yLwV3o+&DejnG~!sQSJ*I&apXJ2qf%aqz(pJggUBY&PhEjpOV+dBs5J1 zLIZtH0b4%H_vf}ZjW4XJJCEM!?s}V9QypE|{X?pB#m`L*S!A-rl3bRW+3idznxEbi z7&mYBjIXy~F1C>A@2Z|=LetL66JzRkAFs(q)pf|JC8m7RfXNN6K^W<8?ekDyz10s> zc&myj6@WuiPSF--3dEH;1L|B5ew>^H_`xwM-b8}iE6AP9&_TxGFjlP{sxDPF>b*B^ zuD#X4a*gDsw^Etv2o9%dQc2oZa$`LBBb==?wNXI!nVcJauB;$}T8P{rZSB33a`eyI z{e9`r)&Bsgj?i~vp5dkF`>ETxJA>Qls^e%V^-VP;!E0&Sl(+uTqlTh%kpVkQGASGm zy6d$%ZErxPtAGw>`CVcSh{4ajmn70O`mGC!s9iK1p`x#}$iSr~QI2YN_Ks9Ynfhcxp@WVH&zx=RH>pt?XgpZXf4b>9eS2yp6w(WW zx67eZH&p2Rwyy1Fy6p$2`YLI=k*Ks~!ly~;>wUS)UMgtOYd;50kbn|t#B7jQTCw~8s66ZIj6MplW+7ey>et6{lPI;hpO-A6{%-2|;I1QOp- z-}lv6aDNg-#99n`moV`MmHfK`G5CzBDc=uIx{uVI^RlvH8hX1Xv!%9ctHr`k!(3ZS zK+;x7WhaT67K}uIdyBseD!GUt)|x^UNscjl9HyDrr`eQf}Wa{ zHf_jXEUmX_42{7ZQbSQCRHkVSoK4BK$F2tcpNi^JXAov)VRRolqL_W7$cg3nc_ZnP^4Zr-UOS!WE1IF^_eP+QysoLfO& z`pSn0UCh>Gy4KHQ*>Y(#-9t%vI=Qptzbg*^0KVR;m%F)cqq^!rc9NbKpu192+}@we zd!>wfh>QR^UVg75CnqPV^M5i@NLlbfaRp0HLS6E&>_>C#Yg1oWCWpGo4Wm@kek8pm zJuN`uVua%~?mf`l@R9&VSoB(cp#3LQj;0ZZ8#rxnadX_LJVT>Jt>{ufN1cP2r?CR| z`L3KUml`W=zN+t4bD*NNQc$(hqTxKs)Pk81%F_emX24r_jC1kVY4I8(@d+He-_d!Y z>~kbBxOsuG_gvN=+ArF_P=BeXRZ8IMP!wfA@J|+ zNgftbpfW^8(ySk<4ONv@)a0^1BTd0LAZ$U6m+_4DX!^V%ueH{ z_gyx(R+_3_S~&S_v%34)I(64-dt_o81-^!Y%oGV{T6LqR1e^@E2Ij*q2RPgh9X}yt zZ2m()YDG7VD~qb0T>gUOqE+@yS$?McOahMCZxDuxON?_pM$yS(OA<7ja0$x+@qm2v zC4#Nc7ZJ+eUdmN9eFRf@L(KAa7T?_ALk&x%{{XX=-r#q3g(%Ze>nlAjoRd+~BO8R; zcFiqJv~=puJ;>6gdYYP+QZiK`ED2GHkmk3Pr*#z~C-&O_ zWeE&aX!V+1IhsatgPY&?WlIkfXj=G^j)~;HGhz#DH?|K@RBX{2*0SMjh3l98HXYQJ zM-39r(O|6WgZ?Gh*ldBEXBa(E%=0L5JETh!X`~Gc>+Ii%r?y zBk3$QfHR*s=c*dkmb?zC$|naz4@I!2zeKU6bP8#ztrV|zg~F>cPfn6c8(`oP85Pdr zNbqsw9TZHeu7Z|BX1VQYBcLP#eo46`@Q;c=r$0=qRrFH}Y7WEpY|ATDT{Q-ek5k=h zWMl8u&s=@^oSY06E(!Z!<2`oTtu2sNyH2HdGa76UaIlrSk(!w5GXDTpRP|@knkJd# z)E9eg6*!2?Ssh~{iH0y&1dk((V~}yb#5mvWv^H@&VEO453>rtQwBwawfeIVbjdY0>7arGe;gREQjIl3HBhnFs;k zZ*71-#mMVW-8J>lJU&ivlpcudV$H z+DinwX5pgfZ`2*m(0Za2Xz#TvM3k#>pan^eN?MT7%3_s6!z2U-!74TyjSN&A2}IWq z=ALeDwj}-^KB|(JR%WfnwT`EM@`ooO?kq04DcAa@pj#$KKFYORyM*6NVM#1Tc_SEO zwBUUw%cmkk zTXwiyqsZABRh(m7^QNdZnt$1%hsoHe5s{{WSru5*lp4!@7=r%%=w zZmgZP?Cyf?#`x!`u*XgU#>kBIbuo!9l}jM{)uxkZX5Wm)3l0V@*=cAwKasU_rsG;*1x(`TkIIlt4ol)kzD z0AsJLPe7Vx*W4cH+jK^`?S0mGsYh|UO{iwn`hL+Y>KYjCQB6-zRZ1i$YDpws(>Ky2 z+(79RdgTRs%OE5koWj@k$x`*c2-b8s%|yJfh;HWRm)vw+F#iDWcJFZa2h$~oMN!*l z(_=zwn~fD^=qglG-&$p*sWZp5RHFePjEM__oPq{G=ln^eIl9B^1MwxXZLN>RcCH52 z;+KXYrffEJH*Nm_-F)A;Jw8jK8ND%BuA0gnR6C_{a~!WM_G#?UMeMwY6DcQ?jAxUP z_dYt$x{0Obt(1K~%GpQ66Vt{U_G9(JSHsx7cc;G@a?@AKW~`<(vIr@gbtTe5%oxY* zu`%u-5xH1r2aKMQ{T`$@o+HdXFjRN(Jrz^LRgsn({F6shNmZq+`ilFhXsT@YdKjEN zHBCR@n9A8dI2?_mB$S9zS!!VcCJaI= zF5!?s%e8uKW1Pv4D?rDR`Sm{O{{Z`*f@VBP5wI7ttz&M3)Nj+>1KOQHEWO~P)Af}v zOQm~*ey99Y5>Al7YAX>x4D1dGaDfmvBn)x4B-qlxCWzm0f5B#9t#vM|$}P(#dTw^N zTlC#u`}#@k4}Yy%8Y#8i=SI|MYl2+ox^~*Gp5Jh|q%f3gbmmy)K^&XWS(Yzz3-pyN z-AmG|o+Gdf7q}tKzR9j9j7>8pd~O6Ba+?$0_)gxll-S-KC2PIk=d@d)6jXHYM7GU8 zZjDn39C0RIMgs)2l1O;ugU3|*oQ`C?jd3IBGyCeUH1NlK0qLN1FZBFGcrSWZmp|ghGqwb+;tsNpSZMI z8&T=GtNWE>v)}3L>-*~49MA1)4LMSuO4VDW!NF{Z*kcR`$Q&N5Oy$kIxg>Yn_t`*> zo!%ov7y#cO5Pki76(6jf#nZ7{t8N!dy`#0=y0FNyS6=Q8ux?f$s7#O^LN<)?;Bb8P z5yD9rV`;(k{FTfOhBg|4-_U#d1m#%0LV9km(=y*}UD#Xhn~7a!)HD|qhL$rPcl}D+ zLncWfykO_gQN=r18=|wmV#g}RIBIGm6)+YS?}KskDTu#!OSPTLwB73TA9AeS)zei} zH8!n7VXB-@ai^lGjp*wko{ml?f>`91H)z2CN;eM&tj%;)G&PabMo4%#xUn9}Mlsx|c78smyosSA}9ImQ;EqG`yuogVR>y>eb z3&hHEsZo<=?$Xu1Fp^&X{BPem2{NMj6j{qOl3i+5Sx2hnP@ntHm4t>Morq;Jdt_*&UW zPT+R(n(5ds;MYY3MO8(f_opjnq>4iC_$e-N!%{-2K2~&X>~Ox><0p*O4DN$lg{&X~ zACunLTJ2e~OQXoZE;*wo+WA-K+<&vU4*qN4URRc5D27T;Y_Ls0O|OC}mNH2(lkyBueR$!wF<8i7vx8Jrm> zUoHNgt64>^>U8aNG;s5g4;-{Nr+8Q6{MBG02jvMa2T9! zYC2k)YG{l!bnO<$GsVyD>H4h^uaG`@4=L#1DEj&-b)Y|DU!_~sjw`k2yWRf)g6(fV zhl^K^<-N-3Scsuyh(l8xuozA@lyoEGXvbQrO)>S+5@mrtSUS)KoIG^ zYWp{*-DRpN`(XyA9mUX^&v%~N4z6=u zoRMd9MxflHtI_KP)lAcP4?(~so8-n7#LOkI|=np^QDg#eY>W~kg zH|dNK@?BGdY6VpRrg8H$oOTCg(fm{tcdK1ek7j5tR5H-lQ!{T`h^CF>l^7p_jz^!L z%dD)e4+oU)EVQD{myyb~Y#+0O&_kMsQ1>TO{voBfYAt(PE!O`4EWS{?mI^R7 zfDmlL3<2Y;omRg1gQ=&P*KPoA03Ri}(|B4b<81NMHNfWX^Aqco&v#??bNU+8t2OT1 z+wDu*{c}kOT`{jaQG2Ml*GW)+vW0`( zZhPBLQnWhryBb(J3KplMn0_9r;YOf5lCz42ju}ymvO&GJqLzzP(kZpN5JM#;t`{Se z_BK0T)9@;TM6c8+E2?;ZR3Y-fIhf!D-plm3+zV`P^9omY$Gp}~?_MPCo`CJwaWubp z^|pyVx z`1DPprVi%MPUM`7_f*~7-%_3GuvbT?yRW45R5mJGlRQvdgO--i~$8%Zfw5Xt(f~KCXI*F>k z4(4elcNtvFn~vo?`-2(C1DO4;qN=WHnzPL3xZc}mVeGn{EDY0QiIm$%Vmh2>DthRB zHQU>TESC*s9Yljq)|*dP z7h2c?&hj*0RH2S?7;+S2A94W2X_8KEcDCRXi+26>R?))gsRLZ&kP@@G4XwMs+0OFW zG*@x;{{UzswP@OnLvq&LyuQb0y1a0#swiWT0cV1toBP z4%z)N-}GF6;=DApdUZ1Trr%SP!TNpHoz&L%PTf)J`io|q)0XQU1KR9bCr`yk zOD!!03~nX4-6|xSrMIML#tLH=ecvoR^^J04PfF&*PWD`eik>+n9wTqL`K@<#iMs0B zm18oNnx)R=%3(tl1MWxCoE~yH9AmCAte$CsC3P(!jr%AT*+kCaTW6JJqo*^pw+4=u zpE3>c$vX&0BptwHmfQ!&$ieDA56AYMUN}3D54F_IT2Tc9-`HJiePT~<)6(l*8EKXn z1*fzcQ%u|Gp>;A;yj9GSro+H(tL~Cd$T`UeuUADp6tq8LE&z_0{rayc)v~ItrL`au zd5LizrB)7z(VBw&t?6kjvsO~x>Mju_4M=vSt)zC4K??~^96P&vN%atSWR<}^XRAju zNLmUq@(upz7gL*9X#V8YcDA!i=|1G^Z4pbOwLQ)b?C6TUC~rf!Oy2BQDl6UzP^LG+7vx#JrP-y4=l1|_4w@;UTtJ54h$Z9xdAK_E-#2R^k7Y@GQ z^}kDxp;V}E&q;E4pjgkhJ5p3qN?JC8M0VrcP)da0k~5x2&&@?lJntZtn}S|fdn<+g zpOJR!UQ%lP7pv>1r8g^irnTKE?zR*S zhN_A1INbhT%EiBCzk7W~=qi6#U5>oz?LFNS+D`K|!TWc6r>(V9>I-eoks4Wa=A;5j zMXHr4Y3pLQRiYVTn|jC@Sas^|7I$ z6#ZRVxxOoj>*}3~F$90iAo`4tauaPwX1+>w{;=*X;Z`LJsj4peceSuz>SpczI$bWBmhY#eu-k8uR}&0vNFXQIQ$NCqb%WN`91dd<_w(HBk95ex2#d=>5JhVj% z9v(@yLFRAfev76bOdqrBw;hmz$FDoh4U@VZ-nYWFbWqgOEnbAs6E@dlK}zekuCZ7G zYibnjZ2Kt~P_}>K)AYbm-sj`7SN0@eNIV>2%*K2ledddv*uveKu0RxLxbF z*kGC7sueqaz4HK7N0xK(h(+{^wynv11y?6q&^&#AJjzUO+z?zeC& zFIo@Nu8%s`QbPX#gSp@CRc6oI?I6-*ESEdHgWFc*m8Xa_jqtn!)?!Ugd8YF?cpXmv z08j3=+J1)}BfNLV%;C_R51;l5raQY&`$s!v-Q5|WTKS_d+S9ssNop+?Eej*o+r=Ur zwc<+2VU9UyRYacjsNUobp(KfmATPd;OMaeb2gosQzkxgS_CRV?uGGaW5sSM!c|hxu zIt}|{2MWbBFQ|U=SbKkH?H6;kRV9m8)!HYrS9c3Y7^OS$@KTvuTuzG{K9me$!X4JjXwP{MLh1*8jG?#KTfUK)D(+X))vHt)OPKeUgeG!7a&+1 zT;9sUuEOEkD=xgBMAYeBQD1DDvi)Q31#Rxn-17EuG&E7s>K#7OQPk2>#a%?c-O_?c zo{gTVCPJXQdQyXjbozR5);G*DFOoejyyxOYC1Yfg{G78pWo3(m@Zj>}qem0hplUG>kZS`wUSt)^Dj_WL&F}!RsH&+d0G}Mlo zScAa1B%2$3e@)aP*xgX(8O>Hy!rtx@c@Zm;FNeo2t3%iaQ;$(Wmu&V_fB-xy>G* zq}0M4hC0i|TtO$e<=~}ti6e@E9-J6rea2Ved{4%@rEaD64js6H-+7i6JwYdZmr~OB zUrnZ_ZBD5F05Pz;fzM-MoTt5iW?yi%O|Cd@y}{6DTrITPzu>e~G*t9-X(5$p`UFRQkfKxphEKSlViyFLhhq+JgRX=`SO%eZETWr%ll5>3ms918!i^Z|-@GiB8ECLapb50`&eBG6a6ONI-c~-X;qJ{(YBYU{j@jC6 zb5F0mS9bUD6s=hdRrQsWwKod(f+k?T+RRkM=#7n`vT&!bOi$rR&SspCrH@~A!l@Ye zpJCSfqkpsI?(eRBX1pD-tL@ZOUZJ&JDVjROseThn$s`pr6?HAXIAjZtbbW~O0OJeD z>(1JfWHG;)cG?#Z0KOD;@0}-UbbqSNcXY4N^WW)vv*`{V)oY8MtnMt9TXm~YDoGVR zO%*s?m?VlSa1(e4S+?T@A3$(DPuuujmR4K_n+xw@{(7!A#Ie4cSe7>s97!YC?R8^b zjeBoJ*xyIppQNX^*=TMF+G{*uSwmE%Uf3R_%JUTsD+j7^?rr2ozXTD@xZ_ZRQq_!Y z%OfNV_3QaAg~3{6^pt`*e)Gt2w@ZvDo8PYF*Z%OSp0S$Vk+UY&auQc9f=ZA1vNoy1 z9Pp=(u(fVqQk3TB>OnPLR~tBwC9tbaP7ekozvA zf}1Kww~URg$Bw!jzv~-q`~Bs4j<5q#@N^{`rg437G&Zv$mp-?h`#IrP!#%edOImaxHhmru__ZGDppN50WiALzhyU79L-I>Z$(#WxuN% zM{&IgcBY2Qrm63p=dtT6u8g=@G>)1Q-?dz{)iKr5+-s5{lQYs(DoIf(`prIf5(wz^ z{TjWR<6~%Znm{1l{{Goh_*Yod9mAe2+S1c!4T(L;>Q7RVJ-YplUZVBQxnb`nx6@s` zOUmu7v_oiZTYRHd44@@LI>KcDkF0JU51zJln$+daik2H2fWCsQl#LB-wUMEXU}JgeC{#wvZqe@`gHYu>1JBWp67OhROx#K zApBMU)0-?He3(Ek8*Y#R5{W`?}!cA&RZ)7IQ=dXAQz*YPy<&{a-P zzKi}jP{l9QGDEI0*COK4EL!Y>M%X&UdW(O`^bY~c1l%_RBg2_+;p=msm`c5Obo?bO zvBy)H=8%U)a3yV^IS2sAJcj2yA3tgs9sJHyver$D*-;m&%6PRWa;oo?b9=KxOqPie z54i+F95VU9!OD#MjO2`tu4)8u(1?M)} zN4Cvu7kzWBsl>kj0OIa+f=%=m=Ui=>_e$l|gi*onb#*No0Ci(-IY74gwYS>+g6C8+ zJ-YCMi07P=NVS6MpGRw_rZhJy*D$qY5Y zVb@0(;prgo&C9ZXRZ7YTIFCxKRqJZ({0w&)jD@OMKbi-c|7+h-ecU!&6MD9M@jZYa}^SQl3nFQqW^B$@- z+182f6txZ=7|J;acg7A*bM&Ziev&crIOnX~u4x37r2*WbRY&a~^%ttOk8u~V+J3U4 zi$rPmrMTW`)?(DxO7Crs`AHl0#*WB{co}1oNIiPf;2*;}KjBQ`okg70G9Tq0&FF31 zuQYsO_=8&gQT#bd{#teqI2}#4KG#v-wmrH?o|3k)9LXeV!kk9o_5v9IK1N&M5Kaf! z_3fPthn+}7wO@Gj{Fj;M)lB8luw%NNx+=wAOAoU{9ZgrYZe>M+ou+t;fF4E)Fra-S zCm0LxI^WY*QPMT7s*$a@u(<;L?6b4d)KpC8z{2kK&6ToxQP&jI{fxNii*$q2q1ZS@q{{Ylq6KNH-(b8!ZA^gBPK*s{x zv|{!wcbCX(0ASOmU-oBnM{tnL)@qd^T`L zBo8OTdaJ>ydz-OdkECaY)`xD9*XymKzP{a4RR_NI)x|uME@7utbv_$803xvq=jzYE z>*+uJ9&k($d_I?7uZWpyB_+Jyca^vV4_@oZpY;Q;x%^88l@q+NGUvZDx_uEEJ8x}! zyQ=K^UHfI){Y$MccNpz7Rd-DbXS!ULqIN_T4J4H9BVhe(WM&{CZZbObcM?(XriG@| zYnq%9I7SPPGa5;@!)%gQ9@1M~t=Gk-(>dJEHp7SjclHX^-_SRpF3#JumvQd>n(fuc zyt+!~NqkP~*V<#ZYDy`f#DXdaX-pL8fq;yAvAGCOCp~=n;|?gFj4R}-o*3hVTs4eq zSOaf>Yz5BQE7LkJ55=Rx%6J9cxpR%(exwum1lD?n_4j$KrmV5(flEabxro(}2eg4n z8%BSK;DNU-f^&@Ib2`07C}r@x5OLQ(lHKY0GalY~GJSg|@Ah*|e$+jk)g8msb@f+D zon^0Tl8&aLVI*w@vNeI@jgJ`jU4|Ep(J|{OCClCp_v)-_8pgS-hzt+c(MVqA)woKO z&$iM=^-A#qA}oqkSD!e*;~q)p9cHyIV;h`R&X))-zf5kbbH3fX(>mi#cOOve3vF%F zM`){sp1$c7uG05f+F=yaR1&o5^-GcT6+?{6{w}EW*Bl7k0l6FZ*GdmIL1eblsA(aMZK+um zQnZ8Kr>%J2GBP^qng<5fK{wm#rygOJjNs&Z=h1SGE#qn}Mi$c0#6V-P;sCiDTed$8 zAgq1m(*5|grm?ZXNo~AKAs78MNgz`}7eD$%hu#4Gr9U`JAM3KDZ%3*gGQhIsy0Qy$TtSxq%p03iB6?gp) zb)uyWsq~Dg1B%9qp+G4FksXuMKJ=4lJ3}fku;H`BG}RH)xCT?4JF|z=bxXuQ!W$2a z=Z8)SV$w;H~K zSYK|n+M7}L0Nf~VHai}ci7Nzl%iQ!Bh39I7{_awWAyf$OxcW8#c$9$54f6wJ7kq05w9xA@U3ggO z#cS8k__(N|+ej+J&h=5p5Kyr(XM?5yctLrVw>QF^2Gx7|B$po;FuSnU_tdy##v zr|nPn#+G)Lq4fPkawoKj9$ZyP3OzcyWE4g@1xY&Y7UCAoN_5E_=S<5MoLiI~kG1~* zCChl9f*8v8>h#0P;w-_@$M^M6qxM(+%pUf3=hcT{{Y-ZyXmmb~(0Y;e&A&-i)&4H; zbZM>CwDhX6;Fz6Wswo{G4TZ-Hy=x`n106^3r#CMCtBt>SPSJ2ZeIx@^sB=JNoyraG z=xw*C`7X^;!ECLKDk$mVmQfgB)i{}EJZ)kQMtuJOmrOn;Jl;Lkfvu>7a!T(nr(|~D zr(md^Cb;`G5>vQv)hUWv6O*)}e-7c3&nKVjCX$t|H=8#41rD!Mm5eN>Bwx1WYITOM z(i(1(rW%V|YF~OM{8cSYNBlKb2nAVAH;){6&rViU(#GCbx0~`Q%_bd6XSP8vhuXsA zD);ZNsXKP3NVE+Vg4IDa(sgQD6pgE4sz_cpkkv;LwBE+WRAQq6WIV1xGiVoy z?Sxs5xC1)_y46+34xOXVER_ewb4a;8`h^*_A7FKg=?!h%q1oBAZ*K2(vWgq6y5Az$ zsZ5C;_@VchR;?>cU)p(M5d$eyk(E^Srs9nrpiw==wg7p(76XR0S}J`|Y3-0YL$$1L z^9h#he__t7(0bPX=2|)$Jxcbw8L5Qkx@uGnQ!H){HlawO4hGi4jHoBBRrW_8BRZ~& zJ#1!9Nd{GT_orWLJqg@vri#2WCXmY0VuYX#W6uGXbWgX_&(U z$%2fqa~XZZ0Y>4H0qB|s6v$?D_2jsLgVdi}cUfI$N``tiQ9wCcf1vbLRqFfKHm=r} zJEaw_>nhuVur&1N-IA+uKOX6#~a8pd;9)>G*a~xQ(xw*hB|1dA>AYZL>2b#+Jp}yZo%~*w?2BNXf0sA z>T8}HO_QzKOWaXweKBu|Otm$anpg}H1duF4fwqGF*&rd<9T2NF24m zI_-Tl@20E=bAy9!>L(xRl-1gCtA(u(7SHL9>YRUM{{U?D9WSn~%4#RMEwYzL>YBS< zbOqWvi<;C>RIIe9fNgMD72lizABO9%YdWBxMs+Jj`S#gyz8HpBxPl^fxd-TQyD-%@ z`a6n>d3H=|9gFQCt9?1o2aJGu2b>R+*C5nv=id9S^*|3G0}3s7Z%C$=vs^1S}9Yjo@%1wzKZT^2HaaCCzOm2Kf0~hIjzfYoJy>)AOwRdzXDPX9Ucz7}_k^_FS+TdAXUrf>jTdl8%a z?5RJsI{Lr1JX;_)fn6F?+_1@>HD zO0RaEszay)mN+}{%Kb(Ad)qsIt{+1*HaoR4>g_e${@IFJRjZ^F=Hp9UMy4f^c}U#H zBxD~8BzYLe9G%ovQAj4Hb)Ls!*%t?I(RylKXHTqv)7A^cGjp~>hW_cb{gD3vvzu1> zGwd2^4&+%Sw`&Hz-0JQ&+L~h3JF035safM~tiOkboCY7na(K=;uK?HA)!phwrxBmcIy(E>10blQEJY4++HM1P_`%?99s&JF zR2q|}lCiXg2CyUjVu+erK-h=Ad`%(y)K>8 z4Sv)6?%E-%t96A9rqeEws*;kXp(<+95Va6{g&XN&r(np)ARchQbxY%XY>n2oZaaFb zx~ke%wXHHTX`N=Y)W=16wbjzxEsGN}&jZjZdrgdCFww6W9zFrd zu;F?()>L_!S z(pOq7b!JGeuTNO@07*+JbrV3u4XcuOe-Zxx7YC1=^_HxVO%ICWa83%k6(zGZ(c`_4 zx2*?nw-6+j0P-o0FKL8gl@yGyVt$j(3CB4+W5pEFuw0dWM^^cTz&P%q$Ep2SqUfv^ z&eNOS*59hNgcDpE^{3&ayI<@SR68cBxJ7TCL`mtQ+aJ3Yt1?Tbmq9`esy#2t{ zdKX%1YAqYCyT)lNbz13o?yxHpO`$1jfOV#_E~L9hi1`eVx_l{ zqX)PI=NI4Uf1-lbv(FD@y+kG^ifFrWJ!;DU1^voOifW;?4+8~qKIG@d7pI)oyHun- zIjnt+?z2^V&C_a&a6@nOAgPtvPV4tGxO%rm_YY3ku6oN<9Z{s(=|N|SrFuGR%{&r4 z#)=Q(c7$(3xH79w8Guqq-Ee-9AMr;?$R7(sn`7&L-PUJ~IEq=c*7HA>SB5xSZLfuH z-N5h8xvZDDw)>B2d-JUBT3R~2Crx#?Q+^Y-(A}!ylA6ynn`12)sFC6ZW9}>r>>br| z-DzZ^)Aab<=F@=Il5cDE?pHX5yIIwxZR%aka05rbZ_Oy~dODA`UBB%|W|0fW+not* z)0Y#wBBHJ;Sf1lEk)7=&T$N7Jc_oR#&QA^2OJvk#k${Gm5&`LRf5CchL5a+wZ$9k+ zeFd()v1+{q+B-$-Tx$yXteR5WL+)HF=_w?rs#aztVu?@}GDu2*Go8+O@zpI&E2n2H zLnT`ogc5kJ*d-UE{{Y%K=-ay8TvY2&QgXu#Vax{P z?YBjs)4m-^3tal@k|Zs#4FT2$-ANfAf`GoRJ#5YD7T0XBcK-lHTr{;9s9Tn)uei@0 zBvqmX+XBTJ?#khn+%`cGsKyEFJF99=)V%CyXvPL_{{RbDqv&vG@rY^UG6HvawTEuE z-{_gmIcU^%oxHN%WqJ?ZP-+_4LsLc?xoD+^n{0AS2oD&VIVD)zl`hy}xb;%lC3{CT zvGuaiuok+Ddp4}roAL935pq#o|=~+ZvZeRbpWU*lff!T zg)W;VOopYGym`l8OMi8P;+nG!L{Smk&-p=3psnYi04xRN4ry7G+ z)lt}p)AXYf4-b>WP3FHp6Tu)6?P-1fr@|quiO_q0pwRoY`-=w^bXSbYp!Lc8T?SHn_tx-!B z_smicYzMRoVQTGf+57KnFFIRBL8)}Fa`kWi zo@xr%5oEdP+s#55EY8t31eEncIpQQbvPlx~;lS%Ps%aFSGv#o}7X!H)i}$vEt82ns zLRi*m(y+PLus5}V^y~SmNbU#iDDHKixH`AD+LE_NXrpPbS}R?M_Kvq#R_ZiK=BKZU zTCc^UQ@AmOkK0K;rEtZ5mg=S4F-bO`_JGpoyZ-=S0KdxXMOVbrwy?t1wV}WIxy1MD zZ^1=A>1e%S-A`M7khT2!CQU0~)b*DQ5p>kjK}md}yU|An?|Ern-Cq~IO70eQT!{%+ zGDA6Sz*+En^xZ#3s?$Wbd2k?H+!AeYMn5l5v3yfYsa0z|NMVkV~XQ@jHoyCdX~6}A8XA4uclr(%u|9nN!ek#WEF zS2V1sl9`Tk{M(z2`{X9`Uv_t~SLx)c)&0M)>iOzgMXRaQcDj1_-X{85J*6kQ)`lGspb{{U%^mPp&RhB?1AT|LM2z3DopT~R}$J3FFut4#!#3w2JM zq&Awk>d+IkGGSCX1~LNReJ7KQWv13DPORe_oap(iLys`E$8_eW!a8)6Zl<0FG=Y1x z2AlLZ34*EDov-yJ+goR+&gE(CEvGKJJ5NQSdp+IlJ!_=Xx7{gKO-3T4pwu6S#8oiO zvN);)>cRI(G=AKQPg^SQwbDJ6EgZ~tNCMdOw*KcMy2xp;=^BJmY4Q-+Kq0Qb^;>6W z2NtlfJ+HLo?ayMho!3WbI&ED^OG&6L-L|pEs_in=HfioL(X17*Lo7rgD)5F90#uWc zka&es*Uu?+Gq=CdZD^{W1shFUtmc3S9)KrSheCGqLYZH@C;SsHy8SMZ;aG zyIFL$Q~USI>uAyNMNXJXptZi`9ybt3Emp|60|H+o997jq_tXgD&cfe7klUM!TenZ{rMF-xyOC|G)pri$=^GZ8 zsiMmQ^D`{wY`&bu4)=v zgq2a4%S|~7O748H3^H@bZJ#6@ug{*jUaaEhhXvDg##$Q$#&;g&rZgs&o4H!Xtu1yP zFLS24UTbHQ+lDH5gpvqXox9|cIAUHfT2x=0^sW?^I5p^{koUK^*&~S_*tA(?cs!#A zt%1U&jV0+b)_3h6*LR-bX$>W)?3y!J)ysFa>YZzLtkYU%supl5#B$)&R7DB|L};TS z%J9Ho^{>{o*8Q?si;JCma*W&Ous@3C+FuS!QxEdMjxG6}jrxJP`3n_fy|ev-zPhwj zlvkS%s~*Z*uPTXEPo?!8vsBA!H3_w&0_1{6r;su!T9~5Ttf992byrEmnw(WFa~j|` zv3Mi$-At?DT6p1ejKSjD1`vP#Y$_k&{EXhsdYW0 zT3Tu7Y3M1hv{gY;3xy3zQk9OT1Um>Y%Bdol#SaryH&@loRZMrlwfD#G^%q)g5%OsI zTWRRs$TzkvZuUR&4hpUvQ9%Vg4YuV1!3$ltUE`~UHBWhE`qVDmfyg-|eeu8@RY=jy zF_fWVZ+-He&dT=+uR&MaYiOr1G*d6)eYr$Q9C$y(bDg=rGyH) z2_dCeib=LeTL&^k#Y1=g1Ji0Wt{H}&pcb6E$3J^NFJ;MiuBt6liX^Ck;msBY*22k- zle+qUSJg#j*SfaBtZJsJL2keH-(0Slx?Z+`vAtalU`SG{BbI2=N5cak!6#Pd0!xX{ zs)-#rVg6XK?4*BfEgBC?(Dx3zQ0o16tz)Us^VzEVeSXu?(qAfQjMZ zM@ErkZIOaX;EthH&d4a`s9`q^CctN8sz~Ikt%eZL0dUVv)pL3?>|bp=DOav2G!^=) z{XNS}(WTP1Q%aO{(XB+UO%g*CXaOOgb4p#CXdr-aeEUbNORPyF-f-L77TtEb-3psV zV+;=a_P*UchxbzU-1AY~u+D_!jcg*U3h!E~zGD@$O8x*e} z%C-G}HP$%Gj&z<3p%c~~Xti z3QaLXH9FOz$jIBL5B=H&UCrn8BPWit+P<{*#sw)BCnWU$0FdE=XrZqqjdiOZK&SCaL{(^ z)mz`FVS#AtuJT+ZX=-JyMF-tt#narF24w(l1x9GKs!5@2pJkM>r#zM%rysHCx(5o$ zML#V*qfXfc>|gz09^S`3z17@y!uQ(l?9ba>V|}CiRkFcXJl30)JD}BlyQ#TAX{#wj zgfK8o9vMS|l71aW62=czTtBMl_3n-u=Mc;CxB@{Ay|10eVybxCLe_LfO+Jv`XMjsw zN0r03zd{xst@|&f`(=C3mu(p=w>m9Il~t{Cubw1&cM{W-_9O_Pq?^P1VSpfl4sZS= z@cjmfPf0Zm$dH`7I}g=L_zlH+mcJgOO{xGN5pDps_Xi%EDA%L=A)@SE_p$dPTKkPv zeA=F$x&ubpE>K_YmfD*&4Z^+d_G)6tX;{xE;fm6;M$?0gu8UFN*!jat zt;#L9Anxx{xR=G+C+YlIQOaC-&o`T4&CqsR4Qr+v`=~o?!staOH= zyJ}wBTV=S^MGak4)+D4`TT|7~RH<{eR6gjbH4R*-;#y|wt3d-KjI)}>qT_s(%bi$Y zmeGsa&2{l%(%tinDA8`!HoZ&gb4GS%p5?2kEZUuImk#3TyY0%Zve#E@q5k^C994A= zKOEB2EHrXfyfMtnY4*LxP)A%>;)c6DGe)1L%I3)6ImW<(e;bRf*9THZQC`tk6I=tX z+l%Zs`ux@S>H6D{j*7a5yjyAMqV`Ke5Rqd*IKr-13P1o3dgHVeE@2Wi{I*?+ zrW$84(8|k_x6x|Uj^ZmLzS|?%ezwr;#tD1dE5kHD01J?FY=F!a5 z-)DR-BHLJ|%e|U9&)uyBtu(%&sHN0;Q&8I8p1<&sFXCvNf?%wJDt6RUN$t%HtAesb zg>jSA4Q^>%<5NohXEwwTdi2}z?wq8ir4crQsvb~rW83uo7cJVZw@YeX@cL%-_1qm7 zt}lA0xBjWBYjwTrKuPW{qqbWuH3ow2@xtf+DntuWDO5n9Ha4?5_2>_W+)+NW!|}%V z11npT(+0-(&BooApSY_*r_!~Gh~Kex+gqqO?lW&xyZxNnlSI(peOFT2b?&pO)K_0q znx>A|qIE4alF-%AQmj7R!|?<%{wg#qvY^H|$T=9D$C1kYBuod~wbVWm5e-Gr^mp$H z!)PM>O=q}BX;N`9{`5!WuFx2cIl(K8{Xd^Rey%0aIQ3nokbz{DzWQsmcc0ZQmf>-V z?-q);Xi5!f-BhlniYq;3Ju|f(w%tKIczyM)Pdrr#C>v5IWF<*avC%lB={zDS>9a30 zfVShgKHU~GQ_v-?;(=K({!2q~{^xWa-P8H%AHHUdUdd{DYAER7*%TDGB9Ra*amN%Y zHloJ6LLN2%ydJU@lf=lGGv8-A<#p{JOAx@>t#W?_Pxn1ZaPIGMY#KQ=B@LkK9Y;rF zn)j*dnwr;ZdY2IgsFx*z;PD!6XDk&ypa)TO*rwKN+e1PwHn)v2@+Wu4pS z>zgWFKZmOIs=&xdHy0zY=zFcdfBjkLe$(44?{`Y;T^XRIc|~PRu|xP~3Ac1Z_?g%q zc7A>aal-ZfFR#|86m+8m*bcxXzZP0(pPdXt`~^!oN(JO0}L0NMgQMBA*L zy|Zg4ucw~=^>>>TbCQwML%7pSFx;Odg?t+T|&6?5H1gM?t2AC z#`^UgWg94|9svg}7{@}bU;hAmRVI+_ucbcn_cK{vDJ*vT=D3E(Z;|gQW~{DCak1m3 zR)$Z+J2d-5Y7ZoiGoG)tT}|3c1La6kh(AvhJE3 zQ9&D7D~Fo`;^h2?M5VC$k(e=?oHFR|D z2%0*IXB&zX4ard0U_r>wSzT&srb!J$iEG+!(`z4*QNt-*$I$@N4je8B?P5Jw3?1II z>76^Sd$*_b0xc$%rPud3G}XOkY3HVfDwb4<8-l2+h`We9AQ^5+^q&m6XXz0>pxx!I zC*I4+{6`c}YID=mVS(nuwT{W`{hZ#cD|;E;JC|;CmCi-c9l&j{86Db=*K>^j0CPBx zpQ+dTz27BMJymgzj4Nrsi9*}U7~1x`cPit6_3@=@A7rUFic&sDp;p!1uKxg0NgYJ< zSJM6}rJj=4Zc3DT+SWf-*kUXX1Z1%D^yeQO>r2xrb!UcBw#TmcT_aiIS}i}CYKa=w zgJGT3MqIV!P2*BuX1O~TsJJ}LUH7~U$7@HlHq+-A$Qe9*0cl-M=p!`8?>7pIPSn2K z<3IGAgYK2~tzfYriZ*z`mkBgdjnM$XMi^k@0kBWV1D>d1p<$V>D(TfP5fIb!Q+LsR zg^Ev6T0>sQYHIGaH1#xb*4EU^Gsz#eiXsg80RVA@Tw?VvbR_Yn1h6*FLlGjkNRI-r`T1Pk46D#sD=lDU|RYCbZa=9tl_NPp8 zPeZrScVh&ECle|e&+}_T2!?l`wTj`}imR$tfX{AC%!Avg zT8QMPETOWDq%wooXw`UGnvRtdsK_#b*Qh-S^ypU*;U9=q+6JLl7NQHFl$MYQ9Hpdy zS`Vh+;Hz=&=dMoHY0lDHBG#H_i&9H-x4~|pir|ktmkNnsM#NwNBxU!p0FXvb6yqnI z>XNb0nl{CEw+8(!zpC#%FI`I$*{IZ;Msh#)zCgFKi=Dgm<>^a8>CHuN)g8B%lJ9$? znjghjEpW+0BytB)8pzTY_j1`eP;xRp!#zmY{36FjInC|;*7Bo>^l2pzWBCVA8-x4x zO+RHdXQvCcuC?l2BW-F6{kHNT_ob+XqkvU7P3srcv)ocwA(xzj0Lt|HJXob@mj3|p z-@2;R9m7>xT(ZzK2}j7^{O$Ep+fZ4Op1wk{s4-M9hFM1C3J!2cJ{T`J&H{m)c#`J= zZ+tFeBmDMidV4nZpT^f%ZV}5BuT|S#%~?#cpTe@bGLT3r+MS8D^$J!Iy9tw@R5C1K3FcD;W(GjK^zW5OcumuFdf)Tau~Mwcti} zXdOKX{8kV69V?h40?z823zw*7w%WA>8go=uY5xH2N8xPuAH&owJTwsQF-=!IMcPRu zjyW3wCCOo&b&2C1HPv-W8D)v~dqE8V0dD7g$o}g?rfD>^^R_#H2^`0%&*T?Doz2x< zr|sWhJ7J-FZTJt|R$V1c_<1dkvcp$BL~*m!5;M8xE@Y9&KgM!Lp1fCEsm4RC{FM91$=!F>YIJVQYVtT$MWRHcE=Ris-2$HBr->nTJZtLkvjv4r!u0vo-rlky!^^-S^7KUBz;YgBL{?02n!49>?1f2}C3dmlLtus=@;bWEv_`g!R@VdK z9Ep0%U~+y3JPxw@gCUw%)J7}`C2MHiAdQWX+<*sdy%w9iAjcXkU@I70mH;Yo zx4`j_`kZx#)kUE^nOjXPS;ZthHfg;fth;yI%_*wj%_g_MRaxsQqnBlR!YTg%555UA zm69`;LOe7%C#tO~7|R~#v>WyH{{RY3qt3@iJX^H>3ze_h9qD7Z{+2s^rF$aQ`<3-; z`<<%0sjBt8JZn#8)!zM5QdwOl%BgWe%_Na8DDL3=h3_0atW#AnvA)fC0k&K-T+nq$ z<&v;QT^VzaFc{wd09$UMr>Cyv-upSI=rug{>iW9_(u-EFrD%%FTW^@6GVZ}&au!vV z9OEp5>OKvgzoW&i(YlS+=NW12@AI)uaK5Wm!}^f=1y1ScQ zZB2s5M5UsqkkEqaShGgJ4a(>JB)jWpQAp04;=M}a1+%M?yGLt~gyF0?{oLw+8i2z3m6qlX-vsXa~<^)a4)pHX!D8l5|&4rxD;^-&kO zU9_g{jS{^^pclC+sHL8s8oCCz-r!`5-BB#D6sM_DIK#$_2~&^a>e_}8ES%2VTiX5o z6g_8J6H_^i7Qr64_QKZdUr&1bvDz0$Ty<;Fjn^6!T-s9!a+oHUHM?3|N{{Sj!Hf0JpWhhbt+KfeJ=XTWUJ0twNeTXf%djCfEl1AM&FIQbh^T z-6MQQ1LY?qe)d)qqIJDIl=0NoRMUu%2MqFv5;L{Gi1@$*^yAN4x@ytQ%^|i{GQUcE zOz>O?a?p2A)CQQ-^sf~qbv*JcTb-bj+=W<^^xzOOa!(mNAJ3_CYRtce(_!6LQtekn5u90V#)*5ok(0Y6Y*$QrlR_`uV!6V11K zm40Z=971DZZS0;;O4dppCEML&uQfG2>h0ZY#X$bu!9z4BS7^IbFZi2!+oRo=rzojd zOa;X5q$q8MKDti~@bh$tW0FH@WXZoz{cgB_80+U&t&*Mxe<`CG-~Rw_(Mn$W>-|4L z**@iIt3S1V(^|7kEx_t+A8x3ZN5Ou$?V6BXDunM9yWEl}-cO}qSDjSGo3Yl9h~RZb zjXlOoY&)!%3f4tIuTxJezzlG?>q8O?h&%*p@oFZ7E34 z0@Y8xTBfM0m?|udE6kYll?%rma5yx5O2Vqv$=@H``Y!1w66p<^?{RQDa*OrF_OdpYap$ss*Fto!DG9AO2D-}${kRgmt&xBLsOq-eS*CUJ)>hl%z0*)uNYzwxF87)iWn#g} zCveDZhlbs^JmB84o$MZCWfh>uC9QB3(#I4X(DZYob*6)%crJahitTFd9+`?WTYash zxKu}6mwE`JP139$#^-=8;S0!A7KEd1WTbAf!m+Z0GSZtpw#m4?{)+(pNBBn?O4|HI zQU@XE(mH(XtEH+UsQ&hzrk<)ApdLEfdVuiFw;_=T%6*Rw#yK3Gx$A*wu@)h31DacK zaGk$S_A0GU-%ix&=qjP4d*-*KriQknPr|^`qpX0)SPn)N0mnYz92V-|LZ$m=rpjV% zf72?LUab2Lmo;69uqsRX@$^lv>h;HTyK7agH9n{8{p(9sU-TxM{@d5dqU;x|h%?)% zn%!0;SU(L=YD&dLEJ~ti%7ULjuH$;hcyC^4iXqNRNp~%eDZRzV>wl_mgJY@U-X4?f z5;y`J+jARp54uP<$FT~ae`R;4KJ#cU@Xy@tHrkt z&_IT=8VVbYD^)J#m)eBXB1pOV?1gVPZPGNGLA-xuw4?9i4*;0mv9{Q709 z)_=5LOXY4HrT zk`7Vc<8Re-TDU~~LN9+jXPEY}-}L$`Q`6SX6WNUyP1?TL+bJyiBez;|J0-T55$;#b zGk<+sP%p( za@4!iTYGJ$*(q8^0s}3*S@HUlo_Xh6kP^sU>=)9KdIc02oNjZfXHx}uqB;Hy>lAh*(cfX_TEvPmu? zMqRS7*u@(Qd`F*Q{m*5DFqq>K$Zd0sUiRH~H|g8Ax|`5Gjf=7OolU4F?0%QkwYDzN z-+y=;wf5C%f}x|JvuZ*>_G$z{7Am;^0Jy4E45m2?L^3*#mnAIn)QrQwwf9|nOVo7w znh2>Qcy#S(-?sMoD=g9-(bM;8dRZ2>DMd_b@T9ZmP=^>LPd|00KQmznMtK|;iCP|1tgUh7nT*4pnl_XcXd*7pjc?JWh;8{VC{3Y%rx%>~YaXi}C^$k5D; zq&C(YR2+pIa&ti@pe3A3e7LQ3KAAzM>CbZ_4h?Cw@-{n-isVDKf3nZi53L^B-@E?+ zqU-xjqqN*pR)1!6?{IZJPLsInidb2Tn{3NXBvB^l$bi(k1}Tw+VV;wxYZ^>6&83<` zW*q>>tm4Q|ym zP*7NF?(J1yOHh^ZDVbGSqGtZ?RoKLUfU(<=*8c$b6w~RlPHpFJly%75u3a^3RC=o* za5rOzHg+KX{S#~J{{Yn$Pk1}Qs4X^XsiU*m?sG*wQ6f2JkVr{Y#&(Z60G@mk=caTG zA)0L~SmEcke}1TOMzHGbMbXAZf&Kpgl(+qseeLcRmhYyk(po4_UYe)3b+!}{rdZgC+Vn~|lM^9|6TC7hUO?USsi3yQJsgssag@3!`updq{*BPy&l5hl0-?+ci zW!m)jLMQQOXzicg{{ST>b?>d4J%dEvb&jLHLqSKTEwf!_S!$zrKuA5n#zrG5c81*C z1t-bCG|}mGvd`ehYn{3+)2g&RGKuxBHfu%A$o=JV5mozUbxVHGiyx{DQKhT(ziRaL zJ(^>Ox|XOf9mWK2G{HIT?6*B*LH{Q#j1-}XbbJyhQX|1lH+f;>S!g3^$aY| zHps}u3!zYlYY-9Ce8YPjU3J|njOi<8WRzynyEz&C-9wL27Hh9} zb!M8?R{bBQXz8sK>q$pbbM63`Kxe;QheOuf;*M6F)KtY?8&p-J8BPcwqbA+BJDK_i zGKz`NzEU%CIZ4gE7KTPms#?9gfvo^o$i|y)4V~t2@9Xb%CZE*=wp}*%-BScM3*55A zg4b@Tin2PQ@&5n_k_HhoH?jw~HlY%4DmM^w(&*CEyP6kWhd0~sDC>B@K+_dS<$qz< z>5iN2*2*w<$Gv^}?jX`MdU|bb+g&lFs3TZrv}npIjU#=el3n!`H8t;7BvoGOfK{HI zWn2JX{9Ra4(ooVD$332Q$u|e40KxB-O{(gZx|DFb7d|$$UcrqmaO!!vjsF1s6fdP3 zp5u2Pyqd4EHvKQGChhg}L^iG0R*Hx}b7>pJG&08xCEB6tcEZq3?&cbbY`41@_Sl%o zTgY_zg)y#ZzfYFw95bmyCaoriR?;Gsrr?Y^*0CO*t@KxIqx~z@(rAm_o8Hy89@%#e z%GSMOr|%F7Ju7y3=^Q~{3*ba*=;uhPDQdzbsVzGdW(29YWKR^$Ef!_A%GK&}>GQ;N z$;i07dS2h(W9}C(9p}|4rMpw!eIP0pT~U0sRcOjeNMu~RkyVOHx{|w&)hz%6A4x5c zPBJaDT^efLS{J#$%V8v*n_w;l#G17}pQg`D<9T1?1LtCWFs|p*29%T0U!=VkuJtaC z)VJR7YpWHPNKjSVXdot{{-CS_A5fly0iP^nRzAf2Vr(v%eex~oHXsNYD+gDKB^d(<$=qfcm z8^c#sPL&ZTsP^1{avFK~jBFVoi2neHnm!?@Z7!W8Zr$5^Un=K=>Ex@`L5F7K`gHoH zzq)ssEA=(ns7Q~OVoQaRHo?FjcJK}ca(8v-%KDK}Q27SeUait8j5J}Vb&XwLY9{Ty zU8}ox%PoGBt%+;vKYdb)nkXGNEK)|K5G7V(RJI0Ae=ehQOK|9pet)8q3nBYS6#y1r zuHQSR+tL33X1zXM>bt4j&dPSXSl)E)k51jJvue#nr(mbCUa6{J-BBbAAdZ;R$s(*f za?<87%&IoOR@y+S6$R4eyr$y!x4!mLYUj}@jBTZJSogRLV)?nZ@7+WlVQ01q%bhK& zN-d9kr3bfeG1SPa8AC|KWCb6?pBTdUInPxw&Z%=4I<3rexPMjJkXG$KUeyUtQf74v z?Pl9f^3N&*xS=3pB;XQH#t8?*ZGuolWPK9;)+4)|aulZR&uhE4sjSxutuLl7b#^-n z87d7;%9hzofQck;Z*zeu3UXFHa97T7Tx}ItbDZn|Gj(B4sKn^ahS>V3rR#3E>5Vh# z-sK#T)l*VyJxNbJLLrp_H1^rD2^@uHJm8G3K)}yd+Dt-bOxBy5Hy>5YxYDSasHz!@ zxc)(JHRo*fN9_ajW2-$eOH*o#xu%8S;=@e3Svwi3Ew@-qt<*}CrAx7UV*3V&@Pec(74c@qa1VV*KW z51v5%dgnC^Y$UjBSFIR4SngBhsjPIm*GkW4s-vf_X(gw*+hM72V~V)yd!EtFK6 z+NK-kp4H4>R@$yHRhoHfsKq>FIF5MTB}2AH8(-^E2UrT~8u;WfG5pcEUz9q+-HA5* z7oezXG>IwOG_e+pT$X}w{^o)I06kKJL$wd8-uQN#R_R-HzRRZjU8>{Ml2KIGtS->4 zB-E)S5Xe?ZHkp`7un?IWhTeLr(J7>5d)v#(ZGa92f5L&pVvf3`vnT$nUBD09)Pm^y{Phdvv{N3pIWJ0J(M% ze6-6|StsB`8x*;!WM6Uura`zek~8JO`e|d+C99|`k>p#b$vMUrzN=SmnM}vW053aS zkkCbmy}i?W+P?eTyURl*P2S69uD-5MPHxV8)ks@6{u9+^ep!q%?^XLCVU?&F+O?bg6u?R8R@| zsimYe%`?vxxlTF}^7*cSC6il}QRy;=83l+IB-ke-zxso=ec$b+Gh6E|7X_iY#d)B) z>B@#k=Zq|nRVYvtI;Vyads>5`9r9H}&MJhrA zu3c24E_SkxIX!D@sUoY9u*iJ3CiuSB>+G_6ZlhOB9uF@!C;%JhHnua>S68LJ`g)1= z4W&EnultK&gHK+xWv0&+lHZ{;t!h(WA+N2PDc9b1l1i%DWrWmIlttRDFFSHZ`{DH) zX=`Sd5`O3xHvKkS^Ws*aQ&CMxNmm$aONj!+SXJL?s;o~c&a|?Wz z86T2sZ+8l7g-NFZRdyt`K|%zCjzMqY803tR=La5o<#o~r@~)#m(AM(ZBsJe>wEqBp zY_`7AYPy+IOKRO;WB$;`0tYt=8at&mZB-%T1XRaQBrL<=wiNM-`Z+u**xol6x4no5 z-)NWy0<%a7GFs{v(tKTuAI|aFS+97se6g3;iDps z3VK^@6!AktANOh!C0V461ZG0Jh!@oFjg5CSZaW*a3jx;m-|$sc8f1lm@XEjr!Nh`n ztZ+LgXV*`t{{U2-y6sn{F5zje=PzS4zi}+fQ{GK!qWdsAfl;UG-ku4ghMFp+nA0D3 z-b9W-%^+|vSRAHG$zphaAUwcw><0O{_U&ZkdQ~)>?3v}RVY7vciMYjwzk90I^|w)S z_1)C;L}+|Jhbevh}yp!J2~gWQRAPM^9^!%s~N&`V0DtSVE(B1=Gw z>gGRn;Yp}U`nH)^4aK(y*x%6pY7U{KLd`I~mF3nXj1YZ@=m_@Mc2p;E(|0>(Zo6|+ zQBhM;X43F7%PSccVHrC}Y>*e*E3|RICj$g@a)!P`VbxW_*GCHhJpwJ;`;D^StMr=d z3d!x-UM)pIQ>iMb?Vr4A=;&gufY(n98C8&^G05K8WzOB8jPm^~aT=K1NA)-JMqcK$ zmmFDl72K}*>RLMMH}(>jME5VZRQ8A@qoULriETG~bqz%{MPX`F5UYwI89zwr6LmhM7$!}Ga@n~;NovyP?=x49hy13O`G@U45 zNobZzbZMLxW(tf41D}HqSCi*p$7Oc}QZimyo=bf&llDC`s;$~LTKC(yz30D6r}Pew zy6QTLeJ4hm3rpLQo|v3K1C;bP>3-o^y}s&|^@|K`_=hqp%%VXy-z&%*XDm(+ zfzQYxnai5O;t|q-=YUh8+<0TI^!wdvDX1j6nRJ}K)ux#qddsWBED}Wuq5{lXMUUwp zcKGV6hD#3+z+G>?-Tl>%6vrvydZ7>AF}P#YCiBu~rhibK#J-(hez-SnH2gJnFkfz$ zD~(0dP~TyA)+p(qwJNPV2!UI7;ux6=DQJksJFgLIbQG+05N9!SZH|Z4dEbQe%~86X zI;}g*Vkd)ri6b@&?zFYPNp{OiQfXZ&M-{r$Z&p~<2zsj7TP9kHhw}2s#Fk^9I2-^6 zE){~BK2dY|uHC9t>YPJfbsbVd`3URK4uEtCgzm?8=&Tm&gvO~7b&Zf0mneXOH)L=R zo_;o-I6YEob@MsRjyzv;*mw6%P-(I_^4lHPGGDYa*L_Wbg1=Ac`{1X#R;stGPFRaFhnl_ECwaEht2Hzb^8iV`>j zYOoA2KZ}BKJTB8~zSBrCvG=|I0DV`bbV=djO&!z~cz6Ss7b72^f9$NAxiZPFbXJ|N zwrY2}Q%@vSNp7#b$yGsMjg#9`1wYnl4A?C!G2}bM9aqmz>N?dresf%{196e8_y(%Nq0dDYswY3``5GVv(`g04`Z+~BvV%uKbef0Sj+!x1FSQJ3WjJg`5pmZQ;+Ot-np3v&8Kcp>>8immpYmM4# z;e~<{^lNRJKgGnS-2VWH6%4t~RB}cklv;EX2`6N(CiX1a{f+kavg%r9u{NL_DH#_y z1N}~JVd^;!M`BI8g)F-}=-;@I_B*=zZ(M7e%J(Lw%$FS(dy@H7zqufHQUWiHL>QX*7`O{(WRQ}a=+T{<_Q4aV>O?MwapTSa27gJOM^zLtNu+X@NC79%7Xxoq z=dX*DGQq1F*+>kM&Tnn4`X-0a?yJ={i#a zs;soN&k%UZ?M>SO2Y=JqIHH-8Xf-AGC9Sx&-!;uNDgMu@!;l(PuW8nXdc}#KXpxr^ z%NX1k@-i|$7j_Og2b}fhy23moW!))(a0DqqsILvAyJszJIv}38l8U0OVIJj4jUAv8 zA0#1pSSZfiz6Uw#qK;QKP{Y^grNs+pt|7+&T~b$nWxrNjE34?Pmug38rIn_pEh4gl ztVTAUrvrY~UB{oR$qUrH!q40b1+k@Ut&PE?iw=pC(Rz0KX3%#308$!zMc(y|&$S+* zdwnHD)%ODqinqrupo*H{_m~w1p!%MHa{mB{ zdZcXAqtn{|06UK{9)oY*RQsCquRAY$gI-l?zS;IyN_tBDs8`EQqqWkeZ(&|$xX!;Eqt*Tav^%N2Y2tNl`RqhlF5SCWKT(4QK zGU3PZMx6;^sa-)*qo(nxSi!k&(Ai@1Ba1yFJ{SU#d>(&{BGm@7A%R z)PKAhy)^4~?BDc+k-!9#Q&F`&TSygAcN|i*fmEHi1-iw_z}j}0;WG)f!97Vnr+a-9 z`iI0VYgKt?AasJ`{h$v(FjaT@uk;n_57bwvuKjmwuv#wDt~*&_zO_9SWv^D*=q}4| zp{I^9Rr{hzVekS5_afQb}Ug-RGe89ZmLDecm5M{r;rZ z)zr4JRZV3uF{HXhU=%a7tmVwlRuk+|e>)^YlT4QcUOL$BAbu(#^Fq+B&z z=QZ@Qw8d--d9Uw((LGmQ!1tR(dUChc*>xoi<6CAbb5lJ(y)U%CLn1~wE)d~za!f(K zlYnZU;F^}!O4~$E-F|oOwTz0oEill)`_9q1{D-It7j~bq{npp|*0NjmhMLu=s3w*% z+#3zhP+ekN6<@{15-C+1`^7QK?kVRabt6%$qHJK($#K=E^y&1n!_(;+ywxv~t`1iN zhl7$2d;&d<)iigr)7Nn{_M^Ha6*lN({qExsZgNi76DI?*&u!KzSDT? zNz>^Y3z}VE1;=}B?zpD0@cUPmwpWrGd5-4TCx2@wFRE-BqK8p_h}&n00K)l-yLrBZAuM#80Dd9ad`kX*Ec4>Te+3Ut$oAwnWcS5Tl=Z2=uV)ey6J6cV~vxN0FM6gJ}|llrSV)E7x@ zm%H2$D=Jn|$dx7f%4=DCX`*PG=VtHf|ReSX1 z)zT3leXMi#Cp&i>@;N!i4^2oK<`57Z*BMb?xcXA2hfz;gLo||6)nVj_t4^>qh!l`` z+DJrfHc79^6c25eCa0;|xYX^v4B8H9i=QswV^Cw3mFpQoOasbgt4kf=YRRt@j?K z*1f$H{?omV(z?T1U%fc@TE1KS7HT-I8WU3@rM|l5NhC3vD(Yua-px!ZRyK^W<|PAg z80(1fMMRX<(`poiWSjQA`+BcMa9uqvsYuNuP;m#8Ih_r*`i|a!f zYP;%MDg~j6r&IPqoBKl!5X2kzoef1Wn2r0l)Wstbc_f?+?Hxpw4{YydGH`A3&DQnY zCL0-KH3x6%Xg`-P<8=n>`zHENSFdloRabPmYM5#1YrBi7Zg*(y@LDP4nmy4WBr3kr zWLTqM;~(NA5xC*a4zFFPaEuOC_rL)4^<0m;OTk>qo=L|`^$|4tFp3|P!zCZ8#~2}ZIMm@+{)8L-A zI%#~O;>Xyi8iuD^rqEAOOgVuL^7`7}zg5LXyX;1d?WcIJ5Kuu^QK&TrzMh(%y6VPj zr7aW{l18#g1Ahdrpf21gB%T!TJyWK`5830AF>_&_*yy~|JKkzu`7q*1BdGUScSE@q z)*84L0MSkL(OTv@ z+q8Oinkrgr#U&5oRiR7-iQ;Aq%!pk>L`XRqQJi(hIFo^=s;G4OM<{EuT5t!l?3_8r z5mVB(mr?|lfno8?ofUbTIr)Xr%!E0;TU2# zJd%ohl_^%beb&1u9n5lCjNi`ditzwkD>BP^^D5=3u$FxyDM!Xu3r5 z>J5gRat6B|mMY&nXZtEWRQLY?PgKQA-d@&r@|L1F((R}#?DsppbwUPh(kHTtvA=*& zF>=9)Wf;!^t*+B4s)a+?UR$uZvg>b(yufKh!K93kE>HGK4H^Fcz3%SMZac@?y+?8H zhi*HQqV0XjvfTCc3>I6CldY(>Qd}UZscJzuc;=IAdwspYup|up%9oAls^E1YVQa{+ zBO>R&qNkzZr_bmi(sDg%>si0R8MIrX3Y?6z}Ro$E}000mE2du?h zjAJ}8n=QpN9V`4p)kXg2)->=VNwq`;feZ_78&1^7`1*64{Cs1qj-d9wCl#yHT11%I z$+YaF)mv#M6#oF-$0g3Dq_#H$?$k4kFC_8L#(2k*nEGoP=!pWu^;7Ds<`9|h+K1bw z)_$C-JBLMepoZbwc~YYJYrI0$woOHCt7WBf@y5ZDYImJpIaA@BHsOUDjRJ8FqR$fd zI3J?VRMkC{j-_?HGHyZ0zS;W!0CmY%dFXA{9S?S_q?(%BZ>)pyQP5IVNm&iPdMSgm z#AW{VQeNWJ-I!w+ee1M;1Ufd8B)M$pHjhR$T>;wHvLq7 z1gV;?wUm>(@kZ`oJ#BxY?1tlemi61gSq;8gDn_i928rc}(5h(H$R@vBWe&2Wv$FJ@2qwCfZK78UDf`NRQ5TP_VSZ%x4GM;t@BZ`O#^?ke$jh}Zml)Y+U)(=((&pY zT=QFDt7`jPlG4}JQU#JX-0@FFL~R*XTo0*ELFr!%xivUM7cKkEKK%;ipA-W$T|xDh z<~~;e-u?cH!JzLRtgqBBZmX6_Y|vH7NkKFyOtVu7nmDH9mtq11I0L~vjz%|I(cz`k zDk<&e4kG8@bOj$`6+YTJGP&Oxh^%;KuH@a!A&%u`w0QuJf3hf zo-yOjFmOyT)72M9c3XIbO!4?}jmOP68t-4*=%cHtq^qVh^solb^jT?~C?&8*f-#bO zbNL>uX4M$h7esN$WA_3U+8$M;QDJ&L*7$EK^QV0kI-vzb6= zC~{Rq*!|2s+^vx`#Im<{{VJRwDyfN zX3%vV;O$hzT>Ls=jRH6tq2H`4uf-9Cz4 zdxxW_Eah|Cfz%#{w?*e?YP6gw#WOIGuX+m_&*WZh6caBtBo z>F&z}0;ZVb+k~SCa9LGT3QB?t3>429Cp>(0oR*!hE@Q>XSMa=s6Lo4Gk@U4e>I>4h zb$dnK$R*PEZtt2sN88G}`XMcLhPheeX*B)Y*+0QhBrL~i%fmF$WM{6;!aOPVejS<$ zmhzdhJBw^>>-jDf#vESp#PHNmI_!(e&ZVS7JrH9H$tqOx1!wO*N^ zl1OT%ff5-eM#wIbGBl$BNhbu8l5sLp&q-41X}K$>WCe?QozgQ`*M&os}&pfLO#RLyF&up9(X#`=Bht=|M&D6aG&6iq;TKoPPR6JDg zvT*eBa}eW!Zsj|6KiUD?O0L|&Lk;h|U9Y(5JwYakviE;RcJ8K5)#(ej;$$O9Tigu-_j-C4GRZX&uZ}6>RF+4H>Ld;8KE~JIZ+ZsR8rAF0-dw95<8rpzM7w6VTh2>WMNN?_!ysuP%Sfza zFB;d-@gUURblqCsBfjItGteJX`1M0k;pnuH{6|S^yf)?Rz46qJ_Uv}(dL=(=HQgP? zmfKfNae}7RbE1xFTDo#1ifE)!fEeRB+&qDjPDXkvGRk_xPUDe}nz8X)RZ7X?$RHIN zyX~T)wCei$`XLMv8o^x*5yQ9NieIk-z{&m~KQI6s^`kN~my~3tO~~dwREG4q+WtQltW5$rrfF^#N`_zVs?h=5eYPs!Njbs$aQ>0RbMW@79Fc%ykbwJ+m&x}7 zWmm0eP-}D!jzRp!0$6&7THs%?DnQlt{{TVv4!k`5xTC$@D=QXT=DO3B?V)dXIfw|- z*F0!#!;}92wyS|;Jc9fJdv2-2x-PQ^j_ANAAY4Vtr3_x9%}aBbR#j<-$Q?YB!zI&Q;P1mbn3xyT6IO7MdCGmBPsn?kLW6a>&ICeMv<#n%x5=}*+ zyiNl{+)HoT*-V|6yWXB}9o5pksTzWoe^45>$t5J3Hq@20l__F|o_m8`Zf+OwvY4G@ zSP9Il?z)0EoMg0ZBD=sEo8z=iHn}*t#y?TA=z6BNrx@F%vOsDbVp=z_&Cg4A>b>r6 zk+y$on&E7vF~cbKy~a$vP>2ZfTOM|dvBu&&oO9HnRVXix_if6J6kxDBs&#v6(0=Ny zvCNW0mns^XW|4u|p6o1{!Qk+DZ;hnz2|Yo5!}+eHI`%EHR8(p$3tvH_yO(9L)LZ+9 zsry$$r8O1C;|Ud(*eK_ft0|&p0Eo>{o=UaDfD@K*G-0#=B#r5ed`hLwrCCa|0K=J~8wNt|9a~}$%9m70p zol_JLndUZV8~gtNe#DF%Pj_r1=>YI+F)7peu;?X+iLM_%s zsHut{Zb^`$Rc@Rk7mb9nv`Gxq6%bPb)b$U$_=7fB#@OTzc|C9`t7VosBYW?Dp3BpkMKmp}ibk++ z_@_^{x1Dijn(0+TRdS`LH4QCnk5h-8TOQuj=Q}_IlgTa)2P3LYJh{d~%v-T5pzE_z zO8DvJ0K2gWly{+h)^+pKiEA#Ec5K1*!jYa~6u zQ+OR6gZiL##TC0i==~$v%@VZKHhL;V)AXj_0>dP4wIFFkU=T_Tq#qcKayUI{_)3K8 z+(izZDLj`XpJfY*b;=GD;Od=G&9^IgTHlp`vgTX%sb~!s*vTNKG&cHFp;f80$L_OK z)=N+W%jsHol> zk8^8>XnR#HeKC1j%W0^Fvr^n($1JrKt3g7Hx!i4)KLC-;_|m#3%E}1NTbB=gzMrb< z+y|$MT4^;|8|HtMA5OnhZ=#vH$GCJ_R_j$xutx49M4+br>R4G@axjthfOE?#rV9rI z?a9U+uyeRLoGyrK1Wn}wJrY{8vzCtIdSmrHt$U}THGZbCPuokK2X1Adz1L}dDPg@* z$2D)_>MG!JCXxvtfGsSW;E~zmW!?M3CZnsdfg5kQ-w7ey+oFV#!O=5 za}jfkb~e97&hKMCX18$r-9);UyI5&06Hh&2DYWVsE8@6Zcd^~kXkS7$p2_G~ZE3G{b*3v6k6%quT}YI4 z(3uF8plJ7Qbdi@PJa9<^892dKYqM6>bC|`AhvT~Fv^pe|6ydzY5uLvT({~TMI!euE zq=UHnd3CKOkeVuc9s18uv&(H*)$p@J#?D+xoMY-gQQ84z`ejtJ7g4(0#^fEn!n__D+3ADo2xt!#XEIO0=s=AuFHJ83-g4ThP&;j4jC|lh~{Xl3-<=3}br&Vf; zPN1W#HkGkl?se1`h$u@ z@s6R!%d~$>{iD{}pFny{8YZEn={km-;3kE>VlmFs7-NZe z?aDH7gu}8sNgGW=utq?^&qc{K{{V>8)D;ekNsX_R6XrQ+`Tqb>_1oQZ-RR@D8iUmb ztNz?}dsbg7>_@y>!l^G>hwxv&KXyk^4NY{oi`)wFmtCxd)Tm+OjO+BORytNwGXrmx zmkZUa+g}?w59ZKk43TnC7#02Tz;*+69!Pm6R6y$b#UJ1p_N2E|G$9 z<%k*1Ei~;mX&P#q{Ui^n#%p@mr>*`T=J`uYiS-MmO*?1PHvZj5+Fco7wpsMt`Z}XZ zP}wZBQP5jx#MG@!rD0I23bxF#8Tt-STISN2o5%nJjlaM7Sa!`T>f2p2yurcWPJ^)a zT;z8`&s}7^+^u&CX=$qMm2GaSq@7oCO%WnxE0cg72>Ct38 z>bHIJ@4m9_HExK~7Alz_vD;~)71dN<+?v(EX~uuW#G8*kBLfOB1Z{ccvxtrCF^|?{7}ZApX)lK|`uLf7lzYpG2pRRcakYs$`}#qM90dmHY)1jT~ykqCVpy zcp$%l@SYpNk=D(J>;4x$;;B4VLR-|h=j52*N&14}rnP0NC%DWbj;R`El!TrqX4=I- zTw%Bao!AUG;H!G`JW6*9Dor8Rn~i7n>dhQ&39RC3R1NlX|wC5+&V7#sI4}+?7Uyh98 z+GZcJR#Roe0g^=EEp3Q!$vfOGsy!L{gS7Y8v)!`pohm$1>rE#|c(_tXh6(NU#wCv9 zO){Sk6-;#sLGlVP;EtQrTwhr$0P?ll`Y%OkvI^=5s+#<{pq}^atnW_NEp;jw+aO^; zLAUG!sK?|v`RRzmT+b?vJ4;?kR1^C_dmr0Q(f5bA-PO6-^wa~m5mR>uPnzq^!iHmV zkxUm>F?-(L1wZ{yXp z8btSF-ioigs5Dw+w9WfWhnC-s`X1ksztVN8T}GZwJ`s0b=Jv)0M|}Mh(zYL=>NWh$q-)eBlkS}7V2^DHgj z_k|lf@!YP`_k*|^V@}&;v1{!+X3$a5UJ{Z_3Tp}rt~jvbOx)I`=D*Ll$CXoE7VC+ zz`bBZkO<8|+R~uj*fJ78d~PAJ)pVMy+~uM71EQ~~({$k(bRy2~e_r-g(dsVGYLesI z+v;fATSlVRmfNNB<6Uohsw@0(MO7qGwZt^7PR=BO{kD!I-i^+2*7Jtzr>m^+C2{2( zpkHi@UUgp~uX59^}1;UeFhkFr6sQYJn?}ob7RF;S! zy~+OorMBwJgZ`@G*ZXsE!=(`IxN4# zT@zTSi18&G$c`u8_qDB(Epc#mwtkAzJ4>LoMS?r^Ro=%`nqNxlN)2IHwYL87%;lAhG`wCPBe>gAQEl1v6hm{JgOPV8WEPggYb?vhsc zQ5yq(yL;@gnxwq3%>7EF7xIwYkG-$}cgk%)XdkHSe{8!Esw=8)HtQynudb!g`kLcW zW`g}iP5bZNqK#yuWObP%W0q152+#O>n^!eeO-pI0nn~P&VYcGxu7aL}N2dNIsy`0E zCndMp*8StrLcc~;y|tUrj<>Z(t+h6=qSc+*xdrZxHDR(HJ#)1!0^05M600oKaeHjO z%*f$EnEh$I9=i_%vPS8~N|?Mi5^=uWR|wQs<()mIw3mF@OZIB9^n%>!hK zy5AzUx~%CO68k>s4>5+N4$~&^2<1uK2srrhla5zBZh7*qi%NN0bnNyL?MZOg+Fr8c zhI)AJrYQda5%g>x)Vo-W-~|p(&+y=R>ZVBK@z};-_fpu|kf! zLiQK5SAOi*$kaB?M_s3(l+ehiWvQ>KEWkL75a)RWmr=N!^?6wOF$-zw*>_l6l1Ta! zVo$ZZr>Ll=WG14%qQvaRhJ*8Ut_OUo=IsxvzuE&~)iC!9U+dUs?G^H_vXZ#JMfsB7zn5trAcEbg+rjja{ z{CJ5Z{o!qor=ibffUcyd(;UbuY#KoiWIkHFnkRMp1FU(R|T#dcM! zZJo59!))zmaA>ZSI`c?bsC4h|s~daOkjqPKrl)H98ME&z$k3RoDIFw&quGh@91?rP zj*d846T#*HE^`Dm43xcw?I-n6BKh5C^#1^=B#Qf`wI6i!9Xx>^DWa+E{-UFqRRX)w z*2g6ztUiq4;oXo14pc;R;gOtN6>9f6g5Z0lzj-}FULn*D8o=bs>r1s1}a-0vKy6F@=MGm0W(UWJ4`}+H<>Yq)E1;%>GYt)dw>V=R>%yJkH=-6CiCp>(N z)o?Mhl-l-Jx^WW9J=5vg${2gKe5lf5@fD`gZ?-LFqPQ7$)YC^UVn`z3W?3+HRlm9H7uwpoz-ehw^X$yX zDxHQ_Bw#bW@=;Dl2ge7h*9YoVaWEU-r$OuL2dZ{yBcx;Gk03YOtG_MqmmZqhIk`)tZDuA#7NhF+{^VebFEiJLj&lvK?F@EQ&;oNho%IZ-R zj`PTW0s1bje`OxAwd)_*>)873C8VgQme>8J)7SkcayG3)4b|#yw3>RcnP;Y}sa2Qv z)D;nkY1PoE-ML2N=`B9f(8eS3hevApnwF}~MN>~(L3FcJr14JjyL*iBw5uU#`ESI% zItra4pHgW)ByQ!o#tv=!E3I%9Os7_;)85e7kDLK+wz>KJO0Z8$K9+16*R|SrxL4g< zX|q*onVzFe>1MVCb)!}=K|M`I@=>Zit=j}_yGkAFkE_lawx1nE6N`Xz&BlLt^j*f2 ziEFg|P(@1}nB4OZ%HGJQaU`Vd?|&{j6H!HTZ8t?~v|r|+h!`HG-t^_93$WqQrH!Hz zDf+T;$iU`WeIxYB*F{?yExqh_Kc;^r+4Sxshgj0vRT%vO}W(AjYhL9`Bk`{5evXZ1^jFM|= z>7#s}V}GCbQemicY_K`~?_}!s!_@}3(mIkh{pT)+zED&On`P@oHDt7Q_D#|WO&v&g zjfPLv9#xsn2_uN}Y3u`#IP#xceF#=G8of;oN7^BOEB!Y1AoMCuKd8?C0Qav|)5}xp zTJvkKp`-j4xkst0>Fm|eDjDXhrG^T3k{Ph6B*{2sOm0~=F5arDXpJCiSkmBgoS$Mz zx6|ml=M8Z!W~m8mleLc+u&@T-)CVo^-urj5v|iSF&eytU_g;mUTTk3AJ95&{-R=64 zYUs5B&pbzEf3s5(sd%I-?qeBAT16^9gjSmBs2J#9Z~-_sxW0b{xg$%OQ0XCS-dk|- z)QlalQm!ivo4B3DtnTHPx4LJ!TD)j$hLx(b-|neR``(TlWo1oD#0nO}n=J zM1jXk_&z6-UUfzMwzIRG+vn)H7siLtyM!Lc#yoCz@|$+P0sL&L2TS(K<8Sn-=nnm+ z{V!ZB8rxXxCwzsr*dSERbBJj6*6lH0nh}nfC*IL5AEAa91C~ zae?J3x>8G_JLlxR8$~Q{g|Cd=q;Ke^ebgql?9QvTs;IqLtukLNffb}RH541Fqg4ts zhY0bo<2!-IFby*)+XY{S<9k_1V~iEi&HXOHRPU^{WwC2zBAx3bZHp|5fVAn1mvW<$ zc^)@?M}P)8uhp7nkgy$>L!*!|8wDG5-9@53CF{qqm(J#EeHU!hUY2Nkou#bSeJ@pc zvtFvL^^?`dQBts}ShwN`1nSC*&()OM*Kqh*Ncw#M)Jn{{Q)ARN-`#oR;%xEDuZnn$ z!&m|A3As~Ovozhb?=%FTa<7pttUq`$*crRe5J?@abmoT;mt~dNa7wO zt?=))h$qkulW=ilR3c#;W}~6GT_RYjqKy@V6X99R zco`}W)D8wehXbCoRWZoMnsP2Ha=<0^(d<#}w3>#YG^d zC9O6GAF6OaWDb+`#ovEh8fR5^&s%6s17hv{lA~SQY<=9i+UYGip7NCt!AnI=?~lUH zu%pR2h_bj~jJYF^Qv3qaq0#jz>Z=^r)IiI?&_E^bHs`VG!E!B-Y*(1RD%XD))0!z5 z;MczL9l&F9T1Xo>*dI%-ia%_}udh#DmVF;xX!|+bPTpU8lib^^8aB;t?S`?AX{f1x zin?m6bTv*ApV>(wIaN|*0b8$1%dJUCqUsg;oWx3FbZ~-NTxF0D92^Dwg5;at_Uc!h zMwZ&We@~~PjF{UiWR}70Xl!Sg19NXNwl*T`jgI&Fz|r0Ef`;`+RUMAHhT9!0TJaqs zQWQmxV2?ZjuwjPm;CKWMycqr))v2oGZA(kZIdHaz42S4B6P%G%4FNu+JnPL&eK+fB%7&cNf3ci z4ABVWkCV$txCA)snrqrMR)MWmX!Y^lGEJ}jL;6TPth%0ytkdxpmq)E>&*hLe78bGU zE${lKF5~L=)g-YSRr6P9xoU1jZ4}q4i%-39r;*RJjRO_J$>1vza9<#h2US{jn;i8q z(?$rnw&iQJ9ysD!4L(_Ak(O&tc}4Nmdj7(H`we5eT6B#?2BNaxEgIhAs}1t+bGk$- z7gp_ND_pfyJsKTOg^B(ZW!e4gNKk=c18iM5An+JmbM-0U|w zCg78s`kv}^_Fm<1q@>jvdiKgqMRRH^Wk<3p>1qSSBAPg(!Pv)aY!|`y$>TXV&xraY zjbwVu1_0!6w%v{Xp>KX1>rnGQMt0}S(|)@+d-Vz8qMdEEQPqc*I9XA*7W_nq06qtR zMqH1pED7=Cb;cxXONhGbroaGHw$R#|IUX9DMQW=_7*=@Mk*Zub4UC+XY=$TE0G^^% zHKLfv2bsGlj~vnlor!%MW@!wLNlfiv!#@DzpU=qapj0@L@a4{~M54+X*VV0EbWnS$&K;n3$$f_amgI5s z#y)&?o^zGhZ@pE} z8TlP(G>#e8HK^TDLkTgq+|Jl<()*iqR+>d5b#>8GR7xXj{{X0hK(_a=C--I10qy6f zzQT64lSJsfF=Fn8#+v*sa@ln?ng}mf(BMvPlHAe}Af^nYDv}uj_`%Oz%ZGR)MwtHq z3;P?IB^Tx{0oNVfn|zj!U)N;NG^a~X4LiIShKse%@fz*iZU)`E*-9TwUGB4Mj^5w> zFjMJU?`x9j?^*QaS8Ih;Wn}Gel1IDOR$gb79x((?h^??FOks;{&ldQ%!G}YbYgA5a z>7o{JdAa5X0An}qqG;9iHT11D>QlCv zq85wWW0JJ=d^Hr6PBW6@eumqBbmaPbwRaAuS6C}=mDO-se-kBj&X!1HneGfDlh_hf zzFme&KEwm+^Npk$tu>RKL9TGd{)%3&Nli;iS{r9=`zmu(K~qy3v;9l|0M3H#TznjS z=g0EvPcxk$bBdseu`d%ls0ESRJpBd*LmQH%jSI7i!Xx__3 zr`R}OWXksQQhx5UQOUAGDy5dLJ<%*mf=QU=PnP~1SaZZ+Nyi@ z-uldww4R$OJ3VE%dpgg(7dYvCxTM)NzRPc#8S3Z91Q}&Wp#$Mdj&OSD{3EByU05of zJdvIKZH3La<5W6jAK9TkX-CX@u3TgF1%1`pCa+4?M@cQhqJ}C2to#}!RmCE2a3q0F z){#b4Sgzs@2{;{fCd1*(9>Lvm$u+u)nlG|VV~by@3fwaYP5~whfLV7 zQ(LY2hU09grnTw^x zol*Y)k*UbS*w`)1b~hF_zV_b>tKU%f`aLbAr?*m+xBHZ9K|xJPh=d4y?HSwoeuMJr zsWLLgYQZN|<9l33{^|~u`&_e$J-nH)*nT}?;#iSca(N|L3 zqqfg%6?4jy(@4&YLdy%jC65gmgp?tim9Y4EQCSYF1uO?=xSv2q{{SVN_=iKKH$tkb zts|T;29s>(Vc!1$qDSB9?6fy}I4!fsOIK!%=^{&PjIhBRPGd;WK3#wc2zNV}ZOO>$ zi*~hWU=?rM(p5(^Zy>j+}LHQhYnT8j^Ug?}jBL~!WSlWqYs%BlDpCvwYcDS%TuAZij z?;)zFM4qvY2%djx;zC6ONgsUoLhEF8_00@7EI3&k7tJWjAA9cMw&9^CBO~>K! z8XXz-2M%{%U=_aht6Ea(yJb5;I9lo)$7;An=`&P_h}}yz&IG8tT@Qi>1dzb=$)g|x zYX!-re>2Pb-sz|HD`Abby{}nXsvVzFY4tZqB@CvTu8GVOOB-N~lPr-jPzJ_Q2*Y*C zxW-?+p8ntFrt#)ugG@q|>Sm{4zOn(DeBg9OZz#ar=-%Jjg-=Ce>w9G0F0C zj1i1r9Qh}#EcYNTp96@0DA_0Dpsmuk$TdYRp1!`Eqtj1EX^tst=PsLnx6@hb z^SC{$ohv8pCZ&a{AgHdmQPNaL6=k|E7D=(N42{iJ=k?~TUe zWnR{6T^Dq>2A)e!sk1GP?KC(9%(1Mp1_W)~KZ$Za)FB^{k0KJn--Cx>`MWgi`nmb2&cGlg)rbxoxE_!O`YNe{6$lwU-qzvtaV}XJ& zayZXT)6hdzPF*yNU?Z*n06SqPP#?o8ydfNu5xHpq4{%7jM%_I|N8Vi-e!Xc+Ua!*= z!)L3t-E@|gF5B(BiHna1sdZy47}&Hl5UQ7E>h*(t9(x-q`-_f~Zh%3%f209|&>) zZ6C4ga4RufILJyJ$P^lAx?G%c$1U*6C@e9hxe+X`Aqr)h&Xf4-kX} z1ms3fJQKn`CQz~+S}9^~Ud;N~;Qbe0;0njoXzpuCJgy<5u2c=|gmo+XXKobp)XPu( zne^W)BMA=5A^Vy&k;y0cOHSC&+;rU>VcZ1J{2vhi0R73*_qXB!1926<{Z(_-7bA8q z#5|COQ%`^kXCMFx0f6B={g07@)&@p3lDf;OLP=|GR?f<^K~lcgv>lm32E!P@$x;H5 z&(FYIe=eAi1GXkv(}rbc!$$&8#aVZbEysHAJ) z9KzfD)FxHax|PA_C;Tg{{hr;3(;cMHlwHA|jvKdiHQ}CgGDuG4l6Xv!0x}nZc=7!Y z82GH!Xrrlwz2MwsO`?J*oEq0*LH_P)s`#i{%};oGDp>E-b+-ySS>Bc!gc2C$jxn5I zr0y9&A&18R^oENi9 zV^+hlgeV{Y%t#`(sviz(mvefJkJJyzT+nJwsHb3iOmF`HYwgTE>_{I}fYTI|oy^x- z$GAG838Jy+sh>^hN_l`Eht%vHyr#Gbj_D^AOm0vP0^mDxU^gLdC1 zuIuodM4EQbt32R3&F)4o`L93xdg2)2@VIUh%<=(ta4r`iAGEL3PO$HPeCo8$rTy6* zUv6Rk%-*SN*9mU+Xsc-1qMTFIw=&1QNfI|KF`W79vg%WFJVE~5{nwZ@%4uL}GLS(e zk8YPx!?OLG)?T4|&)aUtcIt`l`q#Po#)n1NY2wR443(0qwM_WPSZSgX)Jo@tj-A+% zj;X3s?N*DV?e3na zjeozbN@$6$y2zklPg^v#wGW*ARgK8wt`R)qvbIWxpXNA{y%9sF!AV9SjDIbF0sa2~ zRa6?r2{+uEnD) z(TjZ&Dwy5tC#jJYy}-OIc^G}!7yxE!>#3yFxn>8HbQUE40EG)qh8k$t_ecx7SlD{0 zv#ULP{?C5iM)K;e!)j`Zn_7FaR#em4Zu8T}mR;(JGi2bBq4v4nI2q4UBbtfN<%$fR z^8Eu1WUpo`k zBL4tp1=7c>EmRs3#bUMTp5ylWUsG7M)6qJbO6cNYT}^veClNtCG&K(Kt8IKnZJ zlK%ijQKI65Pu_1@Z?yfuq3!h=cMIB)UV@6ETd0+qx|$S@N#Tu_J&htt3Z20Et4GnF z_9*3)T2jz2Yx3M~yro@T9COIXN$|^$miXTRRHvv9P@VeicVsj_qFp!K{a-g`p_XlB zceOO}(!+YMubrA&CzdhpJuGr5pYYPLUv_yMhTNoQb#5P`rLSb6oX@rHM_sNxR+CTS zeO{wRc9LbZApOz3x3%}R^KR-V*zL92YAGapbq(VCRTyJKTL6viKmoPdP~nRZpal5m zj+lEK$$5JARYv^TR$cok?|0oT>eEH)Dh*YpG={osUH%;vTdk{wlS|dzX0=XfZ8bG) z3{>k{B6?(!Z|=me7;}ctRys?(I-x6_W3ctOwUiA(f=GNj?{C3hHnHz_Y_C1KqwX(p ztlCQLt0-w{qSm$xa#CuW-if$PG}ByBAd}pdIAC?+T!m7>m50&R>b7_d6DF8l*2q~H zW11@0HH7$MW1o_GeLVMyhrAx0+qiZLnX2e@cX9P0rdbZxriO;HIyj;ub^utRT>k+1 z;J{;^xF;3M9F=nTA9S=~dc)!5QbnS|*>Xua^t#l`O0v{T6weyPNh@VTx3)9&F>Zf{ z&mUzu2adV1Jf(H$?aC~yA3@G>JI-v1%%pjP&F>b*3^i4Ob@7e*} zZ%@?;+dUE5#=6{Eo*T8tx>|r;Ucj={0W#9jiU?$pnKDBuC>4PEkAWVhQs(lBKs)X) z>AAp5qKVP+)OdWrV#FR_V_%iC(Dc>E>faL2cu9&fF8&`mVRa+T9ghJE?htWsKR)>^BEFu@=ed zo&Lu6Cr#b#w)s)BzJ0^DYTD_QKMg#P%qpoy&C@{2n-}RMV{(KJzjadF5sD2`f3-;G4yNif z(!t^RUw2tW9eb&&`=O+yw7N@EA7ixyx<;Z5??@)P($n1z#^3xIRZJ46aduo+ zpHHQ2OotMVVeN7U;JN;*sl!(P0JBH;qCBV8`N!_*t?k{)TTSFtGtC4`G9g&eT1gB= zHn94MVc-I%Jd^N8QFRu&NZir7uA-KI%7}i+gP+yNl#Uy?$q=V)7)w2XOWspI*H+VY0GYEb1aZ6 zdtTC_DX<47YHXU8 zGi=LlgT1kPe`U-60HCi>ntJK# z!_)r&Y;>I!ee#ZrRove7dZv%xq7zry?i4Q}lOITk%NAt>DfbB7$URx>96Vyurqm~O zoysiR_P6fJ2M_D4e-TmAQ=7CrT>IRA%IK@r=X5*e>5I~Yy1%koLYKH&rk1t!9q!v# zM-BaS?UAQrb$7SPDm2K5$V6xuM6V;VkfplAX>i3^P-&`P$lDSRuWw6_?7a|mO4h?u zSEf^Vj)}Lh>GiNYpIX8nv#+8 zD6Flv&rvLNh|b%gFE}zImNevts31e z_15~jDCxesTXkGeMD%hPm4sOiyX9tLr|KGQ15BusU!~LOTIo5Q4jYgLNg!^sTv5g^ zsH2jzSa5Bd%gy~G7PfX9{Zuma(WLA(oxb$zs1lypVWzfNrqf!3LPKw;HPn@jSvyux zsgRatcq)}Q$QhlQLZpTmoyCz$4x>}z0th4l*ag)74_C)G37RJW=*Ydtt?zYlox9Uk zeI-XpaMmkTs4Hk<6jTWvo>>+_${QS zp_HbEmE5iBdY@y{-94?{4PSK;L8fWiYKwxJdP+FAMNdgd{0}Rx2F3CKU^fz=ep8uU zRVo~S?AIu(?Y4RydqE|t7B|Z! zb*AM_EOk%>JC4X@saI4vXx*@K2U;B!jyk+i+jC>y$909{YS(`XmGQfotr+<#s{NW8 zYg>AC?eD0a8>m{FSN8gSX=qt2SGST!ud1rI&lPx)9be2a(fwXbu>i`WaO<+sQnG-^ z$j#VtFZAfRFWT9tPTOI_A2l;{JqC-G)2|`W^;gBCu9}YNTcvd+B-EAqMbTxAVpfrM zyd(uG(X;;m0UVA73yj*wJ%k&Q4@J?qZO>tFcMCobY^=*1-rK-s9^qfC6l7D>=wxLy{Phjyj{uInijK(V ztY?E0?C=lM7QesuQ14Ct&p+C=+&yte7jS)7>AOCTxXCRQ!j`ktbCCgnF94K^#gk7+QLwZ{#+Qt67dsxZ$5-jRG! zRLLC58zNXsp?%4M^|ESmGO$ALBO40pNuE8Fj8 zp{woH%DxJTq^_lgMlex(?I@*SGRwaQI3b2kM<5e}p0V@LeWB(c>k-#=(lq&73}Rvw zSoG`aj_Gdh?f#Oc^)ky1bv@?iZ4#PzW2c!~Bn2^sRFP3z>|`G#W}{Kk%n^suA28ha zKEEZT(={)(%Oxy_2FBi&Kfju~%1=;~TBgvnmU`8wu6R_`!4NMsKJdFv;6G0%j(8)E zso$sxVju(lebcPdX`-8*q8)mbIq<^*zUN*RrC1{a>!v&fz?F zN|btwRT|Q@B^6Msq@z{_MTH$nQMFkWfbdl39FDtIhepbMJ%OUd**M*B{d%%my+O~B z*8>1{9*eGz*o&(#Gk(qIr=?0th;*NPwPu^Hw^mOSG1k*p*)6(`FKw!>bkxe1n(t2AcYN=sMlM@Uzt12Z!m1CET)^TZNM+;T9GtA&I z@6hM>^IDD^XM@Cad|JnX-!$!W{+0Y=_QgaL)#4{FoKs*S|Gy5 zJ*F+b)O8fQOCknDsZjB;R|tCY%*H94B54GT?bG`%@25jp)<`OP?SEg-)98`9t5N9> zT^73&XsYC*?mnKOsTxaD%}e{PzSZo!Q%_{PMp!ezBvf{c5i~M@@#ha4=QSNReO^xj zNbKf|hk6c|?b&GbDdXYyI#`}eZXh@w{lMsUzp|pkKC|q{sayTdH#%!m*tMj!I;%}t zsvvr58>|I|LesQ3jpLNet?xo`LxOO`;D(z7nsrTI#tq4`zL5 zXpK#6vFbk0YPlW?p-FC%!xa@oCNwTtq^(|ASzc9r!vlMB!5v>q6(gDAmw-B(MyqNlw2PUmcb{{Y!3s%a>w78la%W0Lb^h6vT7V=IyvO52N> z6X=s_KP7OiIv87N47MHbWYqdDtxF(e^v>IBTwCAwef^ugL9c5s4F;&QTJkVyfpDd@ykk)MDhsci^Dlt8xBEX<&FRoay#|U?s^{D1ujr9LYKo zcC!=de}()%Nu%hk)P!VJOKxIwi`)U(d28Z-64z^*tLS8q8fZ_IqX(MSC*KML=&s~x zO)c23M3oKRPWIR&(7v;76nAYqaHOkyTv4Ta`&SE7t7J?S(H$2De9j2S!0V;#Yov3) zw%0qI@$9+Zg85z{Xt{RQ8>^MoTIP{8jeUKd?r+w6rBt<4w;G5I6!pQJ`;`wHV5=N6 zFe8SM$pabd%N$Ji#jH#ju{Z6y^bU^=L>hE4O3qgXi;myD)YtUwt|h)z!)C3f-AzqYK^V64smgQ9!cyz<*p5W@uJ5Z)| z)0(QTgh1;gQJ=z9JZX~HI58q%WCz-DfI%>&kjP7p=kr@lIqjO6vTxVsm-<5a-F+YH z1JS;ei$H0uCu8o9LpS>ODHb>qkl_mlv*~v?VGV}!?E&=n+fPc}@70$ZF08Zq%j^cT)|D@8dyUyfxTxlNR_ae_(Pum?09o~#;325u<770D1r>knJFtRB=;f)WHdgPo( zuITkTi`^A;WLu+!jy{=M3Ox^3Y)q0!9d`O>d}HuWzp8&kUc5V1+g{lw5MWX4vSv28W=@N251Rjhyzq+k86Y zpQg%`yR&BXE!&>sTRX4VEA?ds4PKvE>MV2U>OEI!Nes@@C1nj}~!*$=}9$ z&}lH~wJ?}<87u*~?tXuw&(~1uZjrTA1^k3qfZL1T=01Ol0@tnmT=&OS(a`rsm$sT} z!%o7s`Fqj5r?zN4L0;vGigQ;4V3m{{nD&Lv(gx#@dgU&SOF_?0^65#yzAfI^*eLM9 ztF_JhTZm=%BR1>_Prr3NRCeRjJUVMeT*k0kNhuPp>n4e-ijMhgkLe00DiTeysuJGW z3;(w215^4HHTWMtHJx?z|)3MK@s;>KYtJ8;ld)al? z)luq;ewWk`Q&UMo*5;w8qIz0$6njV~cz>jmhQWO9K6<{R)3}a`pTefF13TY!kk)m6 z9o2O=RY=zsxB<1cNP7=%^wm8?ox{?WqeY~xf!YfCccV1sPvPA$tXU(GumL2;kG44L zvHU&LbrNILs{uB+xg#gpa}Fu0)1zbQsl2xruf|Yx%iMsZVHYjS$AYe;P@DjpY!UPLhF!r zO2+ATpebwSywjRGYRamokW6skXGsKYCCm96N zkl30@H~R-8isn#95whLs>W_@!@{g+Z`|0PC?sy&e2zbhz{gef7$@0Jh+uN= zx4H_G@K-tRXZ|HB=q93x9wcbOI_Er|LXttw0S|zFI_zHowK(bchJ7+kZzQc(OF=RR zTH9zY3~<#XPKAhBvJ@We@gqT})btr=Ewr%$TI*yRZGNF~Z-;zKQ>5#W(s+PDE5LJ3 z**PPz_T5*z`a!&FJ%1&Rvf(YCN9c-qHLjw&Q~fVPNlUg^+8Id8NW=i6jtg!$0Cne% z6oA$0G_>K~a&CHTbM5H8BgYZ9PtfOw%(>2a6v z)(btdmF~AFsOeDbH1Nj1TWpIi%BO+OI`vmPaYf?F>o;t#9gycd#>VFNPV(uvbj-yn zmTFtvB*itk(V&ty4i;F*Y&Q1Gs{%ffpB_4asZztK>C)25+s5|W-ur$%Ri2SsQKwhO zR{^uwZ-2~u!Z&iPsil$7$kEfiKJ=0}Lm3d3MJ#jRa=(!TkITv$-kVjUY7%MnKY6`I z#2twAUZ>M_I5mm}SJVC1eL?KD`VUweP3dUfyulQcgA8arre?|DQK0M}5SJ0Sq{_JzY$n#E!8 z<1U6f7u$Pw9;IpMV3w*c5)sTm1hjQsKS zt{q4K0q?!PMAvsWTK0dolrzv+Xlwh8+&xzlTj{TT!j-J{O9d)zMyjW=QcC{WC0A*l zM||Lw+PE@L@wwi|f22C{oZI)hEm}C(&?}^GGmaQD^F6&0Pea;*nzLK?vrxeWF~8{T z4-Kxx{{R&oO$;?PvzDo-kf;IIaw3DYow!`&XRb~0s*rtxnjT_W>ykY}MvdJea{=As!O;6Ia@o#64s9}&ynI3bsMn*dF%{GBUQr6Yf zfpATSKtWxOilx+XM*3!X$llvu`>A`Vb!LpU+iI<{tud+&5}nfDn1Cb$^%WzLpBX(x zubz?+`1w7s7S~D9^%}`pQq$$@a**~*m6GLFX)S6$8&3?il`Hr$MeQI#fB*wO#(2hg z{#{hix;Mx`8OccFN_SDyM{59F1`*23yF(P)eu&{l4go4u_{q-z4t(>`Pd_Ui+RGah z7a*TS3H#%CoA*6*^z(ayIhgMSoJhM|l27D9U~oy#Bdmp7kH~T8ui*e#c1?bfx>C~G zXrqw8i5)neN{3~QDT0QO=Nx2h8-UI+;~r#Da~PV@x?MoYAbPGBziLOR+5JoUyY2?2 zw^zMZjnQ=nL1>uclWihl@`b4ba z54B$L$a%d%7Qf3Mm|dfVIHoD|H)*cK>~ARSLF?`>Z=$ddQ+>mzti4?(sQ&JXDIT5$ zeZ>rW1`d3vV}Z9Jag)?NPFK36q}!KqZ`EIEPIOdliNiSsR>D+N>Wj>)ZDcdMnP_FI zn88k-Oiv>d^pA6PcVLCVP;d`SO*ApUUhlhQeM3zpWm8~-?;Wn3OJ16+?LCxTweGD= zecTO8N|M&y7TX;J6o`bMZkT`ztX|eJ1LP{dOQo>ZhWx)an$r&$-l7F@iBPk~nS3rZi?8{{RUJN#~B0 zz&bTN0oAWyFDAj>omT|-o2}GUnCP10;oF$D{dy!_*GJrrxz-WF_RHlpoK;ClEgf`I zJ!K0{!KwsBgooNtOtHkWZ7dl{M$c3nL8VkfUo+T4np{p6yM_3YhO1778Lu1K(Azty z**2G}jMPq)v^5e4=^`|cvX*Gd@5yZB?mKq?K*rtK!O80;`|_7KSgpfe2o7PwW~nuZ zsn%CZ&1btTa8yNYhMG;LG^bKQk)NEbj9u7}2_%3(1a#9W`C1wd`TG9=WKz|M9!rkc z0~>#pJv%Y24aH%%Tz>?xRZ70yJuA1igE(a*@J>!kF#BKu;)_tz;k1uo^N+fDXAjvL7Xi+_jO@9@2A>~o*w z&0u{U(Ef#Dz947^S<&5D6Mvr$eO%t7^$C05y=g6Of}qnHhOWn^G;g!Ak5y4xP1jOs zYJ>zyQzT_snwF+AVVX*EB#R-}JTG3Sr<6?qzAc64T6o+Zc}{yO+?TZay7hjkg5Rk7 zo2YE*3SOxovv&&LUk$>RMJ6iRIvHvOHDx5A5U=h1Br*~mN{Nw3!2bX);Y&9FSc|C_ z+U<9zyKQiz7ilgURp22iDXXh#t`xT?kB9@UJ4hgzc7UUC-MRSq>2es}*ERe1QDust zzr>F%>ZaFl?k%bNd8O|UHNI%7F7I%HDs>S_OtZvyi2?f6!z%7mz+-}=9bh=B{{UpO zyRL)4Eo^$Ejcxw!>LygvK^=04(fy!u;SNH9_Q#%a`jh;}E2-YWcKUY`Zc5$Lnp*pH zO}eEJK~?mtA}a#KVPD1u(n%RP9(eLA3%og6;kY+arHIQJW40snRe|bry}Fe&#;x@A zWg4@(b5m)$%3VWeyulQ6_WgaxBmL`TxIj|4(nTA_^U&3ap`9Bo^#1^P*LTzPI(pt8 zj; zNzvJ0qNA;YPS;cc3|{O0K1e19z;PNX{{R5X94>hcOwZwNSN35&+dtFr<&d2dq`jHz&QwC8Lk|FdGigT6ft}6MUmC%L)GC&}0`~B{u z>bx};sVCZt+{fDFw2)88Z|mEyWc6teN_Wn}X`7L{YU%Y--QW~e)m4`--qm#O>cS;5 zn9+);BnB#1AdC;;YAsS}Dr(|;*c+Q!yL}XBbeO1Vi05;z58mJFg;CwD?OvnM`U_O+ zE8X_RM7Q4H-0zmXHu2Ow`Z_nBNPibItY(=&bO+jZ54R^DPCB^ND`TjrY;m-L&;|Nm zd@MGX!xhvzT-wC%XpPS#H$1=-Ywd59)rj`q^%FHDdWw5=jIu1y!$!qm zf~dAKL(~nVsUvQ}2^c4JrD(FdKpLyLx3#U)x}%p?r2a77HP8NSkNjW1qGBoQ;rkC>R|C7j+a+)PvDb&s>3@qt*lpzBk6rf6+LaH z>2DVL*lPn#Pf(JeStE8i@~XJUAf`bCae|qZwEC})39)JBZLmd^w2h9gh0#5?4#6AU zM^)0@)$9jxwO*U;r7fnvOX`6HmTT?m)g@|2Ni2@3AG)p)W`(3MN@U%*Y;HFd>(U%0 z#D`p7HfH@_aAzS7$w*>Af< zxRRObNmv-_1QII0xQu~Xb!<~`SfxLFKl3;IlC>&#Q*q#_aU73}@dC`&B3kI#^B zP7jQZqQ2b})>%a^`Rck$Rlc?qsfsp+t=NSKeX}PUwx8i6BLLx#jOS_Tsu1a_pBn~x zEbVPW8u!N2o2o&-*VpRK`so`j4LxnuF1P4yRaAE9B$@r0!4ta1xhzm9mvHc~vB()6 zZG{w(Q<)q#0H2Xr8Ec`Y9wkhHvD^Yl0B0MYU6)VQeedoMXJ~13XKu8$lTm7#n;cb; zSKsaiJ5{PEp@tuKV8^(l0R2q490QYq0grG80JNO<`7VncF`bQcN2l-Pje1%2Md~-b znyXf5dfRoLhN*;okY3=Mb;kKx zEk0d1(U0On&S|kDV{>MKzUhak{h&UhH3qi7(CHujB}+b=tEix_(;C90!F{?*OjuM3 zQqxAxz$qILG0&043||5M1?O{*Fu1S;XKVie%3`(g_~JTNury=LNO2>!-%AypFL$bY z(L-OVYOJv7lv-zwzK)W%O1pB@sxT`7d`cpbK|5sSNL>75C8*QMPgxn~7bh0R2iLEv zl`ToBpncnG1J|$Mtn1T{Z|Jm_rA-44wR2Z>ze6soyR}_OU&d5iY9y&Z%%m|?h3S+G z;AG?;yB$Ok(ddzqa^{1cw+oo?)YDe$$Cn|OA2HQBR;^2Hf`KfM)I&*2?;4b)p>?7~ zV7rWtQyaF9NhFbs{1f$ zqv=)NLo$LnC(e4cf?8XdW+;hNDw3f)hP)-lSQcT*}ZB91mw7O=SHjf+YDv2#Cd9#-4$IQlOvYC2s<#11+)yP|W6B!5c=H~hWTC4SkDPQSCa)1@ww zuzG8`_g=HqT}Gy!v$}I@ZCw_rwraa{&^xulrWJ}f?bRz#5XTHaB#_A=DmE*y;jSRp zHQA)9u8cMTv$iDrcJ7bj4+n7n01H#YO+_FzME${YX7_ObhN>ZJxVK+2 zGwgI{`C$3ae?jOId?mx8lp2br+EO+>1@`wnRKWEet7&MGwrOP*a>f|Qkux{c95LDt z(||Bfp9ABLu#F9D-Zt&G=DJj_3}ImG7e2nUd-rkeW`L-!)3+IDb+)g&MW=MtbPQUy zgs@4gs*s$ic;aY~8~`4C`~%hgkwhx$FChL{7e2j*_gH=-)SahNhQdgD&4C|};FVsF zeK>2{y*YB!_6slmsP`htNgk@zGu-K_tElwy+?*mP2*O91_pE4gPtz{c!V+TY`i!*_ zItBvRa52{3zsW+;bcf9uscU(r88_*E-Ou?}mD_(nzO%c%bEmuNDD9dW$xiC&X1mwS zvEozpejb`#%zl?FR$l}T03darmWC$}5tq+#Z^dh((5hbumZDa$cF8|Mf5lBM?|#P) z-D;lKnCi84Z3l3vVgTN4wGAbbMj&Q4g`erq1A4H)9Ap3mdj&;2rSAZ=Z{1n9K-22& zOw!;;``*6YzZJ#@s7}Od&cb&~SLrLsuA;c<`{eYH%$uTTXrv(>@%0VCQNb8e91sVN zx-|_{H8iX&$g<}8&YM%ER=%2HVikn?0@e3ObQh{ywWg-)YVJO&?5WVu-!1nTR+imD zYa^ENRV*!sYKf^)=@M93UKOa3fFP2xbf&`&xdUftbVb7ld!FAkbox~K&WET;PcxY$ zQJ2_S&gIXW)7eLwd*!~yYOd9@L03~p8^SAICdINMoYPaQF;rDW=O0mQ<&JsuY<^Z3 z9NYJ0=ZEu?U~~GYGu^e1brDvu@b-*HHFj)82#8*ZW|wYG^Hss&yTLXjYcL zP0xE@#={MAsTi6_S`yj#z$Ep__`(-cIya5n!OVXQuS5Jflf~1lU2xYMdS5BOpw#o# z*0mvULd=Nb2LdNt0UDM+B#r79$p?^n!AjNv%(|;*&oA%(RhstZn@j7i(L>v6Tiq3( zy1ltk-wi7F8bHw1Qch&F)XfVHOp!?&tbu%c(H!8M>NJXTU&GF9e|k6H>;4xt;tI2* z@l#zn{#`_TmhM4OgVblPJp*R8RB8Kml(gS9Wm7P%Yt5oNr9FTz_XzZHN(!X%$g(7U z6-tI+K+jZKhLrcn=3w8iWj32qZ5$k}-?vYn=($Su%Xja8X?yi2eCnF>rf7S;3Dv!w z*HUe`+qDIP5VqQ@U0gtWbHyC6`!y7-H$>`=7Z14Zcz;fa=xo#K+6evFj@|CLwy#^M z>DuI#alEn5u>^H(tz+DDAw3?NJzZ&@=up&KZ&Z-!?%~=r?RDbqPiVMH9h%`yLm8H- z=^95dIFdi_KMO0P<~LAIQ#9JY4tN9rU=HB+TOA*Z+fo`UT11T-w_*nSpTQ$_ z*RC$rQ%@B74(E5(ciM&#+as%`mfcR0x{!}ipQ+B{$XsWYIpB=*_)k@l;&}jUV}ABl z^?Y-tK@a{7-zmTZTHdGoE7|TZr%z293((i6{{T^am#o$Q0KdIK+%0-f)D!BxUp?~H zox*~{HB5^gH0oa6Q!PYyScN~h(7FmeiUTVh&ZPwfR*1(_w=sa+bRNFgSUo3Ds*75l zo~ifo4=}%T(Nz`R@nq7=cde*sX{hN7R#n!6_;!XBRW9!N%H)H!NEzFYzg+I4na<@6 z$vZ8xY9WP%(hvaL`Y4m=M^#h$l>Mk(veuf83agfq(Yl&#X%#GRnv(?{ou`&-dTht= znWKTW@c_g?JHO5cT^hC*==>}oj>1yV4Z4%R&2pVmulUZU`m?p{JpjO8poI;Z!`w{( zWH*^^+EZTXgH>U^Q&XU&sac7V8mKBF#BwxKBu*He!J;a|h8<GS_``x6CLhpmm>hyJxFq(z?wlt1am`f$Xl zIO91yVV7jtApT#P^o0+HSxUmjSU3adE;c@@V)tvd8Z*`>r%vm7e%F5A?hf#1YTXr4 zUA4#VTDg!*ZMh?P4@p-YEl4Ag>=B$ErO`e*X(Op|xoHO8%QvggKf#uoL15rV%fHCj zu6;jdN16^C~+TBmvdTU>(8s6aC`yZ%lYHspJJe9V)#YH7V@=G8hnwYI4N$gXo zl2lY}*kRV6UalITbWLdR+Aa@6ao5yrxel8glr;=|mlCzsBzhn0r@Znt^SKt9-A!LV z?(G>;8hdK92x@90S6GSL{7B3&P;mGI91QW=i6sHhL~Q39U$XS24y#{DN?%Iy9Pwl9 zLbT4-cS_$uO-&stO>?-#u*+(-r{b%l-O9B@xDZ3ox{g5Wo> z@9%sn3;mBB;nupBy86?!_p17COl6@H+EJ(?EBI=NpdQ*Qx8Z_e~cx z4CHU){u2J%aG>q=J<(^Sj-sInM)y=r?-BJ4+3*hlDdQtQJzVLu#+oAA1Ae7uYG?a& zoX&AgrT16YYXM(uNme*@6mr=opo(N@Dot{|GDcm_)m+OLEr6#4jt^7l`J=Cnb{{`5 zIQ*4ntjZy!%E`sp8g71Ds;jm3_WuCezSU|7uT+(G{X?j=AL4Z*yKeSw)Rh&~&q&Sz zj5-oyD1Z6cC3fQ-%(m36mfMT3HfiE0>YT{keB9@L#3p~X8v9Yvp5xU;B-K#ZbmHBq z=>vQ5S2?X{WkVizuZY4aPyuG(?$2EJjiGC4qL5&ceQ_SQzSwKa zteSSR{ZB`6(;9+_QcB$|cA=V{zJj$QEK3BbStEGPcf&M^Hf}NRTukJ=SYgVbp0u@Y8@wWX{4dM(A4I7JC!SquQfc& z{p~#K<~d5|A-c6~3+qQK?$S-g#{I&|9as2Wd2>9>0>lr%_xh&~RsPpIb^icQUTQmM z+kV_>?%-aaG!(acJ*H}V?XD@C6A~p7M-+lSJ=7%RXY56@C}wbMbqyXEzQ^fhDz}PR zB?%OSi7{;4`t-HZ>$V@Wlh${4ED?7fL0q)|0BL6KWOUkw?%K0aRzs^b6KCIos^%bx zl4xWTNKzWlal*(BBRrUgU81F_F*5FVrU14-c3J9v53j6??UQn}zs+}FnBO-z>ZCQd z_7?h+)HcdF^{1%aBWS%QBy*?il@}^_lmoRANg6iYhAMXO3XEiD3asKOTIRl*9(;9m zt@s}EuTsWNi?4>h-^omhqRQF$NGz0Y{{z?`8(*FS2QF`ni zg0}Y$wjJTC*0$>fd8w$EUx;mbs@qy3XZGW&Pwpj(bw=2dM;;j!OB{kMbdDrupS~-qBY0l0Kd8^9{X6_*q!09XuvdEJ3mLJ=Lb$^<*8F z{{YdOE#jWpaJSy4s;TZJndw!jq_$k7r=YE-_OpOqlD@H9Y2+v*Hqn`my^C5^ReA9l z;kzJ}H2p8z?H!xaz3!H@M;5K5*R@@yTcnY{yHiPGf9~Z{S*8^u#IEPmirmvo1WgXDlR z0m;eW^VK8`j^WHZ=Ig6X$kwz0U;?YlEw-kIyvF-$ft1dZTWg7OuTcchgpxTMAm9M5 zqz|B~k&}*!XoQBxVwtCKil@c~-9AdseKvP7sOp8DdWhOKkV)^(z_~;lRB*(pRwr`~ zNCP}4dE~s+DEuL^NIL3GY z9OtaqjjU<7^94Gk+|eFWg15cm^s(74_+6}B$J9Ns(K@TTx<5|T*eo}@^@5tdd!4$V zmTPT5m;0$UKIf*AP|X8NC`M5ub*kao7KJA;2BSpg0HidMpO3r#iB#3W+Vx z8-W+dBKZfnKZ5-7{{U$(q7LVF=e_;Z?zWK7x}x>j>&~gDt+;9%MU>Rh=xX+IjG4NIr%^Xjw^ z7ST;-G>^Io9%k-sV|!l8=>Gs<9=?-Jc28Sag&i$*rorACTK!>7bhwHN5kYvi3p~{> zQ3UHE$8wNGx@b{~ZTipBdKQa2BXMc9xrNEM;Ii6786_l;#z>XG-}J(~tsAAZ7PZq= zT9-~quP<5xy2C>y)(gg=yw}vzRq72PS*B`pOHP+Ic9jEcP*X;@OqEx+w{MxjXHYqdrd(|WUrRvS6g;3 zRMpaon!2ioAS8@(cSuR{8<2xM9l`d;5rdRA!ry|THB~=obDsWZ6Px6d{r>=ES|*GA zrPj>>eYW;O_uKk;skDKSpJD(%Clxb0kLnM#{iwH4+&iD9Vz5oBsMfyK zJ?_sdJ;nx9WR@7V7jubY;Yn-|aB;X)Nl#hG=0$e_&~#gu#Y0X!S>^$)Bzlw74^i87 z8f!JTr=IskJ<~{QO(!kn$S01$bD*ly*Ls4xK}aF2f;F2X3>Gp$CAQ>{I-%7ftAY;_ zRyZ__c2Oj&(`!gK3q=iQwFI%%##tDG zr3en=BW@RQ01N@wLgDzO)VO9D908P#$nE&%%gkM=`|G;I&Dn6tR;JLBpvvwG6+>jzl& zdqeg+vHFUR+gEL~TQw%1rijN$6+AIqnih^KS)+9&W-bV&Pij>y$7=X>#`GV;=F#0LcGrOFz{dB2%pd4U+S!MM$iNWy^{ z_N%oT8`I8_(3igCYaa6Jdw-}KuXpthGA?p^28WpV?b+5FWb`@$yPDiO=>hvB|UXL zx@*nelB`DszJd1ESG#8sm)KW0{vgM|JY@AMwns6X%^+BVbLf9n<7!eLcpNSriw)F< zwfaJ-@AkUXJ=5-fjnvvo9Z5WQTaB8}T-MqrVFXZuv&jjYb9*SvLZ~M!KZuhF(CU>3 z#f_jwP5%IR{C!r6j;@M=m9hAsoq)c6YFo$X+qSnJ-sl}Gr>pf9w^DXbxMRA#snoYy zz||VJMBEIerjCN9t$ntkoHU6oy}*f;{+*aoIxdCATJ04OqNU{_qTHl(_rm7d-w9|{ zy0NaVYx!g(^8>Le8+UU>`i1RAz4cA4?;7hx*7iTto{^!V)?K{NJ)?rdT@Bin2c@dH zO$)q&~K!kRt4^#x$mwimkF z?^ODjpb=J5(@#~Vbv>?70cb8X5^Sxamj?zq%14NnAKnqqS&Dh8^ym09u#yfBHLyDn zb8ljiS)$ZN{#hH#&9()t^!~+b?|t*oI*OL7Pglifx813$BWYOgac&wKvu)o1H?R-KoUneJ?$gJ9wsfBe6a zsJ`Xup5*GgzO~XfXr$3Pi$?1zyKR!9D#V`0tgNpd>I>yKKv9->-)xZrJ*iSaMo9x( zNA_2_(ozsuZH~vNTD=mowrXcF$C5_ld=b$6`zUK|@4UAwb(-&BrKG)EYT@=0N(zLA zqLuLZg@7Qa06qeoWx3=WDhC>Q9Zx8;hfDq`%@2!YrlyXrnStzg$dBGo5O-#SSZlox z+SGtj-nEtfnrpYSR}_=mscGd_eWVgu*+w`d0Qo0|9X&lPRZ%*qyYAxME>=g5IQCkn z2n--P$F9~J`>D_STz_UQ&$u0*(7vVpFLsYnU3HBfnuAaGPf2#(otCFj&@3US?=Nl$ z;&~~YI#00-tsI%bDW12wRB^XSj6g4Ou+5KBK*+y-{g;_E&MEOK%Ju|1#C)s@JXS!s1t zy}{O0bmfSY!$SlqO(d!|<23;raQgT?TF+A<9L*nIpWP4phM9ymD4c!l-2F*bYucav z>BpoF-|D-af2a>toy_j;la7%Z$)`JYVxa9+$W9wFwZgJPTv;$Ss=yPLId2_RPgr4% z?w!Kc#jrv7sW9qQdW~Z!^!AQtWBteU00nBEoV@{l&c8tH_rAsUHpIHN7c!@FyPs4$ zk=%%I2~ka3P=YE@0nhv_QMcTa$mN=bvm@klrhA=Zi;;osEElKvXNISzp^iBi8zr(p z$v*r2ET+Dpw_baxXSUp~;@$g>;V7C5RmPrrxUQULF*~WjM$UHdIUjDRTpv+qk!GL8 zYboQUp?Qpg=MByF{{Sir_uhlHy{5XsZ<9<>*mZWRp^h6>2Ao+fwjmPCkxelrDS_@8U9^ZF0A-eYuP$S%Ql=n(1 z$fmWWNNAO*=2bAtnOSlh_)bUCPhQ^FHN85sN_|Xn6A5F97T)9VBdYOUjipz^#1YfI zfH|)nb|C($Gw97Jda1wnS3*qA{{X&wUv#I2xI!Gxv7{B$!4xt2rA_$8LHcq}j=1jx z=$~Uh#injck0)+Ye^uMQC2@>Zw2|o)q!7S4hR2(h-#~t-^}6Xr*{e01RM;x+c1xwQ zNRvw?rlGBuX{uZmMUGg=A;}=HQUfU=uo!{cT-H=Y;mQGN>Ct)hl0C9qbz5B{r7wDd z;a9A6g+)zvq`%Zjb8%M2qIQ;c%g-)GOAW*+Ba(B+9Vkf1z>R~-5jt0}^L0@_ydI(Z zf7@Q?f9dwEt+Co@EtjFC>+TWOyWFjlR7R3VRaXZJlz!_flDmv-;kIqbJfq@o567rd z$Enf_)G&R~)u%c29X^Yt{5|5isOo=*Re|<*e^>imx6{AXJ$9<=ExO|!ako%ZqAXPd z*-w3)Sro3)2~wwUVfA<*{PpLVIo#esf>(EUHM^;0swVAkce`V8wCfFHYtedsT`yZ> zy?*ey(ok8dC@U#VJydhNu7wmS_Yr|sLytM?`%2Slqo@+H{J??;1pfe)0=`%sNaG`i zD}fu2Y~6CBrgWcfyJ@34o!EZP>-$%A@14liwf_LWF4T0YZ17RgwDQnWQPq=)r%GF}!$cn8<~AgDy7PT~I~iNc6S8(Qy?)l0a@e+|2;*%h+dS?N5l>Uj^0Z8eXlzlp+d7v0L2FXwcMmQS)1T1>QFgJ2W47btb3zBXuU9ZqgGH{3^xmJZ|b42)x$5*6-7*9 zo++clWXJ@?lw{+`-I3M*00==9PQ6c0Ki$3U>NX0GiYuklG?}Vm``or3m&Mlx_4CPF zahjs5FD+e5OEWtY?hKtn}SSchU5n*zVS| zi?@BVxZO>z(H#vucfEh9T`(K>ZK>psFy|}ynMjN`2dT8wvB*QJAIi-1x%m%N!6ZD! z8*{(xuED=!U!#7^`h4xitMzEQ6S(?f+pTn|u=eWd-Fvk(TB}x5$@NuSX(*}o)5Aqj zReincWcnD18C$I8wJisV=e35+1YY;a>DhE%AE5g?82AY0lGnJ+hhIyrf2l1&CZyDN zTBf;4Z?>RmX(=8(_=|S%WFtRQpVJ#uA1$7DEY6ZrI}0w5Vth~Kkc;{zU$wPbI?Ww+ zsMhz@vRWm1BZliVs|r7~sVt0uMKvW~+G-tO z1`5%4N7P<~o|5IO+T#?Oex(h+OG8ruf@_$M=z6`5OEhv6Rg3|Q5O6p>R>7rIvQZPU z-1Huv{nWiGWLIN?J{CU55ejvA%!M6rJz& zgH~3xV_VHN*&?X?TvY1_q^*G?`hp~ZaMGNh-}L_g3gaC01}#KQH#I@ChUdDt)OcVv zH%UO-+cxy={gf)ydedF$q>|`AwU*l5yCtdHJ#xyx6i``C9MIRm4t`xD@I z-Ers@L~PbH=9wTbX&(Oot-@K`t8evMa=}xoB!E>-M%C2x^i;_WJv>zsJj7*ouI-Koi=W?g@@Nk3S81yHc?z{ctjY;ReXOC8Sht== zKwNk@z{iMHG?Ba)4aiooRdNscOvVL}Y=BXW2D++xCfe!$@~_`PqKrS*tYGq_*5CbfR43 zxJ6ZDsD`vttQG7eP~t4grO<i!R}ex;*BT|0p009({xt}m(lGl7PprV7y4 z0$kQPrtSwe1YmX-N^M17+fLr-t!-`ZRi@>s(AOL8h@sNfrxmsvtjuDTvddc+G*s2$ z;58JJ6A6(PQM-E%wb8f-b2p;pq8SY0DEHdu(M25vsASbzsvEV-Ovz``jfz@Z3QV;( zs+dwhBe^u0+wVrovN(+G0ayWpv^HgYkGaECiDNK0vCh4>R)?o9*GY8cew@44QB+nB zYUJ=x&MPUWk8aqiA*xcU0}a09U>p&H^$p!*IL)pacZt&WTYd!p0QrG+x^A?UFtbXH z6o=_U6R10soyUXD1_?i(*z=CLB=+c6XM+bJ9=20XP;AUhjD5u{6L8=!9OpO#^T_$? zwqhFKRQEVpRxf&cKTD+jWzzS4`y6!|PgH0}v`0ZHmJRn1n^mQiO5qQ+97kvX7F@SH z+*0b4=SdWvC8ZApdIXr}6w?_T-y@h?e^dVeA0$)MhpArTR9mVvewwSeQd;fy)umae zqV`!4!tG`&%MrP97a0sr0O|n(N1qZ*T;saC(lusj+Ig0dmY2E7RhvQTySQ2_P74=n zJM#?x>_t$yC3K zW)g{Mrv&Unyx#V{LB0JE3NHLzW_vB)Pt5+aRP}acuBnouf}TJOlhRw5f{KTg zWsfD)^W&y!G`csv&W)`NI47^~@<&U?RW$OpNhdFo_h{%3P%*bpQM$3a52zhqcBHe> zUn-Ug;SxB@fsV=n+>v) z9;kJM8ZWb2OSbj_2CVK^c=Tm^W2mF*p;OLlJ2+bhjHb=LRN zQEA)SNV}G26oNX57oIU8k-<1Q2L$!&IxQ+Vbf#&fd3kOAeyhh?ma#ngv$Ynw&JMV@ zrN2O^^Shc#;i0vzq0_aIto1f4l(ZFQo@m)>f-zX?qkMf{@~|L-mGDPgTUFEM()Af= z=FPS}$3nZ#nOz>IK^0_sk)Gi7OD@-H_m*X&{A5@GN%y6H#L`I~3lc^M} zb%NqeKaql}GC>>L)oS$l$^Kpbs=zevp}LD4RMlb&hvRA53TlM`l6~qFEK>7{0OJRp z*x+Dvo(tmXcy7E2Tg^`MX92&V9?H9m_;3E=)7sWJ37M9Yx2QhrZP+hHz0K73YU-U; zWs^YA*4-tomi4U+P}I~%ETz-%v`Hh)I{@EGutm;EZhF_#@IJ4^b+4+b1}b+s$C%~L z1meTm+pOhB9BDj1LMY=tB<*MxZr1~1b{V>}e)0CVNA`=-Zluy$HjZOPF4o%H?eexo zOQr6mYNOpzFvbYZ0>&_ipa3z+=ry_(28+V-(o;u(GJ2ETu4|@i+J?KuaaLD9IRJD5 z#{p9n`sW=iwOJ+>L_gg|pTaYdfDR9z0Frn(0P(=)7I_1@^erocVQu>?wB61s%E%*U zjZ3_6ztx6q*dzs0mLzkzPZ>GtEABkSPKo@)1xvmE0PkhDP$N!Luam*ZxgVigA4T>9 z7kzZbw2sU#6^U?rJp|EG$x|(vWTTp{uHh1byP62%i0v!}Cv0Hgb$zPQO(g`=7ZDk- zz`k$$%ENJI!}vZaQbWR%)ky;cvCQKcuFIp2;reLw`RW$kK|!o1 zTDz3i-@r)FqEypI3hoSy&-A*MUUz3ZK5#LbjG9=>Vn5#t&{}qu&#?$6kD4}sGJ6Yt ziAmauUrHW{&ECyu)LMH(MN_5ZqpG^xYG9$RynAq(SjtC*1{zTzUI#472`3qtDjH%l zNpkBE>y>cY10^#lBWojIb4`h`urYpp|cu1i#L)~OW@B}14pcW1$uJHC;T$BcDCVSQa|UeH`Y z8~T+KQih&~Pkb!4LEAryxLIlK^cE`xf~t-gDXkW$=pc@wG3|whG=X-fkEK)X_Up3i zVj)KpC2qpsg5`WA9F3`(T61De{dY)ujXzEJrWV?28*0rU%}i9wJwq^2fWH9b4i6qr zJ#+aX9xspp3h8dBe}!oYIN2?1nhMV>OEuOC+m#Gb8JarUk9{lZH*PXKcnB0Wd=JQY zJzP@h(U$)JHKezHao$;2*X+5AL+x=I!pA*BT&c`&N**>IbW>rK7I1MW&*} zv@KIiYiZ>m4e-ebl_cKZRBp;a3_-VsDtdajCv0~OaJU1f%X@B(^6C<4)sW9Mi{o%< zbMQ$Ax{QCcC%-y-wOR^GcAaZ>i_yA9%{??0n-vrmTTPCJB*=n_k_A}dAp#5_03a*R zJx}7kB6kqi#idYO@|yrU8)E*ykXh~o(c|FVCVg8|IUtuGZp)7k*|XT2AMF_ZqTR>! z6WtpOx6e+!g}O!DyZwswAL6aL=Dp@L`aew6Day1}Q_{&>Qy9oJ*7=l-NIK|~$nF{8 zih2o8^SOCR?s}ib%Z|q*xW9?#)!yP_4!dvLVZYR_ygTQwUel+mF1LEcro3FKiK(bN zDaA6n<<>O|gjEWNyFl6(3J-zLDr9t!^O5H2KYt~@f!-XQ!spMwz0H>Wd90k=*Zyn2$exFWP9a@AHr9I{$1w6R8hruHMGnn9nX ze;CJt+~X#i2pnXX9%hVV>-nzHplFS&qGQ>D^UQs(VfY0)Y@V&sw&JaGxXDWLkm>GL z5m6v!0b>j8{%gW=c*(#$XDf9H=WT%`E|E#0Q@53jXt%F)_gZ^{d(}`h@vTHQ#3j~x zf?`UgtW(WOPg zi`%^jNJ#1oZSAa%i@+{I1NCylI2p*e;i{^Z)OajDQ*&;|(Q}W8T09P?8h`{i01vId zc2wKx^H;;$%^lv#St5+B{{XdD%_|D1c;{KFqk$=AQWtl)hujBnT&U!NFnWy?JoV5> z^N>OOR~r?xQ0bLX#BlaGrr5zz1Gsv^vFx=p&h8#R_-38XT4|-*?=}WGSkV-ItUB#A zHS#i&-AJ|n06*}!pn!doSR%*H4RRjs<;)>w;GCi%2^|7%4W=X z{^?bp0PWq+o}|D`k}@mYTw|gl=C#H^GCKM$^SxPjhq7Jwy6eqbWbRn>(cj%$rL2(m z7qflmf?FPzyWg$U^3yHO&!|;pw@XV|O;Hjgvls(@8X0#eXCdAy;L810oxU5xiva)( zV)y*Kmu}*}Q;9qU z8Q1X6mo+UU^Ul)JL9q7fLc($OtwXA66x6zN`Ja5aY%kdQbzGVEtJICFUia@)>WdAL zZ8kfmq`qqHJ*Dl?mbcncNv5Z=Q%4Zxw!EJ12m^Bw`ccU{swyOLj4(KXZ*Bg&l_Dt& zEMyLMIc@yi&cObv`+Y=uM(tmB{UY{DvAx&Rt8<@4_S)Z9Xung+v^twhTkz2G&(jQkmm*q`1dT&OTULbEIkd#XFl;&`1C^!*PHK9`@L( zC)3}u?t`>7{lZ%pbZYJ}YW*`;q~M;vPb60h1XDg{mL^F^c4(2~D}>JV$N=#UelMD# zpj1RI4e{J4aPT8xE_78GBH171AMB6p!0e}PZ?^qYsxNwvxEISkNUyist7A(wjUF{G z1I-d|k-%b(13n03;Nb}c#4KPu_To34VkA0V}r2wRB^BULidAHQBS3{7Nx45kSkGEyp+ie zeMnZ?>r)_5%s~J!JdzH1>!4C_{*wgXX@!~Tn~##`wHn@~I|MVyfsM2CSL6Exy*ja| z*L~~McIl&P%{Ns^WRagTXU4J-CJ1KS@pVWmJE z$39=We?N86*JY!ZusT-hXR_&f{V_wTbp>Xlv{hU$dXGs-OHoysSMYPoBGNaw6iU?1 zPVu|Dk~5yU8#VoLhsLjjf_65x-q`x9(WhziO2$3ttW3XH!3~B04ohT}$DRj(bbo1N^rBI_mvGV}5x~bc?vNCr?9Qi_mYx`D41Y^0 z3XQ=FwKK+fJe(Z)0R8$*t|6@!!edpB$0p-ootol=6wXw9|3w(f5)~CCd8Y^5B_N!ebrj8s#6&(Z!urh$ly;lQwkJmd% z&QDqix;{{T;;V@r2$H)N1G16KV&$PzJrG}X*GJo%NqeFrrigs=kxZ0dX>NTI-gTot=6qU zV_InIZE@e`xl>hJZG|?nUQw#2fSg=Y+8ytpEtQ(yCefsj1Tb|0Nf!@pA4xn_@t$POG z6&k%ucR}eYZPfOe4NO8e6+ed}Gw$s|N%$v{2>1jLcpy6Y+UiC(tz!3s9C~|9Q6$}ANOj`3o_wO4me@}9ZuoaHm_A=CnEPg z!*!M82gysJPb*0Pj$Ci%O5XK)fb{j>9@=TGRibrG4PE=bc6xnjW~Gj$mG1XTB+qTs z2^ZCsIbE$a=RP_*%Z_TB|5T zE(EhLy_lLpV0eS)=^&B`ETDj+@Ak>%ah8$FS3qsrESwI<>Z;p)Y*N$6A!>IH90x(Y zTp0Er;sAYniTL>Y#jB)_TRp?f({Qb*oNQQf4ifv;N9_HJ*ChHMTi-RJS+v5{Q|KGM zpleK3`m3|`Q!APZt9(YZIKOmOtal1{C5>fN zDZSN+_KdBNPEHRJwJkoTjDQ=>83xW94}VltHB?niW8;6H2bbx7i>SQ|-|Zo0hTEpD z`i{k?@6WQ9-*32G;IplJAXHeX<(<|t;B7!MH(-V1gTf`D)FY~vXa(3!?{(eTEi|z; zv)DS;AK^XKea6;8NM)AV*7zzEM-=FZQxwGgD09k!bIAnbC*vI%sHiUU5nyl0)s43jgEF5~D&~AQ8yFGEjzOKD2_nOtA&0<}p({&odOwxWDqK54qU8*;( zi5?kaSxA;RB}FK|$YjvlTjR` z5HHnv)!KbVpF|By3rn`YTXhQE^|qs^)~l^$C26WHmPs!bfUt#F>E)p@#Ht1uU_uYn ze1pjxi}?X1-G!EBq5RSj*;v$9@5FZI!K)!^mZa{UnzHvvDjbO#vTEBEu9CIghxpA! zzIM(zVorWK=UhfawMC8okO%MTx|ai(#-Gh^HOhh=*OBW#c*a%LUTEU>n5=TB%YlbK z#BizfWDqw4jFMu|fyxE;TA9mAjrLm+gH%#ZL4=@|rfGnVZ>%Jt8IZ2m#u*dD4cF%Gf){{H~N3rcEfEjqAJK`X~qK}$v}r86|9S*L zdX+aXBH5lXsC0ko^sFbt;4dt`=ho|P@BEVj*SZ#MAOxUk2`_@#~ug(@s$P7 zj{_sAQnopTLmWAWZpCis^%x9oj%N#Pk^-?E2i@xx+(NKlt#vIkDMVX@Z!jzz@SuWn z0LDM~FV76q&rd7t!Y2}TKpF(RZ{*jWdzMj6~ntrJ$X|6NUN+zb3 zvH+qgmxe$YJ>`5H5rR4CVbU_ir`Fvs(Q<~@RMU{?99n%nRg`uU_Qm%?!+*BX`jOLC zFHm|vZ1m4nS!lQE&f!>Ir7M+cEmtU^T2mxbTqdYks$eM27yHPF3^X*HLsbARsR8Xh zMi1}zbf{~jbK{OowZB{b`>Ai-JtVsKR(5~YpK7LV_xfn>&vY$)ukKwvB;L*Uv^VRA zu}1~A^+=egw%iG*Wm6=Q)71!InwoqQ5@&eJOs3)*Q>{TJ7&6Od_V3v3Z<^}-A*xA9 zDUGhUdBEIu1RcQ_$o5`q4%X`J6RhiWoHcP(+pRTIQbRnnj`!MSSyfK?mkEv(dpsk6j$pluvWI58vRPqN;|Xv8*lJ?ya&qe?!&1%!1u4b&=}rD;yP< z+TP-K0pik{YOR8-lynkTOv@yy%*?cqF>r*Q7pWA%&!%glCzOu=0N7n?=1K!AQTfMgI->U6F+npg>tnAkt9iG+uirc8I61>*SMSVxKVWz5<78ps^ zokE~If&j}MrnX&9riQ1*r`Uip4@>@C)!jCOOi+^2T^s-AQkj~W|B6X zV1dfudy)wU_p;AWaFaCIOQ~m&w)tz_%-^ACBhtsyDzJZO@1x24f!!$kr*4)SJAJCf zY^AUTk0DW$Lo~n+&;r^k; z96=b;+sz}nMS#9;Z}Z#h=&Ev(ElX|w*x5UKEyksFO{Sub^z$m*lB%7OSkHvrkYsj6 zU#BE+a1U3t8tW;ld`f%^Sc~9*cK7vO3roqS@Z>*Ul^Z<6OUGSop7p6xwEGgBhGYzZvJo>dG9 z`aqmx<8ElNvC%Q7VfEjCnEbN4ci5Q@m&o?{M={9U9lBo~JM4WV{{Za9uA!*BcbB(1 zf_m7}u7ZO906|2OH1brM6a}#@mn=g<*_0><} zx{9HO;x`uCsku2P+rP|{mDF#h-3@E8P{XQbr=x4VRt*omP9$1nL&vwfI5{P=fPSHo z_t!QaS(sjL*XF)|&`_4bCwTKa@E_$)i8Zao>1QIks800eHFDT8eK-S-2;_Lrlfdg# z(-WdOH?oX$$cz5yweF(!t?zBmL>k+b#opRvr7)PPj>y!O*jO|0LwHsPmdL>1^+4%N z6Iv?*;6{HndlsD?L^qYVX$RlYHkudImY43e>gC&wL2osJ?LjR>VnWRf=!yiavMI=5 zNISd`*$u{esjF+Cjn10RVeEc~{3{Ab;(N%ZyI#?^LKnIo^K$gptYFg=^@6Xr+U~MZ zqv~$Vsa0XEE$&G{?vhA}$yNjrhJ53kgz43iQ8D!p3tzYvKFTrE%(V^Es$F==xUn|} zI8UCevv&UgxNH*!w8;PluSau=9VkjQ;@n zPRH2T`ju9lyYJmTyR~0?V|=&@`^K55TjqklS1G2w-6$#LD%90Q$Gsh0BX5FbkRf#g zdb2APpQbu!nPcUXA;YEZzt4ZmqN&qr80loEYqB!au^@h+;NR!fRwj__UHa{Omq_-` z{i+SRyAl58r?&nu(jdqv(mvl|6tj|8g~IYN<9#d-FEeriee?cT6gtM6rbKz_d1D(3 z-{b}V0Od~|ANxCX&ui~m54c)OPin1y>I&sSHQ!5HY3_K_mKJr}6~eZs>Dd^`cI5aN z$s?(e!z-c@f(u=eEs^MZ{)?LNw-nR51NK*u&D8zlee5?=i}ro`di8zUzgRY&;ddLo z8j`w>mI~Xpx3k(cHOyKr@=lEmbVin3K`bcEw{Tn!Wp;s_^*)KRQ`fdiR`NI;+Q8e_ zz1N=U>#8QN)&wTa?U?Rb~r)U1d(mZZadlf_k8^z!V-nNXAs04=42MZC0sC z9V^H_U@_S-Mrx;(wiXxNHkXe2R!MJq*{ac|pX=Nlo$T3kP%+2O4>;?W>bkXYhmpj2 zjj#Qea`;t3+4!xZ-_UdIy}eT>W!5)7(x!2vg)9}$*B#MU9L0$MamdvOc2*YjP3bq`5 zBrysPK69K3T}raHcM5uGOkf_Je`RYly(>?rqiuAs^SGRom7wi+c>8zW9TKVCEA6hT zsw$Z3tXG*Ue;KK1YYKrJ@d;mY05FXTj1ipkf+!@KI%3z?lK0;Cu{O7;=&Y-z`&Bt@ zJ6h4$SPOTzbmm+lqKY_;EX`3)@Wd(Ve-E-r_NLtIZb1GajQsg0C#|TJlS0W_aNr2} zh07%cl@E+`B_S^`OPX0dhcF$~r`g)m(~@@~#z!802^b^wtE*|X_f{0o01IH*hO0G&dBpQLPl; zi?iLTDkX-wB$7hzkTMX>^=ue#r<@QnNc8W+9d?&k;fCpT0`o+9PkSAm^BDOrHhf6Z zWzcw->Qv+TQjTHT{YS{y{M5AcO{+UY+)HJvPqosHKJWHo*L3c7o<5j;5ZTXLjb zw^G}or;_Is!D!K1IPO!jY^;?APSwu}zI6i( z(w0pf+h0^RYn^?%-4!Jsp4K{QJ3y;~oUgY^mk3@*Ra9hL$aam`C3dOn6{hQ&C1q!i zSw~@elG0DqVQQ-Ab;vaFMN3)DVQUZpw@)_z098dj+Sk3?(%QnBgSz)i^?e+b;7g|N zPSv)ES)XLl!A?s+$^#IxzU{z+o;vIrEnb*yQKs0m*c)$d#_O5taB4ALD$+x}O82sz z)0*3>Ag5XyXkwthNm)y4rifE5Ok_X2izgyB_R9>WFb^MYv@^-#fX5FhDu^`52x;?M z3d=MtPjBq{Hva&7)0a9cji$DMUbKxp(vrRE-H9RSTB4qKgl`d7jm)wD%@`rRt~w_L zSH7LnQ9L)1?r9gz&-{BTy7~&LsxV?5`hb*8LDkIoq(1LC;=C_?JUhNyd(Rtnk|497l0%Sax2!;9ek?RQPDxD)L=CM6h!Uo$qo_ zT<)wlRrcdYcc(@()m$OAT`6gvI%azIqN9P`4>FjUNX9S-&jp8rj<7nU(NtLU8OpcO zXsTS`)`QAOy|eOFIix>l7KoF%qw#vdZ#8Lk{pVXn9-^$gv~ja55m8f9A#IJcY)l;O z0YJb#Q#PWep@t>_`}7N>JB2jL2-#UIk2x45pIc;{9?H@CR}XEyINrORBg0WN7pt|W zWd$oU(m@osLf~V7E6rPI32WPT06y;7&sB`#-8uT5L`(e+GwN$)1sxq7!V7fN)U|T$mR6oZ5-8Vdsdo8w1Clz>aE_5S zv#!SrSD+u#+dCw-cUd*m_JiqsV-XI(x-QOIow(*T|3>a5p%TKjk22e z1@arMs#4JY8=>(ubGd=H7qG|v67 z<}aVcQa5h9ae3|zwX*5E6%3avmEy8Hbqo=J1IX+K@_Z_coSuAVt?U%C)K6&JbTT6Oh?LU9LNP0rkJ;Agf-zt$F$o*G>}V5+sz zSZn~NKv=(a`0ZMH$7`A@YgGj`Hq?S7gb=DWg$kSnQG>g|{7!IObAmc%!?L6}|`GQbg^tDdfDwEB1(hWWd!mZPs# zYBHX8c{%`p71fvQV(rP$zLPZ;zpJ1xc`z*AQcLz*bcbJE%bm?1If?9 z38!m|gTEC5wnjEG4&V}@S8V&KB5r>0yBrafD!?$v zC#PEsj&qzke*XX^pN6fjA}1a8_x|7VpPOat_f>sCtp+!WppAP$AiY_EuL@!oRT`n zYZN8U6Ft^o$tv!V!SNnl_Og%v0JSsGcDe6mWwX_1r`ruitgf@^Z{7Xn(Y6*cYB#2# z1?jJr`Xw9c0z~dAV}O}dMvt(lVmChzII0>Z{{RH9HjejWx&n6u_C5RVs)@sXMt)`$@?WXH-g|8^TNtD%!Pwux#vA%}jkVt+x;nndSy~QJ$l%-**m|Jtb@Nb;uYXsm^+(o(Tkvs9~`e2j{oZ2wusLfOg;e zk4vi2)m^{1+_bAErqOlQU22xOTHSE8-d3WL{vd^#c9ui*%FK!!!hNYQgf2!pW;yCb zSc%TK>*$HHvNsmmcN zCxC5p%s}mb@S9CJtFMyZV2ALJQF6Q1{S^ryW^pU+jX(hBB~=x3yDm6laBk_S**p1R zJjCMNZm<*TP9VBtjmf^jUyrAs+3}>b)9FuAzMyqgEd$x9X*DKJ3D;bB%}?uszR0S2f~pGIpU&{63YWG+yU> z`*s#q!(V36)~ydyc(K8MY3poL{_m*1#*~!IvOs;g)&c~PmdX`J=M9oN-gs{p>-;AWBCRk&glu_@;YagqSXJmY;OuckVw zHgjw}!t7iVsk#}zhP+*_&#@ofK&lNu_G_gqkvx$f#0E7EOi@5UK4bDqox|xWe0@V1 z>y}i+*<&%hToJPBale(GtRyg=<|huIwC`H=Y!%VYB!uReT6&|%T_x6Iewl8$zc#O^++ z)%7bV)IFH)<)(?5*3n^F*qLy~Y3U}8rb#jREM#NzJb2E7Sz)NtCx`z4Q}x|t_Qzu;Fl_siVXR~M%ei3aiR8H0Ot``NZ4s;=M9E64+$F`qY7##Q0NMom*9k zfuikk^LjLI{gi!wRfk5>rLB4M0cMNtNW$ie(noaf{lnB%x-sFezUvK1UoCBlo{|@> zth!XoBTqaLs)9i*?Jh{h1C!Te)HDbvTqL1wg@7Zcp8PG zy<>KNu)d~gdkLs%tD1tzr!Sg5`P_(aDJGw))%S=g;n-+|KTK5er{N>0G99NN1x73- zaS!m=cr@vB@i^572Nz!lsQ_E2x}U!c1 zx+jyuC^_@^o=g71a1!I$5jwLY4@YieyNj5 zTzkE#w6&V5-EErDPj{b2-L(|86z@`Gsi&)|rGcYWl1ri~+uwFk6x9L+BITmy`3oy|YrEeA!}eI=*6MMGq%(pKASboy$iO4U78 zroNY-ZQ*7+kSSscAN`&bVKQ-_Y*im?Fx3uM5=p-5@?BDelwq_l2Extd+TNY5*)9Dl z#W!@j-Jvw~)|#SeA-Tz|Z!b_{{V;$xQv8(O*~)>4E(o_uXNfGHlZJfvrW!1 zj_aLq4y@XJG2&C_b;kSOvbWu9tLd$^l(xEs3oqhWGLS<>y|AUe!^b%JJ!m+Ft*mPz zcd8rLL&ytrUU$IKc-$p#Cnjaa717v=QBaZnE^cOw~Wmn&1zr ziJi;!opRE&Rc~vwS>lZrMyt5ZEL4=#(5ez#k%G7zOE>sH$;LXZcBwPoVu*5|Y?XZ7 zCWbiKB;~{$iEP&W+nzrE0Cy2;p)t!9MZ%dAPuk``#7z~wU|oa6l{1n& zlR?B_vsGQ2d%Mu8}a7Y>O2>B#+MCcyLz;{jm0K(8!Ig!E{5%U#B-T3Z>MwHR|yHpyf z5~|-q(A$}64pOG8G}KY5mdX&!@{PH|Q<8E=T5T>C)l|m;7$@)A zbGP^TDh!~bsi?YD-6fiKsufLK^)oSPW|3UTT%SC)PJHv%ODqkH#s`;W##-WK=W)JQ zR{gN`&)bgFc0;jUyS-_@!TI6{eWm2bmdtTb@@qv>Pqepm*O2+|yg~I-wkfYbB zB&hIT&Rx{CgtQL#$v;dfW8Uo#r@cygT-I~YEOghaj+T8(q$)0yqK>UzFYlI~VBt2j z>k}`GE<HIEzj?o`pOyi;~ho^%)!Oe^t#ktL&zx?T=`6 z4|x9o3bnd=dfBwqz|&o#o_h^k=_^swTXBbc*83%1B&~s-w&u+qL)FgZ<>3DS z%is@;ap$hvStB0ChI_6N3`7?_$0@qL{w{*!O)Pmx5)tnGThJ+Ew2|}G4QM_fE!x>r zX$7Mp{{SQ$lUb_dl4#|MI?zH(3lC_>yMK%W!SXzPx~^^`4v)=DZg6aNKF9PcKLcgIn%kTO7PLQYwT7OqykEU1`rNc>TBL!h z?v@J|a;|-X)Roj^9Lm(rlsHt_$(_34#<@UCQRG^}U;a1+wU1a|N-fo7IgpJtl zJBL~AQLd7i(9<@=-(mGu5yiy;ZRomf1H@4C1l zRcN45P3|fK8pIEbVZp}ioM3!-A8MJt^^>;& zxKj^9e!!1QecrHH`|+r|rQYi`+g8xgYet~${nFiSv(Vh<24BTfy;U_toaQi4FpL=T zsx!1$(rWsfs7+g1&QL94)3!yhK>QXTS<^I=sQ3&H4kqW#k8mw;q4%sm{q0?gxRuqK z-_!oLq+964!uM;{U;M1qY8jE0r;vzXl7(fR1AS^Kv$!xOTVta$P;kuY!j(a1jdldK00cO*b7D)7EqSdD1(t5Ig z-4$i2;1kl;QdUz(P#Gi=&W`HkBrdKA*icsLo;6b)EyKBu!5a`x!!cXbp;)kp$azG5s_n^&+(yD0dff{Ne17C z^l9}bkvlX!Yhx|A?T^5C#TG-b}mQh5a6c;pY^$Q*OeR1&zjfHqo+tCr(+By^v2t@XX&?dNUo z^=(OH*B^`0GTa(cA-31n)3@%&VV|pf@q0KWd8h;Uwvj7Dp{1_WMzv#0X z$(v8orqrTk-pe}Oz&TA%s;^1cp3hHY?{$8%v(Id_YmrBPwOc79qne`8bEK9Dsz1DN z14ATG$jUcl0yksEgHrf=CYJ=2w6b%we@(1F_r86st2l4s1umsr+6KbrVC0Z}#yM@L!vxplQ=k(SADUB)KZ(nh4HZ{aJEj|zF}q8$nErtx0z zB;S{=7TOLje09d22pnR-=e9o|@}(bfwH1G8v?#9CT9$2DdDQf(TGvKmqM@+I?R)DJ zduMT}l38O?z-MD{2kz`O)`O;MO?xv9x-vS=m)=2yruEy;%vM_s5^!9$!|** z{;unPK&aEb8qRx!uWg#+Pe)r-Rt;@kT+Co}5y={?jsXgYLnu>$g4n^x>!@ngq=QZk zufMY3dS;gda*DtScTY~|=AnhodtK_S?7qz{eK3n`(zI(GY^V-Twe;=*!*Y2bW1j=8 zRZD}VHpp8z1LALr2?qjs9HEk8v;FXfxbWNK70C0t?WxCQ?DH|yG)Ny*Jcn8BhCFTcMIH~4Y;W|o@| zUiVmTH#0v#dtnzKgYpMI-A8WRdV92JEfcLOYUni0T>Y)N*K2Oq(os|`95k=1Xz45( zp_Y!OUC9#)TU~8Ar!p*ZE0VysU8UUdmbIec*S>DJL@slxKy~x!)i+(djtB2mEYyNF zw$G>TF+4_0yR*aY`)U}FNo2^$By+&ddZ6PrIOq}+(6{ql6NX;q>ahoJVm}1B*Ax)f zN?g3H94tMOsHQ}I2JC#C5y;LngN*gXfjt*lj9h~4(ho{nt0}9)$2Z`jSwk!l1=&8v z4}doDj5bbr0H3~0l15bOd>f2eT9;#PX7AgM>}X`UmAl;gcUP$Fur!|4T(jEb5(bS= zlA)E|f8`^Lc-H(pn6g@$cZ?q}{EFthe-|}PJ!8ei%SlS_Th>cu$FLry@74Ae)Kl8`By1dTU#gQHv zrvz2a>;(!#)5RlgTo9?r>3W0|k<&52UPFs*f5Y)s{3TVW#^<)Jgj2L!0(q=^UgqAw zqdum+Jo=f_J=?r$vlX`a2$WFCsG`%ijd)>b%En=u3Ib~B(UqNs7%w0OAdZ;RbqzVu znre~A`=2ex=5SQ~YKK*tq}S2_SVj*koo_-Lkf&Fr{SU4*ew3eCYD>1Jsal8?*4e4F z<L*CFjcE8fzm=<>b&auhcTvS4xf^=8%>_$+uqZ5=eIX| z;na0H8%sr}Cb&Z$Vxs=`d0LtR+?e8drHnZlAruu{jVo7dx}CvB@8A4U7OW#U($Lm|GW+MpG}R ztZ_-LD4`U!6|l6$1ZFbgWM*LFf&%?4yU!!(!SXQFviM-g<8O5kn?E~cCGMJT$)aP_ zxBYK-rnlDWTcps?2Ce)Z6{{}EPGpy1l#Qwag;&C%81Oo3zg3#K@x@Ds+A>b$+bcgu zNa`0!G|m9N{=jtgO^w4*-TQrIf}c*%9^&04oy^icsDcYx)9&3f+r7Z8Q!0jFk>D`N z^2B1H&10X{{UXz>7yBnI|I%|`tR+x$w=siMvl?yjt${31qQr z8-h_-HGQew%@mZk7TmNq0G`}a(oZAPyukZ&Mj3PHDh)!DQ)4^_0VgQ9_3P|c3)OVV z>1HC{OPe1~>H%u~6RP`psV*98SXplxUr}3jrA?yqPV}`=Df+$DJcmchGD{g`aM?#; z&r@X%Y2pfn1Zq=J@CM_H%u4e!%#>tn(7E@q_KcMF1X=fFp{o0dRosr>+WT{- z^<8$Oo{w0HTSt5}_L1&v(>*H6mGpXUtS9EonRU@A@Jmt=C7Uss; z-uAuyZ`n+4-TKJXcg-_qx9SQOf~Zq0HzRUQ$w1*o*JsX4HwAD&B#=7DYShs~BZxL> z?fsRL^|@!1G>dl~1{62-1*mVnr~7@bbk2miShV(w?e?tw^>w=4ZsL~l+$Edw6mkny zC$_0AJWjK*Mv{PF-m17UD;*7mjgFHV2btsa-E{6LO6xF03Y zk?n6YTfN`4g}M@VPw(wCyl+Q!q7x*B}5*w)&r4?b$lE?MG^tO;1U#?n<{k zNlMjnMqr+*x~^TNrKgIXHD-TgY)}($ASuoO%rHPkn1Duksp%TGPI>8{kc zLH_{F5W5|!akz814hRQ5J*#l`uS87@;0XpuF5BA|KC2Nw{YY?5t;2B7p)z@djSdV9 z4JD-B7(wptkqK_(b7Ghn$+)7rCsDRND9djA(XO?M?A&ka(bP^ zROVT#CpH12m%nX~V7_~Q*A-nX&C=}P7$>Xxx|TGzlmL%5l^m%!L}CT9MS0@>aK&S%ZK!x0r2y*Zc~G{jP`hic#yjeG{T+v`vQ4 zmv3^ay8Wi^x227mZ||0>pDq330*THoAE)s9sU0M5f7&`U5Hsy>&0}PD z7BaT=43F&F+=mmTa6K}!$sCdiFMA7RAZsMEwy3?-+UB9Etk{iI^v8eT<4}FHJARS4 zh9r47>N^BtXFb1q%P{d7n3mf8Q48(uE&6j)YD)T#W?8L9h6$y@1dT%g#X$4*oIEI2!ufJn|8>CSQV=kn=O>W+Uj zE&HKa$3@_NqDW()p1%a?N*XaSM&)OM42Z$ zBRCvnWVpP1v{QOov^-5lRMmM`8A%urM1z(qx(U2j)pp! z;`iWzWpD2t)8H=B*cb(|z$6Zuk*$-Opq0@XD^2EKuQcYK(1cm7P(=*3xmsxD zhLBM$M9uXxHWff^%K66NbNOSa&49i9rz5JP)N2GSZy?V07*-M6Tf1v+*6BO7O*>On zK?m;Ixc$OsU&CQzcktOOlY@c@>q!$@+Ezw73oJ!JBB|1k>d)77s+!tc+X$+hZFY`8 zk+8#gKat7gbB{b{rX0ZWWaMOnh2>2PLr7zZfo;dXf>aTVAD^6cRa+Qr zB(+bcH+Z^g^}RJT_E~Py(Nomb*#wpJ@Ri)#eUrVDBPudEIle3Rs)9Lf?W*dHzTX@%#FG1mdlihZ0XH@X4+O%lE zWl6|Aa6MLO%iiMeFH`#6cAYYw7qzi~0Xu(dCKFZnleik_)Y@!R`VywW8~zSTipniR zqHossR?9~+D>Na&{{R+9WdMKLXd!>u{WRGpQ$5#{;I(*<}SeW4ms_TQg7*bR zr?AS#t5RrcnPeG`pss!DSrDIQa5*Ha0&vaMbY3Eks(<12c$fM}+145PtPO69_E!C( zpE27bsQ%$k@7c4g{WV>zzN9-v-hCx`yC$`_Qd#>=t|>2RXq&bb%U-W=N0LbqAd2Bn zEHN5~Spu|58axooywMoxYod}FIYS+L9;-Q7s8#9IlRl3QEF$0oxb4(;Rt2ZM5MFh5 zt(MQ*uG#vR)0%#UV@FSOukT)!skJ0$6Kw1kwXl9!SfJ zfc!W7R%cH5m&Dq3oGGEMK24g|k(=J#0)PJi`_4MsQ$s>hE@_M-(#q6$XMPg_=0R@aF`U+s`;&J>hy@EtB}C zisn=?mKhcxY%(@mJ_-22tZ44xQ%d`nWEPihf5zQXU%YyoSWk4Gk44|5v(Zyg zM$$(XeWV3h%%N9sK5#e(I3!?mH?m6dbzxpS*Ue z*>OFi?wQkC#NB(Hb=MbIH9n!J?v=`!t7#%cqJo;1l7Pe& zm2&tkB!K6WBW>V-DK&awO7g~%En|~&pWT*js;SSB^%WLB(m8g(7XJX1Hxsuv3n^Co zA|n>a5k1-m4o9QIl88YS4QUZ zb1~K)w#VYXKhN3?>3h08r|!+?U*B~dcW|_iaqHFXy8fhy?v-^4s#=Qa0)<%WBTSG$ z*(TO1Ndyl}S5(C{Ypm{Ib|-Qz``LLuhMn~Et%sJyg3beAdwQ)8qYm5mUiaKvDeR_> zylVY>HP)Kdr|h;Hf8*~pGfL%|qlkSdi5PPwM4MubaK+S&^tM((r&7sNGxN}sPVyI;d z>sc^rdSNC`AJ}IEsQSJSJ+I>VDw=-904&@&=EVCn0=i8f!>K8p-{KWEn2Q$1FK_<< zIUpa9DYx|t`vN_2TD1MnyR!bRv?qJ&lXJG1*EVXt*J?_blol}3)wH!VZ@GyZCYBMx zeP1HBn~f;k!w#cP8|n?m<6~t$r{U(O2r}uFe8lv1#mBfLU*tX4Hh!bDAAkD`t|RT& zsJ_}=v<9@((lup0r&4L@ZPMHoa)PD`jI^OC?)hWYx|dSLY0=Y1ZqSi2S3{@ZqUPt&b6 z7KPEYmTJQm0#8^_J#2u0Nq3a7Zg%0$K2KaKvSU3<=W)4lC+qvN^+ugc$~tK2Ar@-| zzMG$!xk5I7`bjI>F}h?8l;C{*y1C)aGx(iJjJm)J`}PYb#X6KaexKsX zY3%C?{>>mTIQQ?ZVHQ2EL zo1K?7e-`PG+M({dcRru-*P^|?)lI1Tr`xaXbkwm&bkHqNru9@sT8{Yi)ima!+j6R- zbqCsb(8ce?xEF*H0btFFsbg5%#%|wFp&wPybRA<)*XUbcrOe4=80KSxf%%MFY<)uZ z(XS}9rOt|LWmM8`sQi3VlxY$iWroaufMtf^fH(wv3Tl|yD?B%gg0xUg;5bPiOshxq zsp@LuNgWJwSBi5>EMZ~ykGlvAFk@!U00W$y?s7javz3%mK`Z2^vqgom^;eNi9aTAT zZO>u(t(KwC8b`7IukC%y(exJE7iv9a>1(cw)*5n-F$I>xuPCE8iddpttZ~P5SgKwm zQH7pbji7H{yT8KjFMg#P^g5imgPEl6SUP|Ce=9Cg@f%5y(MMSea@S<_zxf|4f_kZe z+RZ&G{- zHuMD8obT}-rc@wb=#|cqL$ZLa@JJWJI1HG#M4C;5`}74e1DC$ zw1IMX1+kNo2%*TjyC+g;foe0fJzXahG6r$1K^rb@bvLQb`}Vg|YP~gR_1JWN64Nx8!=r89(U)~6 zYv*C;7cbRy+RA|F!6TS=#k*Uo>bmFJ89Te%ZpmHy$8fo7i-w=NQR^*Fr(TvjH4V!9 zOAa7v%49!E!6{mWgFer=$0GrD-n6lfA)~U($nqRq+zh0LbFNmZdE<(+P`xPH>oq0X ziRcgj7zGWmDzX(TgS!~x;Po+$bD<;z8b>g?s806k+NZXgeH&6sPrjusboDSTMDjw; zJYeH`wme(hd_(<&m=XxUj0-F5y)YbUF)y8gSj z^|2)G--lxG)5#{>?A^8E8NhHbNI3w7a1I7WFI%HERQ7~s;GdGw(NsQ_j%gPP@ckP1 zEp8pexlcn=B{ip1=?9^?MIly0RYkU@l0sCRoxh5Rvv@3{{9RA@U#-m!w=k1L3KQC}KrjYCnp0JxQY^hD(R|;nlL0@{SMQx3< z>1C#e2nfjCBV#^#>Kp~33OaMEN<8ulH@I*4T#w>rwks>*(%?Qw#ogGr{_LZF?6>U2 zH+_9hY0W8fv})Uhn%_eu=CWNI+zL+D-mMlp}Ew=gqE1q0lP00h#3aZ ztQ*MlRLxDyl$nVD^szs@{tJIk!uq9yM0g!=G5$wH_Gli!>-&x7o();s8)l}q!EBD% zJ-<^B^vtpD4vJ6rZWwJYBoFm24&0uiO{`A@Mrs;@(hc!(g?&lGHSaDJ5rErUC-?L! zz%&PEJ5{Wx^)8;Z_6tXLR{dzTi7277)tx^{cA7;hwIL{#BLUq9)FXD!$N+<3Pp(Z} zRMRuL+skr&j@S9D-l0KJ!}EA=eZ!8!7Qb9AzwE#5MzEsQ{-XPp+zTwW8tW#a{{Yer zJ3&S3yUkhDo_8 zwX%Afp21?cwQWRzy#Dn()cZ(e{sN7XFns*;jDhs9>ZmZ%n@9J0;Ka7lHYDna(gu_-c6@^0B2O~wi1fHR%gIr>^i)O;FyQoAQAmr&HHV8uW5 z{Kv^bp6vR9nR|!W-5IKCWRmyYzVYdu9jA0B(_d9xOHqBHj=HYp2h2hvG$H~DySr{u z3F|?@6tC6wrqxUVWM<^s7wA3upGC{~>xt^=Xc-)GT36w%+QX?f?bFqCVc)AgXL9va z8WN65Iz2O0uBl_z^%KG;r?=^gQ#`j=spA-3^TLqO#;5830FMJ09Chttt@Kn9Iu{Pv z_1@mSmnG1k74?mEK_raha(5T^JE&Re@6>&$)Ly9UC1|Pbl;67T)GERltuf=bceK*0QO*T&v8pnFP}@*prbR zINICCoNoF@Bmj2~PlIB>>w-=FRW!CPB~urzPU=$2d$RV@(O7B{)J6XQRhm~m+?A6k zN=R7elMFe2d>WI$@z+7&N<-nkvO&4Ce^dH=moMW=@al$X>^N_j+qu{uVfm zJke89$x~A`Gw%=(tjG}OY2|lg!khz)XFY5=d9bjAfI{iRLUudT7PswBYIcv{`oe>3Xo%EC6EEgQVGss%LACc8->|s@O-;w(4qEsan+q-ONhwkbrG?KAxtd zTZ*CJ^0Manum}5<&Hf|SP|$EiMLpUin~|Zn7jYeJz6JAz$-i*u>~T*^bD*uR)%Uf@Te-CY>3 zwmE|Jr*7~`YrI1X5Rz<(fkxT%ld+HK$3;;flGaIyoR>|#V!>XfSXgh2Z;i`r`gVc? zc*q0nGu3w~B&U|D8j0z$Wr+Jf!5pe`1Nc5U@&1RS7Yry{7+YIqf43}%3YB<@AW~Q< z0gie8A0IsvZ)1cPSXxii{n8Ij{l4rrv752I$gI*Gva;X1CusFMq2bgvZC_=tx6`#% zhS96zo|@rosiCP#$myY)qu7&Yv;-{>2X!1|K-RJ39#PkP5BODrou%dNxHmm<`|hIU zzWt>&Wyw~T_IGIrbp)iy)t0??t*SJHPTZ`^ZJMd$DZvCaNm0g5Jd=akJo4k$bvv2P z00#d6pH*aDm~`z8HCCOr_eW6LrK{8$^4n#g?Z$_=M!Iviv=ue<@Ju0s9nhu9tbt1# zxh6606Z}UoYNT{*bdi1F4ZnV>OF?s6Ve(M_0MIXP?3!QpuikXM1!`(dKcf4ot8AKk zP)Qo4HC#43gb;q@EDeI+R+T!>1$@&%5_-)Sc8&ctt(gNsX zzLm07-Rm5&45NJG+AbZKj2)|y;AaDqlaG*ddW-q(%D4Jf8DKD?4O_y}8I(sRLq+Zd zbz(;10rGe`JBS#;&w@J3P5>v}Xqo{R2MbRfv1XYXB_KyELP57-Aqc{ZU<1e;oN^EN zM^)0Y?gy%H3@(O!F6$Vk^x>dwX;z`EsWzUH5QQ=*DrJr`Snzj7(H|e;2ab#FO=Tf~ zV$RroRYh);$u&>30sSLBszzHc);FQ9XL#x6{5cy(($Zv*Khr;--{YxN^%Re!lbl)B z`l_0m3dri?4amBL9oM0=MX9ZN=EwMYdx}-VX1~U;llaPcC1~mD2n?XKGC9sz4U;z~ z0Ch>A>#lWh(}V8PYytk9ruegm{AveRHK09>B-mt)^XslAcyzd57de?0*bp z4y3522WJCsaF`C=Y6;eYnb5=x2&~HkZBUs73FkZy92}FzIR~A@7$hL%uB^}=3tqK) z+Vy)|r52#G*Hl|CR-4T&-otRGd`)htrkqbrEMp*zu873v10ZWmYs858y97W_}p(j;F-DO$1e!`z%M9 z_uCsc*6XNzT;p9AgE&T_Y8hHJ30r7`e)e~Fpa81Y^=I7qF50>}5hO;NPFtF*`^b_g zYO3cS`!xRmm_k%|@-RRE6W6yUiIh;XnSchgV02$OXr!LK(%00ump#Wlak)O~mb-zd zVw$?;SSq*8Jg)M^PVDU)vB8sUn}VS@ILW{#2RwDp^%+5x@BEhff)n605ro+Gi?*7# zyIs`KUAWS6Oqz?h+S-Fc*n~1Paz!o5qif7m@T(L{B(2~mj1$Is&&@L-jncbd57lX? z;cWA=7mOYK0`FRxCB(Fqp3xpxi#erZ&zf|2-+67G@nwWcXMB+RejnT=RBVdklc^TyM z`gMYHL3TG?Go9BLDnNGcOxSgXnAF|8)XF2WYyCN2qpvRVm}FRMppu-(q!7yS84_Hn z3=B#^`RR&z9Zje*rG~|%XW2&8A`;S)au+(Cr_ud@(RJPS?Z2zO;Ol)g+zl_PrtS5z zhR(W*zTpq<@l#J*b5y0b)zZ|1QxsAyHCxiKP@88dA!z&THLso+>RD#7;2V4Y0A!l`gFqKJ>U`b>cz6 zQb#$!-Qyp{$m@l)gL|&Nz;`LUlC7vGgVybw;&jx*Bo8l4U; z2FO~@`cK-PIj&1j|&Rx)VK%Sdp~P1iPEyPH9F z-%)oH({FxldOuge+Wlp8(srupDPgq9@UUcz=)Ro2&0cKYs}we977H5IyU+}f#eO3+Vxsrp_mp)}5lh&jc-?iK`fXtBZUQ^Rca*{3`Aq3Gt*@qQLi=APwlt5ZdC zwN%rPv(ij}WHfH2To4EV6~JMdD&0C-HwMYp#{CHH6KvMBy7)|##D^2H=yo9W-9vu= z0Cy6a_h8cfo29hdVY2DFHRn^??ldwnu9#iD<&u`FGR7^4{KoN>Y)ZhZ4X3Wjz}hpJ zMm2Z7<>J=uW8bgQdCTHfy6Nj1q&1dgX7|1g$8L#}?0%lR>RWx6Rj`JePxh-)O{uSU z3yErUiVwrYTAmhS7DvZeU6_DK9d*qkNqqH8tRHcte9iBV)pAPOu^dl<+mUrB zbkBTguUA{9p19njlIc}a*BV)6z=F85w&;K1p)%^`ZJw>3wxmXJt9q%KZ!yypRPfsA7q&pmN? z;&5*&?PcP{C*|(un(gJjf*Kt?U8yxjphVjA?-VqY5i@}Zc^K|Lz!-&BY;wwS4^`FF zF06ZEaj+iwP-`j~3jhF@9^a~!osjJPtGidaJwe-1V}2Skfd{(XCVmc{#~x4iz3^{CcW3qxnM zQ`$_+C63=mXf`Tzi*lM_B(ePpV=PdxVU@rjfz(+mW`UNKjwh+#^G#LoeO!|{)YdHN zYMGB%8fm$-S05g-5?Tmm&Q|T+|W{f)i zPNd?+XX-Sn%2|HRBTtAr4BU4XOoMilSL++v*Hj9%X_U<@Hwsy;(X@_05yepk!npup z!RP7nKrF*`Z895=5D|Wc{{TFt9S>BWA~FxCBk@gz*j_tNt)SD_%e`G~x_a3j8XM)J zMZM8R{{TaiSn;aVMm8~5LR~_zbdRh`?j0<87rE3h-KeO8Nu%{mzC{<^Hx)?tp_YcP_*$M#xOzAK?m}B=jmF{H z_Dbk*o^)^HOqC%Xz1z;Ff>?a(#0)(1NI`1L;B_I7qwGss1^%_Zl_72 zsh-@|Dpa)Al&hqQVnoUA4UU2R$k|z5H6Uf}a+R=AJoUnx!c2|&^euNwyXFQJsCQaf ze}C1>33%m(vF4Sxk7Ta$NKnTB5HXBno(Rr5=aJdO-FJupY+yAg`*0?X`Dd1K6!BJ+ zhF3A-Spjt?A&L4%PYuoi#sMT}b@l+SKv2JdM*jI$)L=E&8(AnlZ~AoXS9P>*jMd%L z&^n&$s%#NUr>$MY?XBiLIj*$TG=-;zF+2YNcQiZ1%p;gFR%5ZyHd=>;^)pF1ic2}C zHaiuhii1R~!|gwdG+jc^CeXUm%F;6dxfsw zRDgu5TVhDiO*-yfk02pVI=9uext(T36C=*-89tZk>Zdn`_;Qil`e%seVE+I!7CwMr zmG`LY?S6*R*EF(HRm)phOZW&PvBxx2)Ddi7a%PcIMU8}Duy^_c5D6P_XlUbYM3;Mc zjqhWdo2e9feATl(k%B`;ZGO1lAYY+4POt3w^e&q6+h5$BX{s(78?=4Cw0{2X&bOq# zR@P}dO&sLQ6$P%_DKX7;tsg}+DfEUdDFHCAVA&xZZ5~-%C}C#Rc+O;T2_`dO+_QQ`0U(5r|i)y{?RM}@c-ON&C&ON}fbhOm$r*7ow)*m}79mALw7(OO@!y{plhsymLe zyJ{NEO=qRsumSl2f#4cS*ttt`w;Vq&JZ9~;x{YU4YN@VCYD$WlcZK#;KjIWXRXNQ&t+@-6e()YN32UAa4ZN@US?8s$l97hr{$j)VS$T=7o^T$?tAp*Iw zHy|ue5(74wEG#)YeNyL4dbjQOrd?}Yr2CJhb%vX}>m55sZKl!5r)t0B$|Or8M&tXY zc_(=qH%B{nfIuX#TPR?wk@8eQ800u2;A6k)s;VQTsH3N(mBo?*3r{H~;}+ZXPPO;e z#tCo>FAjKBJn{B%Cbd=1#02?nR$4D&rJy`Dcl(Y z2RCzU{M5>=1525rTA5v8_kbjTfBN+G$+C?d-t{S_{ZMwJx%wko+P&>Fsx*bhf@(^L z#W0MuJdaOQgs5eBfM@dBj($LO}R`Z7#l0Bh=E;0xQEB4$79trEKO*AH6R*Wy1uWyF% z=j@p6QQbQ2Q904t4JDF!SjSOuMKXv+O0nECju_zcoNy0S^K$|j7_mLoMx#>sL5dcU zeyPOM+D;uUV~WltGuKr~_{*(Sgv%)`7x$Wgg#S}P03A< zeeRgi!q-h2xVX*rMnOP={{X=S=NS5Y^&Y-pSlGvV-`PA_&of$fT>AGnT-@#b z$GF@g63!`Y6465lc0^5#!L|{@5)>)h!m1OKlhr$=bc2|6Dn&gjVm803IcC1fmWy<< z5hJxAuXdKAIHSaYx5*>B41isiAe<4B2Ti&`8?)V63VwEgJ%Wf`{{Z!A>Gt)iY!*F1 z>JH1IYjmx>?55pjvsdaXML2mHO16?pRb%fnBx*rdQn4=99FDJPD5|wqnPR6Ug8-3W zeXqFn3jY91cBQ1jYF3-Ln~>`tpQ33!6>IxHsGnRqQo-8UFS2&?w$?kgs<~==$rRVE zXEik}u_W`v0W|dI+#b{$os=e6l1LME%^*Rc_*Mc(n;yV#k6doM55qc&!^8}!t8sTI zB>H0AebuQ=Tl>3LisG&w-(1Nb;*T)>MUm9w%Z5^M<8LG$I_2gA;TYGYC$5Y=uP)o7 zOKTgcyWQ5HC@(adw?NB>a*1~Mrq5h<>~0Buczvm zDm!sePfI`Ie+O2gT7b{&O6;w=HBxW_;W-57cfsSU3UWCJ35wXuL~kQ;`6rUuL04AK zB$5_B*;5o}=s4$t$iZA>4o*+cN6T@9)I=8%Wwxx0v4S=X@}m24DyGo6z(N)c8%D2uMokjU95sF^!sC#hU_H6kr3v9A}ZvPb7KIS&1C_c?69aNvyDzi^pyKfaHo|=xD-*c^|zm}4z(S(rQB7vY-WA=ts z@a5T9XCMLBuXtmNDD}P*ZCU>SP&UK^atIdBzU#@_?*vq7d`jp8iH6|b*0?97w(O*4 znQrIzhSf>0&YQhMVY~*CD*J>AW3L$Y#JstEm|TOjZ`@nwu2-qmR@HOXv~vbr8(<4` z{{V&7bUg=8iZ)Y1Lpip;-ZwvAs@vat9jhq=&pqw4w@R;X!)Pik@+VIx3~6cOKr_!siF6$r*x&AqF7Bb z6(BAbhaNva9(d`QDPUtufC_smT_eEcx5-vlsb1c`gs|7%8VVWg*NOLB6WSsQdWl&; z5+NLJE*o$JRy#l_g)@r5wYuTtDSMCj}%S&Og80qN{1k zTUtY?(Wvz%o~Ei;(Zxz(-bgXDf_BIV&(wz>Q6O|0O4`U@9PYR+AcO7uvg5ThkvKVn z`h|%901A;bzOAF|_O{k(LsbRCPG4^F>2Wnmds0HG0hUdz!ne> zKYRo2-EwM)1TT^{XQIB(M8C8%R>P&V*J*W@r`6I}sp)ED)4In*YHCU=@rs!Yt4(nC zqAcs}AwepYlQEVhh6i01gNfw4anxi1YuFos-u+e!P|zWJUic3yobF?Nh5HY6ZvCe9 zDcgNdQ%n2S4Oyt`Yhi|4eJfrs{n@^}Q>kcYsiX-F1TeT5S%ZYi5Oc>`Q>aB+18L6r z17q{T#aB>PQ6Cl2`2n{z?hmlSv@I_+oiy|}YKu))oTrkP-;$Q^K}$sG771}t6f#K| z;GBZT=RQYORUz(^lx0~{82k|{t`DlAZuR#D$EQ25swAbjNPBT}y}i!GbfmBJhSH0>o!7s=Pi61#hT7d`ox@a()X$Kyq#nbi{z%@U z)m^C8)~H~q*D%viJv40a(?>}$ll&oBn|MwbXKoHh9bhA;tfi6R;Pvjk3kI>K)l)|3 zrf$Qx>ZZS?F{ErAylFJ0${W3+8_e)g*BWSPx2Q;xMB5k%kXN0!BLHI@bq=6QGn~mq zjy{VAu1d$&lM}g{+*_x%K8j#d&rNlp5_^dxhn=CatK^&m&T)??Kj+dRrsXy(EhMF{ zBqP=|dU}Y87g0@62vWh59_D_N=is-``SP#}9d`6l>PUQK9-(uc`$BtRMcqp6OW1G1 z)aXyecX~=IZlu)|)Zf{9m8YD0Qc%-VO(lH!6(M6$4112;GUo@`65-MI88+Su)SdWt<$+`U!>%U<^`w#oQQ z&2qmHP*N@(si@&!rD6i zdk)Ibn^Mm{DXEOoNJFEz z>Y4>esHB%~{{Te#dleg5(X{PqiO|+ZgVxyvJsy~Qd+GZ`_MX+Dw0@Ji={*ahttqD` z?advmRq2XKl}OqD0OPl2S*LKb!z|1h+FTvX%%{>CU0$EX+EXW#TKIE&5I<#khggqQ z;Qe;g@AHhbi~`fswYnRoAHKSOPx^`O{{Ut6-9t&J^pB_8&DP_i?zdZEqMD|%qLfno zFgh%QV|z+kK%_M@^4J7Z>+(%QKq%vJA=tV90B`RK?}g)KcCh_SFgF)12OP(8KXyrd zVH%>ml~Q}MR56{D1>cYf+*betmCgst41vyhjDfA)cBmXk7Ey~@OA-o$9GQ_~A=+ZD z8zGg)I2pkHB2EZCI*m2NSW{e0tQPhW<;c4DF7ZylS0kX1Cb>n(BG~0C}YT=ddZi z4gKhS_#hCwE2<*` z#9rNghx1(9OVgiEFsG93ZS8;ZFq~~a->CJa1yr_Ml|(CF69-x zU@7E`;1kyws;P>aVp=Xi{8x6;xMB*Z8ut)Izf2U5itQrTM?U4Lr(zmKGB7KG0V|K; z&PF)r$38mf^zwML?Re@H9Yr{TN5|Nd{{ZQ$jlQB35xPevM);oqs{_f;3QG_?`N`z+ zI&NTJXDa8l{S(P=s}s;B)@e$v=V?X?6XbmO{+xAK?qE53s19cT22kFGQ&N2)-dT0)&CUvsgXTMMEkyROe zIUr?1j=_G*o42YRX{0q)t+`cL`)#Q-+Uq-;+VAk1{Y0vet`SmtRI6+~s) z+=JIr;aYFE>H|-xBax!yUnDFq6bN+P9!*-Gn7EMNK;zSFSy>H7?EI_JlG12B5pS{f z>rB=ik!kHAYfEi?!kRV%b#+u|9&%N3&oj2{`N_cTbbn@{hrp*CplmIV-@4a*fkBx%k8AvepoM)T57H$l+{E&iio0e7cv4Plq`pH zZ1CK5%lNlTWb~%Fn0t5j{{RcDa5k+hbw9(Me+}6K{{U{kU(6&``&qrtp3!ljwoOF^ zG7&6Q0621pG^JQmeF#e zH4`l;nGupTl%NL$ObHpl2aI?-ha;TgYiK2))LCCbNPAs-{)gRY^!LSCO#MEkpvLiQ zTd(+2yVX9u?pC(!b=t=j?*9N&r?ux`d%2`eEMt-GP%gn z{;;%jdLe_nI@0qEPO|O2qx%c{x7=EJH66l|0Ts0rc|PoKPq~QPR-J(d85li7hhHZb zJ4~h)iN^QrH$U6lt;GirQd4lKu9*J-F^%Q7bFlm}xk}dBw(qU=excQO%EMK4zT9TI zR?JRWrJc)>&%p3Lzz(|n5jF^03wCI*`7R4pQ6*IFsFeAfNh`Ha*oo;oOm?f%We<0@ z(p~k(e}Sy8t;+r$j@wO8@Y7qPkU7c{hDKkdnb~uIqpmx~wNBJEp+P6zWreP7ayKA# zU2lV_1q~x)!E^FYr$D*_q|n-LN9p}1EcK~hS2f&RFV?xJl50#5E32r9x!f2t@c#h9 zRH?zi2-bK32L>~HI*7{5%RIEC9b)-amUd)ab0_FYpWLf zC8CB%D{IA5SIVf!>5(CaXE;_|f1nDga(?uhoH&M_SrONmkP5T-y8Rx$SiRcK(v1NcO_hOIaZ|O4y{j z+$3@f%RNbH8Jzk0QDPa#$6bp?rhc8I#|)S@zt=xi#wv)e)$DT6ZSo2edVscBbsfp> z*HFKRpr#N;@-Mj(qPw#h0Q;6;2tRHJ>b`Q>%cOYEb-B~;158ojssMK$j@9@HDXCJ7 zQ!HeI0ruIK_}B&`AeK2GA0Oe#B+<@eHv?s5xB=U$;Cyvl&>bHr87Ch#RZ{+04b6bMsO>M^?N8kw+Ry3oq6zA5Nu~Wl zX=_%WqNdGqBGTO8V3Ea~ZfDLy@LR{+X%` znV|B3GhjL{=zG7;6LbZJ%vxwj1@ zs9cgxM$v)>5kcF4dd0A{g6Xvl329uN;oF+ARpwYgq|409^YlM!BiCOQL;7IranBzsvJfM{>N^ z-Yz!_z0#&y+m+6#>gy_|ZPHBgHs)qO=sr5?@y5uQBaB!D!)BUE=5*4VxyI!CrIv!# zl~yZ-L=nv-beA|pHw8`=l}R9BGlgDhPyt2cHRxvH7Dp%!A~Y5 zxV8FU-`8a``!A$)Cb%+cU1zHMW1#hIEpVE?$A7o#O;M|8r(b(zNAAmg3&$~cj4l>J z#Lk5MCmm*HG8%WVTmU-Q2YLcd{{T-#&?qZfM>(f1mie%Ah&{*yuen?P>S&(oYMZ?! z!pp5{lR?`lspL1ymXEmT>g$PBS&US6+PMu%`%S%l`Sz=A01R#d1swWa6i(-iK00+g>l0`|lTLfU7 z5;u4R4ZTp*(FvSivvZD$H8!Up9HrMiJB0?nX$6Ak-9G*3N@%YlhgZ^e64_q`uC{Xw zbpDhWmg03xF4Ri#wIM6j`rHzgQu#{U4|LqSy_M5?iovEYI_@e8JzIVDDet<@{{S#1 zddYpas>WgY|>QOrEcH>E}8}2DUY7-h*T9w3^QU0G$tRrtS`#)G|kH?k$Sl zPaR&Pw@poPq-d`j@Xb0;ML)M)4kl%uDCH6<$iwlDnM*wzbqiWX;9D2JQ{1hu1nL#T zPW7#@D#JaTeNh<8QYsp1T9 z4cf{wRZ9$#oXQp0GRX$^8=Nsbl1a%2!6V1qjnuQY?keS%vNLP;V1kOz|U*~t-fZ@JDC8Cf8x0%*BMdni}jt#tHL+^Oe{f}}G*@iG}2Jmf|cV~ppV zjlARX>mi|2)kCYYu51!;FYB^@UVSI<`67^REq~v2V_E}U&8WM3qcw#Z!zKR1rY-u4 zt_FNH-rp@U!t*QcU{5pA)C`zPyD{o&yKU4Uq~u+m%O&` zVGbUaIs6vGfOQc^t~M9C&5#!S_X?pqXRjlIo&_?hx+17)<=#N{!6a~1l`wOReXxIv zt~BU5WHJD|)O8Ie;HNU8^9{l(ncg&J+3tdow1JQS0x=vAcXH_DUU@3`qL zFp+^rr}WmJQ&eg{kY=bMuAgqFr(A_Eulf9MA)K? z2V}a#cOI+CJY~eS+(oL2nWZmhC}Tl8G;A&1QManiRU8_Y?+BUe6i8ko>>`n;W%mZ` zW9p1H!MNiLetMV0)A(Vo2S2KjpwXEi4z+>&zsjynQ+74xdC%dhD=7;fdKsE3gjRL| zw;>zKJtm@`NMPoYQb{=S+iQ1D)Z z09QldcNjGo%QiO&nY0CYJ(*H3VdlfdEMy5r7@y4Y268en@$<~*JdGqS!4PS1PUfCJ zx+|#Vg_rQ+Ws{OOFeHtm88|ry0Q33t)qgp|l&RxvkU6%^m45oi^iN^#FRIH1xze{f zc(qr1w8_?UX!_fH^)y9}$-IrgcW;NZ^cvQZ`h7;I zGDzKkf7)}8KyiOn&hAl9eom~N%m^1wNa*%snXUBFx4>6 zS#7mxmJ!=zo@D|?SRO`_8K#hKWPPgca+w>kxYRU?C}~}%#UOhNPS@;vtTv^@bUL=7 z7OA8_VFKL2+j9fBw?aP^8me`@HEc#fB%zi}2auGMG;HDHZg^#MbR*@XBjD%B)iG32 z)ky^Hu>^}9*P$tlbu{tRLP2AIHy)uQZvDWvP}5Y_R6_NI3+r z3P`}g#t%-?$2C;VrG#DXHUr%^QzTSyKB9AGG+dt6>Z-55{p+7u)?V(>%4P@ID6#r+Rd-+s`aQoWwq z^b{7G4!^O`)%MG~lvY;!Egi>HS*4b~Du@U1dy>#qf*Mjx-og5x+HSai8E{e4SSzA% zdwGjp-MvNs09D@p9`Q`Iag9E=%JKu5eTdlD{y|il{{ZTR99N zUb-^-K{Vu;W~r%oCjS730g5q11Qrm)TL&QBTA0x$=@tgRXK( z+w)B>rS(OvZg+0jXuDFwZ=}2TCWhas?{?dKX?VQb=%hCa`ZZjC#Kg+p-?r_HZA1i~ zJrThAL~&3>42%Q;i{#vIaq7J3#ual*QzcBV^ApqX%CYTXtZa4Nq>oPa{==s<-j5X~ zreUR_t+(56u~mDN?^9JxIrq|aS5=xigYHKn@>xPRT~-PhAZxrJ19|{0=zeRONmVoB zCB&aw-BuNcR#(zoD7MtrQQWQ7GEz`g$5_9N-%97+NZ*$CQMQr@$xJanNg*zV8m1U0 zXe@9bgPZqKDeCGe>Y~j8a#44O^6P* zKPxAK^DH+J3)RudR|27pgyRe$cMi>6>Pt(&XFh-`Sm66qNG8bqP={6_6>Gnx>VC7J^Pt2T}oOz;8V3cxHBn zJ~lM-HpJVi<3AL1*kY0zq5$y$2K@-?J1Sr9?ZV5aZaQikJ#5c(g4Xa{S8zxPf2S~DW^hB?M?K7Pb?&SC@`F7V5N?38`C)HL+7K}j(MRsR4I%ODFR zpalAqag(`}4mcp>e~YR;b_pebwZFToYDZl16)(HbcCyuaZr0k8zMNIXrfkt)Ytl3l zPbxtw8JaTR{i&Q}5rBHYP()+Y8p3uqSK@Zlj~T-a1fP)p%CIec@Y1@fq6;5vbbZiW z>*Em3U2tz=-AM`BuI{+O1S>AwlEt|UI=s|rUct`yVHA4%E6;^P5#~Kkz$sbVT@v~` zQRp8~_xp`K^R@k+))B?us|{tbt`gjIrS3Clyk!>;ai+N8`dz*Un0d6RMBT(=M2WuK;qYd3%A0sCM?v6&DX53iWu5cGW)7Xos z)9Y)!wZlp1Z%aOjb>@N69*{dxXn);w8jj_6gI;%9@mABlW%l(uQ!A=0e%ut4u5%1f zav$m2t>TUo;ypr@v@{gYYXgg%L1^Z2{-WNb`t-o+y8i(EKYVE5E(_Eh@h^(?+Io$8 zc-t6cf#lM{%r+R$L2Q=;l1Z@vp+zTx;t_nkXOauLS0)RZYjTA&FetX-f+QPcs!GGvkm*0{$Q&PdY6 zw7cDPc%8Y+}>Z)_w!f1>9)#!LV8>6RJ4`RS*?0l&uG^b7PpP=^HHh#wT0}7MHm9f71J3sn#}1$E zBWrF7ZTrWkeOcK1e%8+6cdJC)=qPHWr=`}k+AgND%|}HS(N32dDoCl-W|3HXl}19r z!|=c>9)Qa2FuV~7KA8Ltc3w_{hxOQLIjSl_ee&#)ZkKL4ZdF^`JEPxT*lQ?jDK##f z)HGF^10I-tMJwYeu_$jliJMrp^M0T4>cXL*DsUXps(xI)odsN#laa^kzf;+&| z(z<)``^yBzCL`(?!6zMITc&BosnpGsmkq})wl?1OHtM$%@oyGVY4Pe6G^4_kXEcI( z+T(G1W4dK~b?Yb9?c(lgdw-`jm+p6yVoPkTuuw-_sB%QFT7CBvvZRlTxW>9$K?yPRwZ3QPKKgo|&>Fu_cGE?6n_TxBM%!qrZgXnOW5s*APf;~g z#yBaer=+R&OmT%*8v{DBpFEWC^)n=-eASN4&4ulbm&oe2yjiGf6jjjD=(LV=0|zth zd%x2M0B?+?Pi8J&xx1;Vh0D7)O6@1vi+v%eq3!;-dR=9$t5B!1(f%+~(@9L21fQT~ zHm=aaJxbKyK*$VnG?{ICr4wD$sC-#l4x2$NvYUBq zJx`+OYq&k$?3RnO($IG!y`1PfED>1D0BQB|D7EHTowf;wU|^019GYl6 z;pWM2k2`k&Go1X4^_|unV|fke6q-l_>O_tg0}GpPQr*YX9kSH*H!W8G0EnwvnMEd- zw#ut{yDE~KSx?fCk+hd@8(4BOI+37gdY-uELq@~P)x>#Q^Y7>tlr-KXj&n_$-2RH4 zJxF@W?r(A;yjbmb0i-mHY3#^zF4WsCz$B=ll zG;ZvH>^4@SMsqchG-q?`=&I`BQfDnz9Iv}K_oSS@?076jKqvL_(~sq_4s{s$O zU0D9b&eL1_P3c>>-lFf;go9IeKIZyUMpns8l2;3LGW%6>!dt?;n}Nq9FO%c0XT^G} zU0CR1IE-?TMmdjB-wU?z6$qlC`)s4lAt%%{bormjPCZ?5f}x_8H;xFTgb%2fDvF_* z(5E1k4VD~_0B4hdfAa}&3!@oZV{)P&emjvbZu?o>4OK}{DXQ$+dD;o&mmtW&(lU*W z!2NFAoTy{KJxSB3n_XJUcMIPC0G2-$O{>=$4K`Y+jhqHPeUsPwC_O{mJIC3|r?0$4 zStJy1NpqztVUnJ6j58iTc+1(i>A+{0t~ zt9G+o{{Rh!h^p>fKlg!fcaxAjd>6LBDd!ziS;JZB@4 zJQ4TLRTY*EC0NCB;bMW+R5bM#k#b;$T4BB@wvxzK0Fn>bH_w1`k}=j_RA>~YMRP*; z34;ez&r93h)ORB5MR(TvYM%M1tnUpTnz~I4j>SeXiQd?kH z;fW9gY$*D1kWYen#s@guYI^W(AfbXkE_VD+)mL!W4mP%@?eae$-~1*%?W- zW|C0p3~-e!a(q4pK2PP&Gsj%UrdLY)5!H4IYBn?gZH2hEQg<@%3N;*&(osbF2(o`_P43PS$->kOQsOUT-+aPbzIV4F1oKz>YZb#DJ}OZ%T=O+roOn+($3VB zaN`^1nG~WaD!?>^E*bI9J$5=%9L|ma;dd5+eg2Eh^|4IJWR;CJ7bgevRTZde?$vS` z>LM&FZuM6Q$R*OA8i_YBIms{e5uQo&*JNOPe5?ol7b2+*dz|CksR`Me&2=q7hS8`l zlr;{iL2ruJgEcrCL2^k1uua1Uf>`8v>rX(&5pt_$V_YoZaIAZ`J=)iOx$d`V>hz|+ zyG^WacNkXw@>=PtBDF;UR)*g^Uf4pLLmzF<-O_N%dFtwk?}D;7M*QB#*z{F1P*T@Y zx+z)hzsQAb9sdCJtKDAUXe+fv1a=#fPB3CEZb_Kw5?NaChd(dzP5wZF@Ii3E=Oi?3zy1x}l* z@ceW$JCMk{`g%(Sk@ah{#ZIKf|@Lf<`>j z!60zvb9dcdR%tJYb3-M->$ld*^gm~HnxYR#`a-Assa~^J-)dCH7C#Uk;Ubgdju;g! z^Ni&AIjvc|_0M?h(f9>trv}486A8II#Qy;LMOeO-N{|XkBZiF`o;PMF2`B5@`SXvr zP+A-?QOf3vfD*1+`6<2W=hz{QeZZiQa0YMy^T-&-<`15kcQGd0^hhy>3k5+vz%pvz z+SgAr)kj^YsIGJui1hiy#;$q`3{_>L1xVc_$qq=`NJQPZr~|9%RkFjt;^!vgd;b7e z>@G(g1T}vW#o96EH~#?Dzuv`J?{Pg|cl)<@Y1ZFq(wcKiTjgjjGuF9MB2s$2s3UKYqzVo#XFkb30pj?u~|ecq~-Y zHM&@+P$hilU@Y+@SS3ajZa{Ot`E^k|wX()tEPyl{8)J2%f(;Isv5aO;Me?DJg4J4b z>!@zEy0-1x2=9>AW|G0&y+uQ(=Dp5KGsO&($g-InFkR7xz+^m=%qgLj%_0_(JAhB) z{nYnQro?$Cc=KQaMen{Yf4ZDKwA6N9;9K6F!KZHeRjre?uJL2JT*dN+-snMLZmZnh z{kf%!Z}@|$#!zFTa0as`pF7y&CT`DH{aEBENd#82$ z9lGSrGO?N2ODhnltZ}q3!i;Xt=EC3re1p@`xwtM%l0nOb#?S3V?hN{~)C`(^Y8~k` zoxkwXQakmd4Dv;oBmiwv`{QWHQW&r}Aazs5 zdeoZElOtsS054zw+hc{J;oU}B4kV|UvpL+vH1iXHe@|s4H8m_2tNm;=@EFn>mRQw^ zZR!r>Vow+V-~pTk1D}sQPA+kU=%*VH>n(__N{Hf>)kN{e1|kOs>KmE1{{YR5eDk0F z3otosN_0CHJEV={xfeS!eiq#;tfEq7jH)a#px8Epk_aG-uOWBi@6`AxV|fmfZ~4lL zHA9#$8Oo2^M@j3ue{cKYd9w;@E|t-j4L7eTqnt|}Rni;1#;%$IMV6MZK~&mye^Y_^gV)pk6!Gjwc`j5Ix;nZ_myu+M zEQspf#G9}{eWZfN>iSPVPBGUQpGkmK%0mWD`1}`e(JTJ|@tV?dRP^o7ao1TvQeKVL zqK0*6sEwLBX-QMN4$27w81c?P81vP&1Gxu)P5UTX%xr9eRvq_JZ%y8*!o($*kjxMF z&G>lJxey)c2ZiRN5C(RMYBfS?pb!`P#WH*AlO9xZCRJ7MbCskAoVM z1Tz(HsJd>>84p`;hR&D%>ibBLyPbr))B7pk6=^Br_-yD4S}a-1UP|mm%c31C zcGFtwuIX}y_d#yIJ+*0Cin^jWYw4AX5b?%a>QD(Kht2`}b?B#Zm-7R%@o8aUw?voJ z`sYqsZdyM>=!*J%OJArj!q-(D6v;VXXoFPkBAgcX#EjhWkLAXh&SbewFnsTd7_Y+Q1O?1)W zs?Maf(lAQ83fLj`{pgB-@4hyrsX_r^Ei;3|j-+YTO?+-_qd%BV$Q&>?8z!T+8jfv4 z1r1y(l3eQwS+CSl#v@}`it$Ok040o{OZi}TeI#I!k>Yq-%{HZgd3i}%o)@Web$VHO zta*SxJR`SW+ubN^RW&tGNeQp7sH|hh;uwhra)6S%fIf4=pQo-0Cjhm>BW3908v{u0 zdLT3{a@lI=B&d>TV2y&PKx0%;#DdHis4POA#C-V&o}pGX(nj#ixl5stMJr@+z*gni z{_ATi&u)9C+npC|vuYh*uX}NIwCFoU^5ys|RbAxJ)JIJdRh1?co;Q*ME(S8b20+mK zIo4*Q)L%&{9&v1XSUz+~E)LO>DchsG?y-jhnzMa*T zkX>}_ld-0xxl_+2HArakQ+!Vxkpq)}yc}n)(E3zOHi)&x4w_bLdYJv?joOwao z__}T4`s9ePeeC8&3OH~$BlFKrlYmriTOTs+i}pl!V#!13C$Lt@t7)gW>D%S@*DWNq zD1pfTJmZ&QEHZy*3$*YIM!J$Ja_roJ+a1-J z!>Tpsa^q`tf~Zi?(=()A>q{j%a`;wnmKgpl6$A6@lxy0JexO7?A@IS#Ct>QnGsAjj zpQf6X-L@X4+yDTPFU$xQ^?9ZKyx9f`-5!3T}l=cb=d>2A}6nW`BGxQ^*3 zr|i1I&)y9!qi#_*vwg2N+Dh1JMNKVbAtqVnNke!@<8P#nH)I|`F6eY`8kAwi`L)## z6jjncLYky+YunXW_PV;mZnj4OCLF{GU-2N}x&B!3_v6o9zf+hpoHF^aUT@N2bd^q+ zj-^+ZcCT#i zMW>Z_5b?Xjj-{7>Tts%NAN$@vO7xdKW87cb3Ec`7y3+QpwxdIKPxq3E7UQdHY5mKk?l8maYh@(y#|sV? zs^qLbsJPy7CaB6N zlAd}kJ=*Far&%YdHB}cotbt~_)=eR1EZ*yT3zPK4OB##;fzq@a`?Gx>loPtO~G6#(G{XMyfNPWn#PxoMZ zffk7F95CE#zXxi(%(RbIEguc) zZlJAfQaaJNi{ESXKcQEL+iPW?SyX-^m%0nvX(Rw@N--&_sgA8eiM_Q)P{`#@ zXTMTXP{y@YjZ~=xG_18-hYVzqaB^_OfybQW4E19?Zxrrv*=8x_jLaI{`z9yWEuA$N zuD;pXEq6OT4P7r~?HU#9wI$?f`yHaLwyL3N-r;d@$xlq5i$f(tf+C1BFdYU)wVck6of9;odJA0^S()#O2>Izhj zzLKtts+nM@jhYI$7;JdzY23#oazyKuWhY?&01K1KadHL6VvnvdFv zq$Q=eZbO}=K~_7rACd__C?PTw|KYWW~~V_QvINF<4vRMW{J5|fMoxZsjckI$yV zdW2+-=^-u7rb7EAkrqHz*M3!oF^qm(^y6a#B{$+8h=Q>U8!eD`WE?R3!Ta>Sm`MjW zE2ZsMS>2oGZ9O{o7QJX^?r(NIKUr?N-?#d&*ss$)=eJOqZIri2Y35*(Rs^@x`_L;S z@wO&`zPT5zH3x?H8{r&SAuNtO+~0euN@!gX-F;Dbg4dz_IcO~*sjJ>W4Mpy)9mz#z zZ^J`ysVbr{u6E&x3*o$VDdmxiyp)^bFjVu5oMA{)<`|{+9WT*A#fWk5(C($M66>$xw^K`P5rykboSjJ-QLXV zYy8$xRQh|n`WIDE(_3$LLspYZYp;eFMjn*NN@ZBGIR%f@>DDugrIDIkuuR)*T1Vow z{2U`1!yXNdt#5qa=7-nS@*3%x>KUk8_jMi8Fv;ecE=LT0g$%hLLBYg{9O3t6O8p)DD!1oFkB@rjHUhQT@63F*m=Ud z`SxUp6Sc_3aKIdqle^&jbx~IF8NXDv*qaq9C-m*yEnC@c{{Z(VN>*HG?lub4Z3kwg zuWEMGZA(W7zOl0MGIA8>B&P&qg48r~$k$aC{{StdU)MbcTMgB`6&!`Mk>A94C7^l? zU*DplO*5-|+oiPy^7DVO=#i*w&gOgGv)A;xZvANin=X{qGsPm8DwvuS;0)oqvk<{m zAA;+UP6Gw+^at})b7~b-6$V=7v>*39!K8bK5x;PyLH(vZv8U|R{{Y*1i?*}wjV(Nu z*zJ}IX{zFd5aI``xv&vTbM$>X+@VrQ!97ZE0oO~Y$14~a2q4_=^jLj&kF;s2B!V~d zNst3>KtBCKc)LUUdpj+o^rvYw#;NRYdGwt6QqFX}=TTVeZFia)r-_Q1stDMtJFEbr zKwZBq7D{Q=;;KSX&>gZbebOtUp`n9MloQARzB6vN-Ff=0kq`t(GZDgVE*X@Pv zKDe@5yKUND>B&#pjcGkqgSZu1i$quHddp?HsuMg`;3xMM7}{;oN<%SJkx?Zo1cN)q z+OD?UImd_M=RedjcQ^Wgxf!?BOVXvMqOFd$S6nkTvFM}bk=7AKC9m+)rBoG?siSx* zL8fT77E+9->I|f^usko*<2_&t-Qa@u*~ANjxF@0YUG|=(v$7fEK37Y!|uYv+MaQ*!h zs`|L->1L>VtOHJdSo~E@e$C%cS1Lx-p0fM5NFQAHUiVva?aVh8b-BYqQ#{RGa|lxj z@3B~tLO4`>U}vvo{5{a4qHDDoSOIVWox^(LrTg|?2KbT0@2jYGjRb_W8_8{puW&wJ znw-9%`>`Fi-%V(Wt$%nlt$wSY@p0xlXd`v@l#|2q8P5k15IM$r)#8pPNzGyf?djEX z8a6f64Qu{hq^d*i*Kq4KW!9ndB<~E*?h3YHIB6Go3O?W!IB*yPjGsMoEn2U8w%dKHS6DuHW{TOg*lj_k&{@jYH{#Rli zae?GcDAoSa#PVt|JDt4X3-%ZztIwDpzA6)jC{9B!r$R~k!E6CY$Sc0ik%c7MiUmY?i$ z+#cs+*nK+pSnVTBmX@KD1AkAz{{Ctr$8~xuoU8RmD3yn{Sz|HsPIHWXLyx~7&#c6- ziAn6bv**!KY$m^)tL*oi|mOG^5h2)Q?D~ujS2UK!6HJqPCXy)wUvT${OWAxXl zZral5%k}2xrZqO4s+RTJ?R90RNpCtb=`9S@5>zZKLeC8F)JY8V`_Rc58(ue6VR54C zH9BjIuv+_A?0x$D#>*ST8eDau(MUX}Z$sTzPKor1+5w|!x*^$k9zdo>$NXsoBH zsG85KUH<@s@aW@xHY8}**qCQ?V|1J`?mR8TG@878nG*r#Y0bTlP`NI>q)(-_t(0Ak zxCDB7bSkWUOX^GCVtf7EJt17}SEF@bwcJY$RWzIC({tVtX0E25J{f7{tCF%vB?KUK zsE;6kI?nO;1yyP_F>9Jg7kEA(C#!HjeMhp^aBmn2Sly&oy3H2k^cLAgt$p7qD{b#> zjq0JLxYE0<={X5fVFPqZ8-_uY&fU3E3FFJW2f)=7)$P=ECXX(|eDpr*Cm(T}O%cGXQi+`fa&(gSy zysKyQ>!(hHq|?{*sH&y8UT!TxbBY>>;-Zd@r5MB$INK^qvA`r@4=OF;UlIpP;CxFB^l$Jb?|(KT9%Nf}PkPDd_sGx~0tpH1GcyHk9Ep26Mv zX|!$Dz8L0~{cWdq6ce)hZz~`_RUJzPk~fHx3p=X-2R>!ibd64erP4dB(dafGsZnpadPb)I0P2&sJ*d-kRg!5vA!mxkR4F2DwyT}` zRW!{bi~}f;QI<}34EYB=dO?)5)YTtnrDrQJK7YTe;8Ru9&j;G)d2@})ztLNC+Kx-t zZ98E}N2jRPuU+ZtddsZE<)x^CYBYKqg8L2h$F_Lo1-A{%LmoNm;f3-v1N~pJsLg?M z0)Tz=(dlK@O;Hr>O>fr$WRA5Z{5#lh^t)rGs}legC8&eR zw%uU1+To+6x4x*LverknL~8O!I|n|9U;*j6 zo*%E8FBU@HUF-?J(5oFYTGBj049t)he^xF30P2#T(drjPT$o;}t8FM51604_)B-ju zz3- zcciuI+8ORN^DptFv}RKvZ>awO2p(~dv>M$Sy?{;N8+rrvP10)mXEBZ{hPmCjfj8}8 zpQ@;T+R>_O=_or{MMx!Cy!DG5^}+f`Tv zm^n?ef?ou-?BrzUji-$A*fP=GdM-j6G=tQnhL65pSqan#tKJzfPKx>7#XJmg8sE6cZ`BQrFQn zJ$ymI0;LHJz9-1`ri`>~sx~>#QuP;^e50rC%ELlsJv1c5>+@wemj3l=d*#YsO*V@7 zZkJ78+OFl^d!seH2cfjvVbHpUYHDei95YK*9W?&g1R~L?BbDo4!1^|z%Aew-cyWRN zC;GB4^8D_({{Y19Aft5yv{+mpCApjiZP@D+s6tL~~owZ+~NJLQAcXLtQtUAf`{nt$D9Vbf+3pKUss2r`pt6}7h zWhN<8W^k&<8^OT%^On8CdY*{($5hSpeZcLW>+J^te0lhF@gGhVTotIrQVILNc1^FA z8xfAzBdwDa70QaHMwWWElC79LCIo7uP-A7>%5n8=#t9q-TzEJf=B|nEt20Q;w&UC8 zwHn2HY7Z!I4n03VqM06qeOPLa%<3zbVV_Pxsr27>HJvpjrfI8QCD9etL22ryc(8vG zl@!=rjKgC>2*~5Ev7pH4=#BPmzK5szUKIZTsjdZ!SfV^nNZ{AQ8Ry1a1*}2NEp5oi z#tntcT)jtH`)@$j`-~QeQYoaCsqc?G@I-*f7BHDng+(e32j}DtweEshEi`Pn{e|Ey zE_z3`!meIJ(B8^FXb$@JyT0A%qtKccv|X`+qFH6TYQ0Sj1h$$-ij`VPmKA1`eM5lA zyJGs6c5ng2*HhJUiDh>ya5-=LvQs9YnnzPnxJX6GBoD(EKfcOx_twRtH4kj9`Wn$o zMR9s))AwD1nU>#E6woPZaS4#DG0huo5t3C^iv2-z)?ZaGr_`f-M!=KJ?03I)tD&co zt4(}UvzS{08;yYW>Dg6}ZYg~+TqWw26%T`%yO)c)%HO37+bhFh{{{VKvy4L8i znFavdlFE!m=-U`AGIv+9KMX$C*za(A9^a33Nka~iJzM61t>$mu2g+JTGTaON$n2#B z4{@|!fwkPVq}6t-W|pRSspO)&v5MaWF3QqUR4Rf2kTw;8Dhna`ZlFmU-sZC0&bL9j zarJbRm5rLE;jsgg&?rl1?*5MNwSDRvPPn7fQ`>bVMQws>#WbQxC`&nn4{g>^@oosr zyElbWLIabbri9Wlys`5WxCZtrm7GOMtyIX^X5}Hrl#y$R^>V5(4)Q#%@-WC?NYB!92hwl!}WRUV&UI@^XpA9XnCk~UX8a;1+Lz+G*Z?~LadciApjOQVyobiP6_dG zL8QT_(XyoFAIM4JAt_#(K1F2&6`pw#xOaWl0= z>$p0XRaab#DBU7cSzwAd6dnS~#Nci(lh>!HrJ4D2ap<_DO{{caNI7rUVfw0K?gQv; zGu^t1uGwp8b+2!zuXNYlKXU!gQ>W@9Q7m)GMI|*>B?be!C6wpfP&g!>r&rUyqfMF{ zWVDR?DAhM;aSrCk>6O@*ZYmPDOIq5Mh3bC7M-Prjd`tXkE^Kzwh#1j?*dQr=(;}IBkIXDDQHWBcdf)qsse5 zND1ySCvYJBM+A|PjFtdobs4QCwjoa>7T~JT{iin>tbUiP;iGDbFW;Jq2&x%y8lXl2 z2;{jt92Wiஜ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

=!@ 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�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 E+2h6o*#H0l literal 119101 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 Q=v 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�)Y$tu7<5EN3~P#lTdaCpC1bk8R;XV4@jalS+S; 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 z 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 diff --git a/src/Umbraco.Web.UI.Client/src/assets/img/mocks/big-thumb.jpg b/src/Umbraco.Web.UI.Client/src/assets/img/mocks/big-thumb.jpg deleted file mode 100644 index ab33fb4a1ce9e417ed91be6be2507fee3be9b00d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5093 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 XyJW(M6WSMdOo(G}9{)${<=p=O{2(E` diff --git a/src/Umbraco.Web.UI.Client/src/assets/img/nonodesbg.jpg b/src/Umbraco.Web.UI.Client/src/assets/img/nonodesbg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..61e1803924c24d337c0ce08cb212cc69f6cf6a57 GIT binary patch literal 237538 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

    ?--K6d}S{2;{&ig{F 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 literal 0 HcmV?d00001 diff --git a/src/Umbraco.Web.UI/config/splashes/noNodes.aspx b/src/Umbraco.Web.UI/config/splashes/noNodes.aspx index b66780d87f..38415e3222 100644 --- a/src/Umbraco.Web.UI/config/splashes/noNodes.aspx +++ b/src/Umbraco.Web.UI/config/splashes/noNodes.aspx @@ -2,148 +2,67 @@ <%@ Import Namespace="Umbraco.Core.Configuration" %> <%@ Import Namespace="Umbraco.Core.IO" %> - - - + + + + + + + + + + + + + - + + - Umbraco - no pages found - " /> + - + - - - - - - - - - - - - - - - - - -

    + - +
    +
    +
    + -
    +

    Welcome to your Umbraco installation

    +

    You're seeing the wonderful page because your website doesn't contain any published content yet.

    -
    + - - +
    +
    +

    Easy start with Umbraco.tv

    +

    We have created a bunch of 'how-to' videos, to get you easily started with Umbraco. Learn how to build projects in just a couple of minutes. Easiest CMS in the world.

    + + Umbraco.tv → +
    - +
    +

    Be a part of the community

    +

    The Umbraco community is the best of its kind, be sure to visit, and if you have any questions, were sure that you can get your answers from the community.

    + + our.Umbraco → +
    +
    -
    - - +
    +
    -
    +
    - - $.post("../../install/InstallerRestService.aspx?feed=developervids", - function(data) { - jQuery("#ajax-developervids").html(data); - }); - }); - - - - - -
    -
    -

    Looks like there's still work to do

    -

    - You're seeing the wonderful page because your website doesn't contain any published content yet. -

    -

    - So get rid of this page by starting umbraco and publishing some content. You can do this by clicking the "set up your new website" button below. -

    - -
    -
    -
    -   -
    -
    - - - -
    -
    -
    -
    -

    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

- - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - + \ No newline at end of file From 5e4702a4abd392b5704ce0fab28f90b4ce90f014 Mon Sep 17 00:00:00 2001 From: Chris Houston Date: Wed, 3 Dec 2014 16:04:26 +0000 Subject: [PATCH 141/310] Final changes (for now) for the Spanish localization file. --- src/Umbraco.Web.UI/umbraco/config/lang/es.xml | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/es.xml b/src/Umbraco.Web.UI/umbraco/config/lang/es.xml index de40e7b72e..4838285fa2 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/es.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/es.xml @@ -52,9 +52,8 @@ El dominio %0% ha sido actualizado Editar dominios actuales -
One-level paths in domains are supported, eg. "example.com/en". However, they - should be avoided. Better use the culture setting above.]]> +
Los dominios de un nivel están soportados, por ej. "example.com/en". De todas formas deberían de evitarse. Mejor usar la configuración cultural especificada arriba.]]>
Heredar Cultura @@ -92,30 +91,30 @@ Guardar y publicar Guardar y enviar para aprobación Previsualizar - Preview is disabled because there's no template assigned + La previsualización está deshabilitada porque no hay ninguna plantilla asignada Elegir estilo Mostrar estilos Insertar tabla - To change the document type for the selected content, first select from the list of valid types for this location. - Then confirm and/or amend the mapping of properties from the current type to the new, and click Save. - The content has been re-published. - Current Property - Current type - The document type cannot be changed, as there are no alternatives valid for this location. - Document Type Changed - Map Properties - Map to Property - New Template - New Type - none - Content - Select New Document Type - The document type of the selected content has been successfully changed to [new type] and the following properties mapped: - to - Could not complete property mapping as one or more properties have more than one mapping defined. - Only alternate types valid for the current location are displayed. + Para cambiar el tipo de documento al contenido seleccionado, primero selecciona uno de la lista de tipos válidos. + Entonces confirma el mapeo de propiedades del tipo actual al nuevo y haz click en Guardar. + El contenido se ha vuelto a publicar. + Propiedad actual + Tipo actual + El tipo de contenido no se puede cambiar, porque no hay alternativas válidas para este contenido. + Tipo de documento cambiado + Mapeo de propiedades + Mapea a la propiedad + Nueva plantilla + Nuevo tipo + ninguno + Contenido + Selecciona un nuevo Tipo de Documento + El tipo de documento del contenido seleccionado ha sido cambiado correctamente a [new type] y las siguientes propiedades mapeadas: + a + No se ha podido completar el mapeo de propiedades porque uno o más propiedades tienen más de un mapeo definido. + Solo se muestran otros tipos válidos para el contenido actual. Acerca de @@ -142,7 +141,7 @@ Título de la página Propiedades Este documento ha sido publicado pero no es visible porque el padre '%0%' no esta publicado - Oops: this document is published but is not in the cache (internal error) + Upss: este documento está publicado pero no está en la caché (error interno) Publicar Estado de la Publicación Publicar el @@ -244,7 +243,7 @@ Tipos de nodos hijos permitidos - Document Type Compositions + Composiciones de Tipo de Documento Crear Borrar pestaña Descripción From 2b774dbdf218956ae0262d808d6200f077b195f6 Mon Sep 17 00:00:00 2001 From: Shannon Date: Thu, 4 Dec 2014 11:35:42 +1100 Subject: [PATCH 142/310] Revert "Revert "Fixes PetaPoco to support Medium trust." - This revert back to original peta poco actually causes issues with some custom multi-poco queries, turns out the med trust fix also fixes a few other things! We've been running with this fix for a very long time now so it is definitely stable and correct. --- src/Umbraco.Core/Persistence/PetaPoco.cs | 104 ++++++++++++++--------- 1 file changed, 63 insertions(+), 41 deletions(-) diff --git a/src/Umbraco.Core/Persistence/PetaPoco.cs b/src/Umbraco.Core/Persistence/PetaPoco.cs index 8839504791..2d57f99285 100644 --- a/src/Umbraco.Core/Persistence/PetaPoco.cs +++ b/src/Umbraco.Core/Persistence/PetaPoco.cs @@ -850,7 +850,7 @@ namespace Umbraco.Core.Persistence public IEnumerable Query(Sql sql) { return Query(new Type[] { typeof(T1), typeof(T2), typeof(T3), typeof(T4) }, null, sql.SQL, sql.Arguments); } // Automagically guess the property relationships between various POCOs and create a delegate that will set them up - object GetAutoMapper(Type[] types) + Delegate GetAutoMapper(Type[] types) { // Build a key var kb = new StringBuilder(); @@ -865,7 +865,7 @@ namespace Umbraco.Core.Persistence RWLock.EnterReadLock(); try { - object mapper; + Delegate mapper; if (AutoMappers.TryGetValue(key, out mapper)) return mapper; } @@ -879,7 +879,7 @@ namespace Umbraco.Core.Persistence try { // Try again - object mapper; + Delegate mapper; if (AutoMappers.TryGetValue(key, out mapper)) return mapper; @@ -952,22 +952,53 @@ namespace Umbraco.Core.Persistence throw new InvalidOperationException(string.Format("Couldn't find split point between {0} and {1}", typeThis, typeNext)); } + // Instance data used by the Multipoco factory delegate - essentially a list of the nested poco factories to call public class MultiPocoFactory { - public List m_Delegates; - public Delegate GetItem(int index) { return m_Delegates[index]; } + + public MultiPocoFactory(IEnumerable dels) + { + Delegates = new List(dels); + } + private List Delegates { get; set; } + private Delegate GetItem(int index) { return Delegates[index]; } + + /// + /// Calls the delegate at the specified index and returns its values + /// + /// + /// + /// + private object CallDelegate(int index, IDataReader reader) + { + var d = GetItem(index); + var output = d.DynamicInvoke(reader); + return output; + } + + /// + /// Calls the callback delegate and passes in the output of all delegates as the parameters + /// + /// + /// + /// + /// + /// + public TRet CallCallback(Delegate callback, IDataReader dr, int count) + { + var args = new List(); + for(var i = 0;i CreateMultiPocoFactory(Type[] types, string sql, IDataReader r) - { - var m = new DynamicMethod("petapoco_multipoco_factory", typeof(TRet), new Type[] { typeof(MultiPocoFactory), typeof(IDataReader), typeof(object) }, typeof(MultiPocoFactory)); - var il = m.GetILGenerator(); - - // Load the callback - il.Emit(OpCodes.Ldarg_2); - + Func CreateMultiPocoFactory(Type[] types, string sql, IDataReader r) + { // Call each delegate var dels = new List(); int pos = 0; @@ -976,33 +1007,19 @@ namespace Umbraco.Core.Persistence // Add to list of delegates to call var del = FindSplitPoint(types[i], i + 1 < types.Length ? types[i + 1] : null, sql, r, ref pos); dels.Add(del); - - // Get the delegate - il.Emit(OpCodes.Ldarg_0); // callback,this - il.Emit(OpCodes.Ldc_I4, i); // callback,this,Index - il.Emit(OpCodes.Callvirt, typeof(MultiPocoFactory).GetMethod("GetItem")); // callback,Delegate - il.Emit(OpCodes.Ldarg_1); // callback,delegate, datareader - - // Call Invoke - var tDelInvoke = del.GetType().GetMethod("Invoke"); - il.Emit(OpCodes.Callvirt, tDelInvoke); // Poco left on stack } - // By now we should have the callback and the N pocos all on the stack. Call the callback and we're done - il.Emit(OpCodes.Callvirt, Expression.GetFuncType(types.Concat(new Type[] { typeof(TRet) }).ToArray()).GetMethod("Invoke")); - il.Emit(OpCodes.Ret); - - // Finish up - return (Func)m.CreateDelegate(typeof(Func), new MultiPocoFactory() { m_Delegates = dels }); + var mpFactory = new MultiPocoFactory(dels); + return (reader, arg3) => mpFactory.CallCallback(arg3, reader, types.Length); } // Various cached stuff static Dictionary MultiPocoFactories = new Dictionary(); - static Dictionary AutoMappers = new Dictionary(); + static Dictionary AutoMappers = new Dictionary(); static System.Threading.ReaderWriterLockSlim RWLock = new System.Threading.ReaderWriterLockSlim(); - // Get (or create) the multi-poco factory for a query - Func GetMultiPocoFactory(Type[] types, string sql, IDataReader r) + // Get (or create) the multi-poco factory for a query + Func GetMultiPocoFactory(Type[] types, string sql, IDataReader r) { // Build a key string (this is crap, should address this at some point) var kb = new StringBuilder(); @@ -1024,7 +1041,10 @@ namespace Umbraco.Core.Persistence { object oFactory; if (MultiPocoFactories.TryGetValue(key, out oFactory)) - return (Func)oFactory; + { + //mpFactory = oFactory; + return (Func)oFactory; + } } finally { @@ -1036,15 +1056,17 @@ namespace Umbraco.Core.Persistence try { // Check again - object oFactory; + object oFactory; ; if (MultiPocoFactories.TryGetValue(key, out oFactory)) - return (Func)oFactory; + { + return (Func)oFactory; + } + + // Create the factory + var factory = CreateMultiPocoFactory(types, sql, r); - // Create the factory - var Factory = CreateMultiPocoFactory(types, sql, r); - - MultiPocoFactories.Add(key, Factory); - return Factory; + MultiPocoFactories.Add(key, factory); + return factory; } finally { @@ -1054,7 +1076,7 @@ namespace Umbraco.Core.Persistence } // Actual implementation of the multi-poco query - public IEnumerable Query(Type[] types, object cb, string sql, params object[] args) + public IEnumerable Query(Type[] types, Delegate cb, string sql, params object[] args) { OpenSharedConnection(); try From 966b8565badc3ea3fd066e06410e08390bd62579 Mon Sep 17 00:00:00 2001 From: Shannon Date: Thu, 4 Dec 2014 11:36:15 +1100 Subject: [PATCH 143/310] publicizes Mandate --- src/Umbraco.Core/Mandate.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Core/Mandate.cs b/src/Umbraco.Core/Mandate.cs index 54d589b90a..7ae47fd5c0 100644 --- a/src/Umbraco.Core/Mandate.cs +++ b/src/Umbraco.Core/Mandate.cs @@ -8,7 +8,7 @@ namespace Umbraco.Core /// /// Helper class for mandating values, for example on method parameters. /// - internal static class Mandate + public static class Mandate { /// /// Mandates that the specified parameter is not null. From dfb324b00399f162462b52506e379baf5d73b925 Mon Sep 17 00:00:00 2001 From: Shannon Date: Thu, 4 Dec 2014 12:44:46 +1100 Subject: [PATCH 144/310] Fixes: U4-5706 Listview search bar enter button in IE11 submits form --- .../util/prevententersubmit.directive.js | 25 +++++++++++++++++++ .../propertyeditors/listview/listview.html | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Web.UI.Client/src/common/directives/util/prevententersubmit.directive.js diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/util/prevententersubmit.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/util/prevententersubmit.directive.js new file mode 100644 index 0000000000..42133aa0e1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/common/directives/util/prevententersubmit.directive.js @@ -0,0 +1,25 @@ +/** +* @ngdoc directive +* @name umbraco.directives.directive:preventEnterSubmit +* @description prevents a form from submitting when the enter key is pressed on an input field +**/ +angular.module("umbraco.directives") + .directive('preventEnterSubmit', function() { + return function(scope, element, attrs) { + + var enabled = true; + //check if there's a value for the attribute, if there is and it's false then we conditionally don't + //prevent default. + if (attrs.preventEnterSubmit) { + attrs.$observe("preventEnterSubmit", function (newVal) { + enabled = (newVal === "false" || newVal === 0 || newVal === false) ? false : true; + }); + } + + $(element).keypress(function (event) { + if (event.which === 13) { + event.preventDefault(); + } + }); + }; + }); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html index 920f762966..bbde791100 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.html @@ -64,7 +64,7 @@
- +
From 464130a1024676465de5ade9fd3d5e218e9a1ec5 Mon Sep 17 00:00:00 2001 From: Shannon Date: Thu, 4 Dec 2014 13:09:28 +1100 Subject: [PATCH 145/310] Fixes: U4-5930 Lock "Save and publish" once activated --- .../src/common/services/contenteditinghelper.service.js | 8 +++++++- .../src/views/common/dialogs/content/edit.controller.js | 5 +---- .../src/views/content/content.edit.controller.js | 4 +--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/services/contenteditinghelper.service.js b/src/Umbraco.Web.UI.Client/src/common/services/contenteditinghelper.service.js index cd329995b7..0c39bdfa38 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/contenteditinghelper.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/contenteditinghelper.service.js @@ -31,7 +31,10 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica var deferred = $q.defer(); - if (formHelper.submitForm({ scope: args.scope, statusMessage: args.statusMessage })) { + if (!args.scope.busy && formHelper.submitForm({ scope: args.scope, statusMessage: args.statusMessage })) { + + args.scope.busy = true; + args.saveMethod(args.content, $routeParams.create, fileManager.getFiles()) .then(function (data) { @@ -42,6 +45,8 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica savedContent: data, rebindCallback: self.reBindChangedProperties(args.content, data) }); + + args.scope.busy = false; deferred.resolve(data); }, function (err) { @@ -50,6 +55,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica err: err, rebindCallback: self.reBindChangedProperties(args.content, err.data) }); + args.scope.busy = false; deferred.reject(err); }); } diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/content/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/content/edit.controller.js index 02655b3d11..04e926742f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/content/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/content/edit.controller.js @@ -12,16 +12,13 @@ function ContentEditDialogController($scope, editorState, $routeParams, $q, $tim scope: $scope, content: $scope.content }).then(function (content) { - //success - $scope.busy = false; - + //success if (dialogOptions.closeOnSave) { $scope.submit(content); } }, function(err) { //error - $scope.busy = false; }); } diff --git a/src/Umbraco.Web.UI.Client/src/views/content/content.edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/content.edit.controller.js index 675e5b597f..c74c7c90b9 100644 --- a/src/Umbraco.Web.UI.Client/src/views/content/content.edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/content/content.edit.controller.js @@ -73,13 +73,11 @@ function ContentEditController($scope, $rootScope, $routeParams, $q, $timeout, $ scope: $scope, content: $scope.content }).then(function (data) { - //success - $scope.busy = false; + //success init($scope.content); syncTreeNode($scope.content, data.path); }, function (err) { //error - $scope.busy = false; if (err) { editorState.set($scope.content); } From 98a03a0127ec6f3d2ab3b158001059d0a94d21d9 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Thu, 4 Dec 2014 08:53:00 +0100 Subject: [PATCH 146/310] Fixes nonodes a:visited bug --- src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css b/src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css index 7b57a35069..68cc761e96 100644 --- a/src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css +++ b/src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css @@ -1 +1 @@ -abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;outline:0;border:0;background:0 0;vertical-align:baseline;font-size:100%}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}a{margin:0;padding:0;background:0 0;vertical-align:baseline;font-size:100%}ins{background-color:#ff9;color:#000;text-decoration:none}mark{background-color:#ff9;color:#000;font-weight:700;font-style:italic}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-spacing:0;border-collapse:collapse}hr{display:block;margin:1em 0;padding:0;height:1px;border:0;border-top:1px solid #ccc}input,select{vertical-align:middle}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}body,html{height:100%;width:100%;color:#fff;font-family:'Open Sans',sans-serif;font-weight:400;font-size:.9375em;line-height:1.5}h1{font-size:1.7em;margin:40px auto 10px;font-weight:700}h2{font-size:1.35em;margin:0 auto .4em;font-weight:700}h3{font-size:1em;font-weight:400;font-style:italic}p{font-size:1em;line-height:1.6}p+a{margin-top:1rem;display:inline-block}a,a:active,a:visited{text-decoration:none}.cta{margin:4.5em auto 1.5em;padding-bottom:4.5em}.button{padding:.9375em 1.875em;border-radius:.1em;font-weight:600;font-size:1.2em;background:#2e99f4;color:#fff;display:inline-block;border:none;transition:all 200ms ease-in-out}.button:hover{border-bottom:none;background:#0c80e3}section{background:url(../img/nonodesbg.jpg) center center/cover;height:100%;width:100%;display:table;padding:3em 1.75em}section a,section a:focus,section a:visited{color:#46a5f5;font-size:1.1625em;border-bottom:1px solid transparent;transition:border-bottom 100ms ease-in-out}section a:focus:hover,section a:hover,section a:visited:hover{border-bottom:1px solid}section:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.17);background:linear-gradient(45deg,rgba(85,98,112,.1) 10%,rgba(255,107,107,.1) 95%);z-index:0}section article{display:table-cell;vertical-align:middle;margin:0 auto;text-align:center;position:relative;z-index:100}section article>div{max-width:60em;margin:0 auto}section .logo{background:url(../img/logo.png) no-repeat;width:91px;height:91px;margin:0 auto}section .row{overflow:hidden}section .row .col{text-align:left;width:100%}section .row .col:nth-child(2){margin-top:3em}@media screen and (min-width:48em){body,html{font-size:1em}h1{font-size:2.5em;margin:70px auto 0;letter-spacing:.5px}h2{font-size:1.4375em;margin:0 auto 1em}h3{font-size:1.2em}a{font-size:1.1rem;font-weight:600}p+a{margin-top:3rem}.cta{margin:7.5em auto 2.5em;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:7.5em}section{padding:0 15px}section .row .col{float:left;width:50%;padding-right:5%;display:inline-block}section .row .col:nth-child(2){padding-right:0;padding-left:5%;margin-top:0}.button{font-size:1.1625em}} \ No newline at end of file +abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;outline:0;border:0;background:0 0;vertical-align:baseline;font-size:100%}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}a{margin:0;padding:0;background:0 0;vertical-align:baseline;font-size:100%}ins{background-color:#ff9;color:#000;text-decoration:none}mark{background-color:#ff9;color:#000;font-weight:700;font-style:italic}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-spacing:0;border-collapse:collapse}hr{display:block;margin:1em 0;padding:0;height:1px;border:0;border-top:1px solid #ccc}input,select{vertical-align:middle}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}body,html{height:100%;width:100%;color:#fff;font-family:'Open Sans',sans-serif;font-weight:400;font-size:.9375em;line-height:1.5}h1{font-size:1.7em;margin:40px auto 10px;font-weight:700}h2{font-size:1.35em;margin:0 auto .4em;font-weight:700}h3{font-size:1em;font-weight:400;font-style:italic}p{font-size:1em;line-height:1.6}p+a{margin-top:1rem;display:inline-block}a,a:active,a:visited{text-decoration:none}.cta{margin:4.5em auto 1.5em;padding-bottom:4.5em}.button,.button:visited{padding:.9375em 1.875em;border-radius:.1em;font-weight:600;font-size:1.2em;background:#2e99f4;color:#fff;display:inline-block;border:none;transition:all 200ms ease-in-out}.button:hover,.button:visited:hover{border-bottom:none;background:#0c80e3}section{background:url(../img/nonodesbg.jpg) center center/cover;height:100%;width:100%;display:table;padding:3em 1.75em}section a,section a:focus,section a:visited{color:#46a5f5;font-size:1.1625em;border-bottom:1px solid transparent;transition:border-bottom 100ms ease-in-out}section a:focus:hover,section a:hover,section a:visited:hover{border-bottom:1px solid}section:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.17);background:linear-gradient(45deg,rgba(85,98,112,.1) 10%,rgba(255,107,107,.1) 95%);z-index:0}section article{display:table-cell;vertical-align:middle;margin:0 auto;text-align:center;position:relative;z-index:100}section article>div{max-width:60em;margin:0 auto}section .logo{background:url(../img/logo.png) no-repeat;width:91px;height:91px;margin:0 auto}section .row{overflow:hidden}section .row .col{text-align:left;width:100%}section .row .col:nth-child(2){margin-top:3em}@media screen and (min-width:48em){body,html{font-size:1em}h1{font-size:2.5em;margin:70px auto 0;letter-spacing:.5px}h2{font-size:1.4375em;margin:0 auto 1em}h3{font-size:1.2em}a{font-size:1.1rem;font-weight:600}p+a{margin-top:3rem}.cta{margin:7.5em auto 2.5em;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:7.5em}section{padding:0 15px}section .row .col{float:left;width:50%;padding-right:5%;display:inline-block}section .row .col:nth-child(2){padding-right:0;padding-left:5%;margin-top:0}.button{font-size:1.1625em}} \ No newline at end of file From 77fd4d383b0399ffa5df205d0abf43462b1235ac Mon Sep 17 00:00:00 2001 From: per ploug Date: Thu, 4 Dec 2014 12:25:33 +0100 Subject: [PATCH 147/310] Fixes grid cell resizing timing bug --- .../src/common/directives/editors/umbAutoResize.directive.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/editors/umbAutoResize.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/editors/umbAutoResize.directive.js index 94bdc3f03d..7e7d5a7c5a 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/editors/umbAutoResize.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/editors/umbAutoResize.directive.js @@ -18,8 +18,8 @@ angular.module("umbraco.directives") element.bind('blur', function(){ update(true); }); $timeout(function() { - update(); - }, 100); + update(true); + }, 200); //I hate bootstrap tabs From 0e5f9b92e8d293be732d69367fbd5922d1e679d7 Mon Sep 17 00:00:00 2001 From: per ploug Date: Thu, 4 Dec 2014 12:26:05 +0100 Subject: [PATCH 148/310] adds autocomplete=off to installer password To avoid autocomplete to pick up peoples secret passwords --- src/Umbraco.Web.UI.Client/src/installer/steps/user.html | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI.Client/src/installer/steps/user.html b/src/Umbraco.Web.UI.Client/src/installer/steps/user.html index 9e6b5c22fb..8202593782 100644 --- a/src/Umbraco.Web.UI.Client/src/installer/steps/user.html +++ b/src/Umbraco.Web.UI.Client/src/installer/steps/user.html @@ -32,6 +32,7 @@ ng-pattern="passwordPattern" autocorrect="off" autocapitalize="off" + autocomplete="off" required ng-model="installer.current.model.password" id="password" /> At least {{installer.current.model.minCharLength}} characters long From aa9c75345579dbccbb52fcae162a5799b9d7075a Mon Sep 17 00:00:00 2001 From: per ploug Date: Thu, 4 Dec 2014 12:26:32 +0100 Subject: [PATCH 149/310] Forms installer cookie check fixed --- .../src/views/dashboard/dashboard.tabs.controller.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js b/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js index 201c9f7be4..1001ad250f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js @@ -17,7 +17,7 @@ function startUpVideosDashboardController($scope, xmlhelper, $log, $http) { angular.module("umbraco").controller("Umbraco.Dashboard.StartupVideosController", startUpVideosDashboardController); -function FormsController($scope, $route, $cookies, packageResource) { +function FormsController($scope, $route, $cookieStore, packageResource) { $scope.installForms = function(){ $scope.state = "Installng package"; packageResource @@ -43,7 +43,7 @@ function FormsController($scope, $route, $cookies, packageResource) { $scope.complete = function(result){ var url = window.location.href + "?init=true"; - $cookies.installDone = "true"; + $cookieStore.put("umbPackageInstallId", result.packageGuid); window.location.reload(true); }; From 6738a25bfa964acb97237af2adfb3aade7590e5e Mon Sep 17 00:00:00 2001 From: per ploug Date: Thu, 4 Dec 2014 12:27:10 +0100 Subject: [PATCH 150/310] Fxes grid datatype config to handle cols > 12 and <= 0 --- .../views/propertyeditors/grid/grid.prevalues.controller.js | 3 +++ .../src/views/propertyeditors/grid/grid.prevalues.html | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.prevalues.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.prevalues.controller.js index e64d4ffe36..82b36697d8 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.prevalues.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.prevalues.controller.js @@ -149,6 +149,9 @@ angular.module("umbraco") return ((spans / $scope.model.value.columns) * 100).toFixed(1); }; + $scope.zeroWidthFilter = function (cell) { + return cell.grid > 0; + }; /**************** Config diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.prevalues.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.prevalues.html index 1809e5b029..b7f46f0996 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.prevalues.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.prevalues.html @@ -17,7 +17,7 @@
@@ -63,7 +63,7 @@
From ed751098296abe694ba18addd5672cebb6d995f7 Mon Sep 17 00:00:00 2001 From: per ploug Date: Thu, 4 Dec 2014 12:27:33 +0100 Subject: [PATCH 151/310] Removes textstring editor controller - not needed functionality moved to directive --- .../src/views/propertyeditors/grid/editors/textstring.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/textstring.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/textstring.html index 03cb4f123e..b14156c35e 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/textstring.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/editors/textstring.html @@ -1,4 +1,4 @@ -
+
+ ng-attr-style="{{control.editor.config.style}}" localize="placeholder" placeholder="@grid_placeholderWriteHere">
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html index 04357be332..b342db8025 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html @@ -234,7 +234,6 @@
-

diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index 0e5c196061..c57192cc8c 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -608,6 +608,16 @@ Mange hilsner fra Umbraco robotten Nulstil + + Vælg et layout for at starte + Tilføj rækker til dit layout + nedenfor og tilføje det første element]]> + Indsæt element + Klik for at indlejre + Klik for at indsætte et billede + Billedtekst... + Skriv her... + Nuværende version Rød tekst vil ikke blive vist i den valgte version. Grøn betyder tilføjet]]> diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index c483d09352..2e43a5909f 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -716,6 +716,16 @@ To manage your website, simply open the Umbraco back office and start adding con Reset + + To start, select a layout for your grid + Add rows to your layout + below and add your first element]]> + Insert control + Click to embed + Click to insert image + Image caption... + Write here... + Current version Red text will not be shown in the selected version. , green means added]]> From 77fd2c9444a868beb6c698f79aa8e068177fb6f8 Mon Sep 17 00:00:00 2001 From: arknu Date: Mon, 8 Dec 2014 18:36:51 +0100 Subject: [PATCH 169/310] Update translations for Grid --- src/Umbraco.Web.UI/umbraco/config/lang/da.xml | 31 +++++++++++++++++-- src/Umbraco.Web.UI/umbraco/config/lang/en.xml | 16 +++------- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index c57192cc8c..cba2254cc8 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -609,14 +609,39 @@ Mange hilsner fra Umbraco robotten Nulstil - Vælg et layout for at starte - Tilføj rækker til dit layout - nedenfor og tilføje det første element]]> Indsæt element + Tilføj rækker til dit layout + nedenfor og tilføje det første element]]> + Klik for at indlejre Klik for at indsætte et billede Billedtekst... Skriv her... + + Gridlayout + Et layout er det overordnede arbejdsområde til dit gitter - du vil typisk kun behøve ét eller to + Tilføj gitterlayout + Juster dit layout ved at justere kolonnebredder og tilføj yderligere sektioner + + Rækkekonfigurationer + Rækker er foruddefinerede celler, der arrangeres vandret + Tilføj rækkekonfiguration + Juster rækken ved at indstille cellebredder og tilføje yderligere celler + + Kolonner + Det totale antaller kolonner i gitteret + + Indstillinger + Konfigurer, hvilket indstillinger, brugeren kan ændre + + + Typografi + Vælg, hvilke typografiværdier, en redaktør kan ændre + + Indstillinger gemmes kun, hvis den indtaste json-konfiguration er gyldig + + Tillad alle editorer + Tillad alle rækkekonfigurationer Nuværende version diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index 2e43a5909f..e43af2752f 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -716,16 +716,6 @@ To manage your website, simply open the Umbraco back office and start adding con Reset - - To start, select a layout for your grid - Add rows to your layout - below and add your first element]]> - Insert control - Click to embed - Click to insert image - Image caption... - Write here... - Current version Red text will not be shown in the selected version. , green means added]]> @@ -855,12 +845,16 @@ To manage your website, simply open the Umbraco back office and start adding con Template - Insert control Add rows to your layout below and add your first element]]> + Click to embed + Click to insert image + Image caption... + Write here... + Grid layouts Layouts are the overall work area for the grid editor, usually you only need one or two different layouts Add grid layout From 3a919b67eacd4454d155eb6195c338aa9e57f2bc Mon Sep 17 00:00:00 2001 From: Dennis Aaen Date: Mon, 8 Dec 2014 20:09:05 +0100 Subject: [PATCH 170/310] U4-5973 Fix casing of word XSLT when saving a XSLT file --- src/Umbraco.Web.UI/umbraco_client/Editors/EditXslt.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco_client/Editors/EditXslt.js b/src/Umbraco.Web.UI/umbraco_client/Editors/EditXslt.js index b57278fc97..d17296a958 100644 --- a/src/Umbraco.Web.UI/umbraco_client/Editors/EditXslt.js +++ b/src/Umbraco.Web.UI/umbraco_client/Editors/EditXslt.js @@ -45,7 +45,7 @@ submitSucces: function (t) { if (t != 'true') { - top.UmbSpeechBubble.ShowMessage('error', 'Saving Xslt file failed',"
" + t + "
"); + top.UmbSpeechBubble.ShowMessage('error', 'Saving XSLT file failed',"
" + t + "
"); } var newFilePath = this._opts.nameTxtBox.val(); @@ -57,11 +57,11 @@ UmbClientMgr.contentFrame(newLocation); //we need to do this after we navigate otherwise the navigation will wait unti lthe message timeout is done! - top.UmbSpeechBubble.ShowMessage('save', 'Xslt file saved', ''); + top.UmbSpeechBubble.ShowMessage('save', 'XSLT file saved', ''); } else { - top.UmbSpeechBubble.ShowMessage('save', 'Xslt file saved', ''); + top.UmbSpeechBubble.ShowMessage('save', 'XSLT file saved', ''); UmbClientMgr.mainTree().setActiveTreeType('xslt'); //we need to pass in the newId parameter so it knows which node to resync after retreival from the server UmbClientMgr.mainTree().syncTree("-1,init," + this._opts.originalFileName, true, null, newFilePath); @@ -74,7 +74,7 @@ submitFailure: function (t) { alert(t); - top.UmbSpeechBubble.ShowMessage('warning', 'Xslt file could not be saved', ''); + top.UmbSpeechBubble.ShowMessage('warning', 'XSLT file could not be saved', ''); } }); })(jQuery); \ No newline at end of file From 451be273a5dce009a2a4a15f33e215b60c357211 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 9 Dec 2014 18:55:54 +1100 Subject: [PATCH 171/310] bump version --- build/UmbracoVersion.txt | 2 +- src/Umbraco.Core/Configuration/UmbracoVersion.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/UmbracoVersion.txt b/build/UmbracoVersion.txt index 450cb62597..85a02bb894 100644 --- a/build/UmbracoVersion.txt +++ b/build/UmbracoVersion.txt @@ -1,2 +1,2 @@ # Usage: on line 2 put the release version, on line 3 put the version comment (example: beta) -7.2.0 \ No newline at end of file +7.2.1 \ No newline at end of file diff --git a/src/Umbraco.Core/Configuration/UmbracoVersion.cs b/src/Umbraco.Core/Configuration/UmbracoVersion.cs index 1012ce793f..f7163bfe7f 100644 --- a/src/Umbraco.Core/Configuration/UmbracoVersion.cs +++ b/src/Umbraco.Core/Configuration/UmbracoVersion.cs @@ -5,7 +5,7 @@ namespace Umbraco.Core.Configuration { public class UmbracoVersion { - private static readonly Version Version = new Version("7.2.0"); + private static readonly Version Version = new Version("7.2.1"); /// /// Gets the current version of Umbraco. From ae2d9e6c557122261af21c7e03b0e7a38ca95eab Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 9 Dec 2014 19:05:00 +1100 Subject: [PATCH 172/310] Fixes: U4-5977 The debounce timeout on the main search is too big which produces a lag in searching --- .../src/common/directives/umbtreesearchbox.directive.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/umbtreesearchbox.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/umbtreesearchbox.directive.js index 77362b6313..09411112cc 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/umbtreesearchbox.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/umbtreesearchbox.directive.js @@ -57,7 +57,7 @@ function treeSearchBox(localizationService, searchService) { performSearch(); } }); - }, 200)); + }, 20)); var searcher = searchService.searchContent; //search From f08320bd81b3387242093d777aa94dcd279ef256 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 9 Dec 2014 19:07:14 +1100 Subject: [PATCH 173/310] Fixes: U4-5976 When no Examine indexes exist they are rebuilt at startup, however the rebuilding happens too soon before any Examine event handlers are actually wired up. Updates examine version to facilitate this. Adds ability to tokenize the {machinename} in an examine index path. --- src/Umbraco.Tests/Umbraco.Tests.csproj | 4 +- src/Umbraco.Tests/packages.config | 6 +- src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 15 +++-- src/Umbraco.Web.UI/packages.config | 6 +- src/Umbraco.Web/Umbraco.Web.csproj | 6 +- src/Umbraco.Web/WebBootManager.cs | 32 ++++++++- src/Umbraco.Web/packages.config | 6 +- .../UmbracoExamine.PDF.csproj | 10 +-- src/UmbracoExamine.PDF/packages.config | 6 +- src/UmbracoExamine/BaseUmbracoIndexer.cs | 10 +++ src/UmbracoExamine/ExamineHelper.cs | 67 +++++++++++++++++++ src/UmbracoExamine/UmbracoExamine.csproj | 1 + src/UmbracoExamine/UmbracoExamineSearcher.cs | 5 ++ src/UmbracoExamine/packages.config | 6 +- src/umbraco.MacroEngines/packages.config | 6 +- .../umbraco.MacroEngines.csproj | 4 +- 16 files changed, 156 insertions(+), 34 deletions(-) create mode 100644 src/UmbracoExamine/ExamineHelper.cs diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index a646c453b3..ba7925a2e1 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -58,9 +58,9 @@ ..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.Net4.dll - + False - ..\packages\Examine.0.1.57.2941\lib\Examine.dll + ..\packages\Examine.0.1.58.2941\lib\Examine.dll False diff --git a/src/Umbraco.Tests/packages.config b/src/Umbraco.Tests/packages.config index 00faf20700..3324f4f82e 100644 --- a/src/Umbraco.Tests/packages.config +++ b/src/Umbraco.Tests/packages.config @@ -2,9 +2,9 @@ - + - + @@ -21,6 +21,6 @@ - + \ No newline at end of file diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index fa41a70892..9b8b1c1ad5 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -127,10 +127,13 @@ False ..\packages\dotless.1.4.1.0\lib\dotless.Core.dll - + False - ..\packages\Examine.0.1.57.2941\lib\Examine.dll - True + ..\packages\Examine.0.1.58.2941\lib\Examine.dll + + + False + ..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll False @@ -144,6 +147,10 @@ False ..\packages\log4net-mediumtrust.2.0.0\lib\log4net.dll + + False + ..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll + ..\packages\Microsoft.Bcl.Async.1.0.165\lib\net45\Microsoft.Threading.Tasks.dll @@ -2544,7 +2551,7 @@ xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.0\x86\*.* "$(TargetDir)x86\" True 7200 / - http://localhost:7200 + http://localhost:7210 False False diff --git a/src/Umbraco.Web.UI/packages.config b/src/Umbraco.Web.UI/packages.config index 242df129d3..f16b109766 100644 --- a/src/Umbraco.Web.UI/packages.config +++ b/src/Umbraco.Web.UI/packages.config @@ -4,11 +4,11 @@ - + - + @@ -24,7 +24,7 @@ - + \ No newline at end of file diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 3b043bb52a..80c913e750 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -1,4 +1,4 @@ - + @@ -115,9 +115,9 @@ ..\packages\dotless.1.4.1.0\lib\dotless.Core.dll - + False - ..\packages\Examine.0.1.57.2941\lib\Examine.dll + ..\packages\Examine.0.1.58.2941\lib\Examine.dll False diff --git a/src/Umbraco.Web/WebBootManager.cs b/src/Umbraco.Web/WebBootManager.cs index 6dfd15c0aa..a4adc5af29 100644 --- a/src/Umbraco.Web/WebBootManager.cs +++ b/src/Umbraco.Web/WebBootManager.cs @@ -10,6 +10,7 @@ using System.Web.Http.Dispatcher; using System.Web.Mvc; using System.Web.Routing; using ClientDependency.Core.Config; +using Examine; using Umbraco.Core; using Umbraco.Core.Configuration; using Umbraco.Core.Dictionary; @@ -47,6 +48,8 @@ namespace Umbraco.Web public class WebBootManager : CoreBootManager { private readonly bool _isForTesting; + //NOTE: see the Initialize method for what this is used for + private List _indexesToRebuild = new List(); public WebBootManager(UmbracoApplicationBase umbracoApplication) : this(umbracoApplication, false) @@ -71,6 +74,13 @@ namespace Umbraco.Web /// public override IBootManager Initialize() { + //This is basically a hack for this item: http://issues.umbraco.org/issue/U4-5976 + // when Examine initializes it will try to rebuild if the indexes are empty, however in many cases not all of Examine's + // event handlers will be assigned during bootup when the rebuilding starts which is a problem. So with the examine 0.1.58.2941 build + // it has an event we can subscribe to in order to cancel this rebuilding process, but what we'll do is cancel it and postpone the rebuilding until the + // boot process has completed. It's a hack but it works. + ExamineManager.Instance.BuildingEmptyIndexOnStartup += OnInstanceOnBuildingEmptyIndexOnStartup; + base.Initialize(); // Backwards compatibility - set the path and URL type for ClientDependency 1.5.1 [LK] @@ -109,7 +119,7 @@ namespace Umbraco.Web return this; } - + /// /// Override this method in order to ensure that the UmbracoContext is also created, this can only be /// created after resolution is frozen! @@ -163,6 +173,18 @@ namespace Umbraco.Web //Now, startup all of our legacy startup handler ApplicationEventsResolver.Current.InstantiateLegacyStartupHandlers(); + + //Ok, now that everything is complete we'll check if we've stored any references to index that need rebuilding and run them + // (see the initialize method for notes) - we'll ensure we remove the event handler too in case examine manager doesn't actually + // initialize during startup, in which case we want it to rebuild the indexes itself. + ExamineManager.Instance.BuildingEmptyIndexOnStartup -= OnInstanceOnBuildingEmptyIndexOnStartup; + if (_indexesToRebuild.Any()) + { + foreach (var indexer in _indexesToRebuild) + { + indexer.RebuildIndex(); + } + } return this; } @@ -398,5 +420,13 @@ namespace Umbraco.Web new DefaultCultureDictionaryFactory()); } + + private void OnInstanceOnBuildingEmptyIndexOnStartup(object sender, BuildingEmptyIndexOnStartupEventArgs args) + { + //store the indexer that needs rebuilding because it's empty for when the boot process + // is complete and cancel this current event so the rebuild process doesn't start right now. + args.Cancel = true; + _indexesToRebuild.Add(args.Indexer); + } } } diff --git a/src/Umbraco.Web/packages.config b/src/Umbraco.Web/packages.config index 00b202b453..0a976f2457 100644 --- a/src/Umbraco.Web/packages.config +++ b/src/Umbraco.Web/packages.config @@ -3,9 +3,9 @@ - + - + @@ -18,7 +18,7 @@ - + \ No newline at end of file diff --git a/src/UmbracoExamine.PDF/UmbracoExamine.PDF.csproj b/src/UmbracoExamine.PDF/UmbracoExamine.PDF.csproj index 467e399898..699b8c4017 100644 --- a/src/UmbracoExamine.PDF/UmbracoExamine.PDF.csproj +++ b/src/UmbracoExamine.PDF/UmbracoExamine.PDF.csproj @@ -46,18 +46,20 @@ false - + False - ..\packages\Examine.0.1.57.2941\lib\Examine.dll + ..\packages\Examine.0.1.58.2941\lib\Examine.dll - + + False ..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll False ..\packages\iTextSharp.5.5.3\lib\itextsharp.dll - + + False ..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll diff --git a/src/UmbracoExamine.PDF/packages.config b/src/UmbracoExamine.PDF/packages.config index 8c606c6b93..8f5fa8e4cc 100644 --- a/src/UmbracoExamine.PDF/packages.config +++ b/src/UmbracoExamine.PDF/packages.config @@ -1,7 +1,7 @@  - + - - + + \ No newline at end of file diff --git a/src/UmbracoExamine/BaseUmbracoIndexer.cs b/src/UmbracoExamine/BaseUmbracoIndexer.cs index 44ecb0cfcb..395b2fef3f 100644 --- a/src/UmbracoExamine/BaseUmbracoIndexer.cs +++ b/src/UmbracoExamine/BaseUmbracoIndexer.cs @@ -6,8 +6,10 @@ using System.Security; using System.Text; using System.Threading; using System.Web; +using Examine.LuceneEngine.Config; using Examine.LuceneEngine.Providers; using Lucene.Net.Analysis; +using Lucene.Net.Documents; using Umbraco.Core; using umbraco.BasePages; using umbraco.BusinessLogic; @@ -136,6 +138,11 @@ namespace UmbracoExamine DataService.LogService.AddVerboseLog(-1, string.Format("{0} indexer initializing", name)); + //Before we initialize the base provider which is going to setup all of the directory structures based on the index + // set, we want to dynamically override the index working folder based on a given token. Currently we only support one + // and that is {machinename} + ExamineHelper.ReplaceTokensInIndexPath(name, config, "Indexer", () => IndexerData != null); + base.Initialize(name, config); } @@ -368,6 +375,9 @@ namespace UmbracoExamine } } + + + #endregion } } diff --git a/src/UmbracoExamine/ExamineHelper.cs b/src/UmbracoExamine/ExamineHelper.cs new file mode 100644 index 0000000000..21141835ce --- /dev/null +++ b/src/UmbracoExamine/ExamineHelper.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Examine; +using Examine.LuceneEngine.Config; +using Umbraco.Core; + +namespace UmbracoExamine +{ + internal class ExamineHelper + { + /// + /// Used to replace any available tokens in the index path before the lucene directory is assigned to the path + /// + /// + /// + /// + /// + public static void ReplaceTokensInIndexPath(string name, System.Collections.Specialized.NameValueCollection config, string matchingVerb, Func alreadyConfiguredCheck) + { + var indexSet = GetConfiguredIndexSet(name, config, matchingVerb, alreadyConfiguredCheck); + if (indexSet == null) return; + indexSet.IndexPath = indexSet.IndexPath.Replace("{machinename}", NetworkHelper.FileSafeMachineName).EnsureEndsWith('/'); + } + + public static IndexSet GetConfiguredIndexSet(string name, System.Collections.Specialized.NameValueCollection config, string matchingVerb, Func alreadyConfiguredCheck) + { + //Need to check if the index set or IndexerData is specified... + + if (config["indexSet"] == null && alreadyConfiguredCheck() == false) + { + //if we don't have either, then we'll try to set the index set by naming conventions + if (name.EndsWith(matchingVerb)) + { + var setNameByConvension = name.Remove(name.LastIndexOf(matchingVerb)) + "IndexSet"; + //check if we can assign the index set by naming convention + var set = IndexSets.Instance.Sets.Cast().SingleOrDefault(x => x.SetName == setNameByConvension); + + if (set != null) + { + //we've found an index set by naming conventions :) + return set; + } + } + + throw new ArgumentNullException("indexSet on LuceneExamineIndexer provider has not been set in configuration and/or the IndexerData property has not been explicitly set"); + } + + if (config["indexSet"] != null) + { + //if an index set is specified, ensure it exists and initialize the indexer based on the set + + if (IndexSets.Instance.Sets[config["indexSet"]] == null) + { + throw new ArgumentException("The indexSet specified for the LuceneExamineIndexer provider does not exist"); + } + var indexSetName = config["indexSet"]; + return IndexSets.Instance.Sets[indexSetName]; + } + + //it's already configured internally + return null; + } + } +} diff --git a/src/UmbracoExamine/UmbracoExamine.csproj b/src/UmbracoExamine/UmbracoExamine.csproj index 55099b0bcd..a697577a2e 100644 --- a/src/UmbracoExamine/UmbracoExamine.csproj +++ b/src/UmbracoExamine/UmbracoExamine.csproj @@ -119,6 +119,7 @@ + diff --git a/src/UmbracoExamine/UmbracoExamineSearcher.cs b/src/UmbracoExamine/UmbracoExamineSearcher.cs index f0fe4c8681..2380db62f3 100644 --- a/src/UmbracoExamine/UmbracoExamineSearcher.cs +++ b/src/UmbracoExamine/UmbracoExamineSearcher.cs @@ -67,6 +67,11 @@ namespace UmbracoExamine return; } + //Before we initialize the base provider which is going to setup all of the directory structures based on the index + // set, we want to dynamically override the index working folder based on a given token. Currently we only support one + // and that is {machinename} + ExamineHelper.ReplaceTokensInIndexPath(name, config, "Searcher", () => LuceneIndexFolder != null); + base.Initialize(name, config); if (config != null && config["useTempStorage"] != null) diff --git a/src/UmbracoExamine/packages.config b/src/UmbracoExamine/packages.config index 7e2ea1daf3..ec889e9ef6 100644 --- a/src/UmbracoExamine/packages.config +++ b/src/UmbracoExamine/packages.config @@ -1,6 +1,6 @@  - - - + + + \ No newline at end of file diff --git a/src/umbraco.MacroEngines/packages.config b/src/umbraco.MacroEngines/packages.config index 4e08586b64..a45a7bffca 100644 --- a/src/umbraco.MacroEngines/packages.config +++ b/src/umbraco.MacroEngines/packages.config @@ -1,8 +1,8 @@  - + - + @@ -13,5 +13,5 @@ - + \ No newline at end of file diff --git a/src/umbraco.MacroEngines/umbraco.MacroEngines.csproj b/src/umbraco.MacroEngines/umbraco.MacroEngines.csproj index 6651f0c2ee..6980ac43ff 100644 --- a/src/umbraco.MacroEngines/umbraco.MacroEngines.csproj +++ b/src/umbraco.MacroEngines/umbraco.MacroEngines.csproj @@ -45,9 +45,9 @@ false - + False - ..\packages\Examine.0.1.57.2941\lib\Examine.dll + ..\packages\Examine.0.1.58.2941\lib\Examine.dll False From 78bee017ca1ecf4c89c570cd91503dd06bfa5313 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 9 Dec 2014 19:10:57 +1100 Subject: [PATCH 174/310] Updates nuspec to have a min examine version of 0.1.58 and prettifies their structure. --- .../UmbracoCms.Core.AllBinaries.nuspec | 142 +++++++++--------- build/NuSpecs/UmbracoCms.Core.Symbols.nuspec | 136 ++++++++--------- build/NuSpecs/UmbracoCms.Core.nuspec | 140 ++++++++--------- build/NuSpecs/UmbracoCms.nuspec | 74 ++++----- build/NuSpecs/UmbracoExamine.PDF.nuspec | 40 ++--- 5 files changed, 266 insertions(+), 266 deletions(-) diff --git a/build/NuSpecs/UmbracoCms.Core.AllBinaries.nuspec b/build/NuSpecs/UmbracoCms.Core.AllBinaries.nuspec index fa3881dc92..517f0d441e 100644 --- a/build/NuSpecs/UmbracoCms.Core.AllBinaries.nuspec +++ b/build/NuSpecs/UmbracoCms.Core.AllBinaries.nuspec @@ -1,74 +1,74 @@ - - UmbracoCms.Core.AllBinaries - 6.1.2 - Umbraco Cms Core All Binaries - Morten Christensen - Umbraco HQ - http://umbraco.codeplex.com/license - http://umbraco.com/ - http://umbraco.com/media/357769/100px_transparent.png - false - Contains the core assemblies and all of the dependant assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project. - Contains the core assemblies and all of the dependant assemblies needed to run Umbraco Cms - en-US - umbraco - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + UmbracoCms.Core.AllBinaries + 6.1.2 + Umbraco Cms Core All Binaries + Morten Christensen + Umbraco HQ + http://umbraco.codeplex.com/license + http://umbraco.com/ + http://umbraco.com/media/357769/100px_transparent.png + false + Contains the core assemblies and all of the dependant assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project. + Contains the core assemblies and all of the dependant assemblies needed to run Umbraco Cms + en-US + umbraco + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build/NuSpecs/UmbracoCms.Core.Symbols.nuspec b/build/NuSpecs/UmbracoCms.Core.Symbols.nuspec index 7acbfed18c..29f7365017 100644 --- a/build/NuSpecs/UmbracoCms.Core.Symbols.nuspec +++ b/build/NuSpecs/UmbracoCms.Core.Symbols.nuspec @@ -1,71 +1,71 @@ - - UmbracoCms.Core - 7.0.0 - Umbraco Cms Core Binaries - Umbraco HQ - Umbraco HQ - http://umbraco.codeplex.com/license - http://umbraco.com/ - http://umbraco.com/media/357769/100px_transparent.png - false - Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project. - Contains the core assemblies needed to run Umbraco Cms - en-US - umbraco - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + UmbracoCms.Core + 7.0.0 + Umbraco Cms Core Binaries + Umbraco HQ + Umbraco HQ + http://umbraco.codeplex.com/license + http://umbraco.com/ + http://umbraco.com/media/357769/100px_transparent.png + false + Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project. + Contains the core assemblies needed to run Umbraco Cms + en-US + umbraco + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build/NuSpecs/UmbracoCms.Core.nuspec b/build/NuSpecs/UmbracoCms.Core.nuspec index cef82a65f3..1ef6f9f75c 100644 --- a/build/NuSpecs/UmbracoCms.Core.nuspec +++ b/build/NuSpecs/UmbracoCms.Core.nuspec @@ -1,73 +1,73 @@ - - UmbracoCms.Core - 7.0.0 - Umbraco Cms Core Binaries - Umbraco HQ - Umbraco HQ - http://umbraco.codeplex.com/license - http://umbraco.com/ - http://umbraco.com/media/357769/100px_transparent.png - false - Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project. - Contains the core assemblies needed to run Umbraco Cms - en-US - umbraco - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + UmbracoCms.Core + 7.0.0 + Umbraco Cms Core Binaries + Umbraco HQ + Umbraco HQ + http://umbraco.codeplex.com/license + http://umbraco.com/ + http://umbraco.com/media/357769/100px_transparent.png + false + Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project. + Contains the core assemblies needed to run Umbraco Cms + en-US + umbraco + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build/NuSpecs/UmbracoCms.nuspec b/build/NuSpecs/UmbracoCms.nuspec index b4b264e463..a184b79d5d 100644 --- a/build/NuSpecs/UmbracoCms.nuspec +++ b/build/NuSpecs/UmbracoCms.nuspec @@ -1,43 +1,43 @@ - - UmbracoCms - 7.0.0 - Umbraco Cms - Umbraco HQ - Umbraco HQ - http://umbraco.codeplex.com/license - http://umbraco.com/ - http://umbraco.com/media/357769/100px_transparent.png - false - Installs Umbraco Cms in your Visual Studio ASP.NET project - Installs Umbraco Cms in your Visual Studio ASP.NET project - en-US - umbraco - - - - - + + UmbracoCms + 7.0.0 + Umbraco Cms + Umbraco HQ + Umbraco HQ + http://umbraco.codeplex.com/license + http://umbraco.com/ + http://umbraco.com/media/357769/100px_transparent.png + false + Installs Umbraco Cms in your Visual Studio ASP.NET project + Installs Umbraco Cms in your Visual Studio ASP.NET project + en-US + umbraco + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/build/NuSpecs/UmbracoExamine.PDF.nuspec b/build/NuSpecs/UmbracoExamine.PDF.nuspec index 3b6869cde2..ca4acdcc36 100644 --- a/build/NuSpecs/UmbracoExamine.PDF.nuspec +++ b/build/NuSpecs/UmbracoExamine.PDF.nuspec @@ -1,23 +1,23 @@  - - UmbracoExamine.PDF - 0.7.0 - Umbraco HQ - Umbraco HQ - http://umbraco.codeplex.com/license - http://umbraco.com/ - http://umbraco.com/media/357769/100px_transparent.png - false - UmbracoExmine.PDF - umbraco - - - - - - - - - + + UmbracoExamine.PDF + 0.7.0 + Umbraco HQ + Umbraco HQ + http://umbraco.codeplex.com/license + http://umbraco.com/ + http://umbraco.com/media/357769/100px_transparent.png + false + UmbracoExmine.PDF + umbraco + + + + + + + + + \ No newline at end of file From d857743bf3903f1673f432e43d110143515571a5 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 9 Dec 2014 19:15:47 +1100 Subject: [PATCH 175/310] moves the local storage logic to the BaseUmbracoIndexer --- src/UmbracoExamine/BaseUmbracoIndexer.cs | 45 ++++++++++++++++++++- src/UmbracoExamine/UmbracoContentIndexer.cs | 43 ++------------------ 2 files changed, 47 insertions(+), 41 deletions(-) diff --git a/src/UmbracoExamine/BaseUmbracoIndexer.cs b/src/UmbracoExamine/BaseUmbracoIndexer.cs index 395b2fef3f..351c7be985 100644 --- a/src/UmbracoExamine/BaseUmbracoIndexer.cs +++ b/src/UmbracoExamine/BaseUmbracoIndexer.cs @@ -10,6 +10,7 @@ using Examine.LuceneEngine.Config; using Examine.LuceneEngine.Providers; using Lucene.Net.Analysis; using Lucene.Net.Documents; +using Lucene.Net.Index; using Umbraco.Core; using umbraco.BasePages; using umbraco.BusinessLogic; @@ -17,6 +18,7 @@ using UmbracoExamine.DataServices; using Examine; using System.IO; using System.Xml.Linq; +using UmbracoExamine.LocalStorage; namespace UmbracoExamine { @@ -62,6 +64,7 @@ namespace UmbracoExamine /// Used for unit tests /// internal static bool? DisableInitializationCheck = null; + private readonly LocalTempStorageIndexer _localTempStorageHelper = new LocalTempStorageIndexer(); #region Properties @@ -97,7 +100,21 @@ namespace UmbracoExamine /// /// public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config) - { + { + if (config != null && config["useTempStorage"] != null) + { + //Use the temp storage directory which will store the index in the local/codegen folder, this is useful + // for websites that are running from a remove file server and file IO latency becomes an issue + var attemptUseTempStorage = config["useTempStorage"].TryConvertTo(); + if (attemptUseTempStorage) + { + var indexSet = IndexSets.Instance.Sets[IndexSetName]; + var configuredPath = indexSet.IndexPath; + + _localTempStorageHelper.Initialize(config, configuredPath, base.GetLuceneDirectory(), IndexingAnalyzer); + } + } + if (config["dataService"] != null && !string.IsNullOrEmpty(config["dataService"])) { //this should be a fully qualified type @@ -148,6 +165,32 @@ namespace UmbracoExamine #endregion + public override Lucene.Net.Store.Directory GetLuceneDirectory() + { + //if temp local storage is configured use that, otherwise return the default + if (_localTempStorageHelper.LuceneDirectory != null) + { + return _localTempStorageHelper.LuceneDirectory; + } + + return base.GetLuceneDirectory(); + + } + + public override IndexWriter GetIndexWriter() + { + //if temp local storage is configured use that, otherwise return the default + if (_localTempStorageHelper.LuceneDirectory != null) + { + return new IndexWriter(GetLuceneDirectory(), IndexingAnalyzer, + //create the writer with the snapshotter, though that won't make too much a difference because we are not keeping the writer open unless using nrt + // which we are not currently. + _localTempStorageHelper.Snapshotter, + IndexWriter.MaxFieldLength.UNLIMITED); + } + + return base.GetIndexWriter(); + } ///// ///// Override to check if we can actually initialize. diff --git a/src/UmbracoExamine/UmbracoContentIndexer.cs b/src/UmbracoExamine/UmbracoContentIndexer.cs index d154c748a4..26ae4a9f5f 100644 --- a/src/UmbracoExamine/UmbracoContentIndexer.cs +++ b/src/UmbracoExamine/UmbracoContentIndexer.cs @@ -122,7 +122,7 @@ namespace UmbracoExamine #region Constants & Fields - private readonly LocalTempStorageIndexer _localTempStorageHelper = new LocalTempStorageIndexer(); + /// /// Used to store the path of a content object @@ -208,19 +208,7 @@ namespace UmbracoExamine base.Initialize(name, config); - if (config != null && config["useTempStorage"] != null) - { - //Use the temp storage directory which will store the index in the local/codegen folder, this is useful - // for websites that are running from a remove file server and file IO latency becomes an issue - var attemptUseTempStorage = config["useTempStorage"].TryConvertTo(); - if (attemptUseTempStorage) - { - var indexSet = IndexSets.Instance.Sets[IndexSetName]; - var configuredPath = indexSet.IndexPath; - - _localTempStorageHelper.Initialize(config, configuredPath, base.GetLuceneDirectory(), IndexingAnalyzer); - } - } + } @@ -296,32 +284,7 @@ namespace UmbracoExamine #region Public methods - public override Lucene.Net.Store.Directory GetLuceneDirectory() - { - //if temp local storage is configured use that, otherwise return the default - if (_localTempStorageHelper.LuceneDirectory != null) - { - return _localTempStorageHelper.LuceneDirectory; - } - - return base.GetLuceneDirectory(); - - } - - public override IndexWriter GetIndexWriter() - { - //if temp local storage is configured use that, otherwise return the default - if (_localTempStorageHelper.LuceneDirectory != null) - { - return new IndexWriter(GetLuceneDirectory(), IndexingAnalyzer, - //create the writer with the snapshotter, though that won't make too much a difference because we are not keeping the writer open unless using nrt - // which we are not currently. - _localTempStorageHelper.Snapshotter, - IndexWriter.MaxFieldLength.UNLIMITED); - } - - return base.GetIndexWriter(); - } + /// From c8f80453b95957e9f4316a1cf6b52a5c513fc2f7 Mon Sep 17 00:00:00 2001 From: Stephan Date: Tue, 9 Dec 2014 09:33:19 +0100 Subject: [PATCH 176/310] U4-5929 - support IDN in hostnames --- src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx | 1 + src/Umbraco.Web.UI/umbraco_client/Dialogs/AssignDomain2.js | 1 + src/Umbraco.Web.UI/umbraco_client/PunyCode/punycode.min.js | 2 ++ .../umbraco.presentation/umbraco/dialogs/AssignDomain2.aspx | 1 + 4 files changed, 5 insertions(+) create mode 100644 src/Umbraco.Web.UI/umbraco_client/PunyCode/punycode.min.js diff --git a/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx b/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx index 3787799ed4..2464e9446b 100644 --- a/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx +++ b/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx @@ -5,6 +5,7 @@ + + diff --git a/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js b/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js index 94a84f0749..057e9c3b27 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js @@ -230,11 +230,11 @@ angular.module('umbraco.services') asset.state = "loaded"; asset.deferred.resolve(true); }else{ - asset.state = "loaded"; + asset.state = "loaded"; angularHelper.safeApply(scope, function () { asset.deferred.resolve(true); - }); - } + }); + } }); }); }else{ diff --git a/src/Umbraco.Web.UI.Client/src/index.html b/src/Umbraco.Web.UI.Client/src/index.html index 6a1b32b03f..a16987ce2c 100644 --- a/src/Umbraco.Web.UI.Client/src/index.html +++ b/src/Umbraco.Web.UI.Client/src/index.html @@ -1,4 +1,4 @@ - + @@ -12,7 +12,7 @@
- +
@@ -22,7 +22,7 @@ - - + + diff --git a/src/Umbraco.Web.UI.Client/src/install.loader.js b/src/Umbraco.Web.UI.Client/src/install.loader.js index a9699283fa..66f00f742c 100644 --- a/src/Umbraco.Web.UI.Client/src/install.loader.js +++ b/src/Umbraco.Web.UI.Client/src/install.loader.js @@ -6,7 +6,7 @@ LazyLoad.js( [ 'lib/angular/1.1.5/angular-mobile.min.js', 'lib/angular/1.1.5/angular-mocks.js', 'lib/angular/1.1.5/angular-sanitize.min.js', - 'lib/underscore/underscore.js', + 'lib/underscore/underscore-min.js', 'js/umbraco.installer.js' ], function () { jQuery(document).ready(function () { diff --git a/src/Umbraco.Web.UI.Client/src/installer/installer.html b/src/Umbraco.Web.UI.Client/src/installer/installer.html index c736515c96..6a644bf3d7 100644 --- a/src/Umbraco.Web.UI.Client/src/installer/installer.html +++ b/src/Umbraco.Web.UI.Client/src/installer/installer.html @@ -1,4 +1,4 @@ - + @@ -17,8 +17,8 @@
-
- +
+ diff --git a/src/Umbraco.Web.UI.Client/src/loader.js b/src/Umbraco.Web.UI.Client/src/loader.js index 735159459f..9ba166a2c2 100644 --- a/src/Umbraco.Web.UI.Client/src/loader.js +++ b/src/Umbraco.Web.UI.Client/src/loader.js @@ -22,7 +22,7 @@ LazyLoad.js( 'lib/jquery/jquery.upload/js/jquery.fileupload-angular.js', 'lib/bootstrap/js/bootstrap.2.3.2.min.js', - 'lib/underscore/underscore.js', + 'lib/underscore/underscore-min.js', 'lib/umbraco/Extensions.js', 'lib/umbraco/NamespaceManager.js', diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js index 3531b13dfa..62cf96a894 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js @@ -7,7 +7,7 @@ angular.module("umbraco") $scope.isLoading = true; $scope.tagToAdd = ""; - assetsService.loadJs("lib/typeahead/typeahead.bundle.min.js").then(function () { + assetsService.loadJs("lib/typeahead-js/typeahead.bundle.min.js").then(function () { $scope.isLoading = false; diff --git a/src/Umbraco.Web.UI.Client/test/config/karma.conf.js b/src/Umbraco.Web.UI.Client/test/config/karma.conf.js index d7d5786246..8df9c90183 100644 --- a/src/Umbraco.Web.UI.Client/test/config/karma.conf.js +++ b/src/Umbraco.Web.UI.Client/test/config/karma.conf.js @@ -23,9 +23,9 @@ module.exports = function(karma) { 'lib/angular/1.2/angular-mocks.js',*/ - 'lib/underscore/underscore.js', + 'lib/../build/belle/lib/underscore/underscore-min.js', 'lib/umbraco/Extensions.js', - 'lib/lazyload/lazyload.min.js', + 'lib/../build/belle/lib/rgrove-lazyload/lazyload.js', 'test/config/app.unit.js', diff --git a/src/Umbraco.Web.UI/Umbraco/Views/AuthorizeUpgrade.cshtml b/src/Umbraco.Web.UI/Umbraco/Views/AuthorizeUpgrade.cshtml index 99ba4410b8..ff307364f7 100644 --- a/src/Umbraco.Web.UI/Umbraco/Views/AuthorizeUpgrade.cshtml +++ b/src/Umbraco.Web.UI/Umbraco/Views/AuthorizeUpgrade.cshtml @@ -54,7 +54,7 @@ @*And finally we can load in our angular app*@ - + diff --git a/src/Umbraco.Web.UI/Umbraco/js/install.loader.js b/src/Umbraco.Web.UI/Umbraco/js/install.loader.js index a9699283fa..66f00f742c 100644 --- a/src/Umbraco.Web.UI/Umbraco/js/install.loader.js +++ b/src/Umbraco.Web.UI/Umbraco/js/install.loader.js @@ -6,7 +6,7 @@ LazyLoad.js( [ 'lib/angular/1.1.5/angular-mobile.min.js', 'lib/angular/1.1.5/angular-mocks.js', 'lib/angular/1.1.5/angular-sanitize.min.js', - 'lib/underscore/underscore.js', + 'lib/underscore/underscore-min.js', 'js/umbraco.installer.js' ], function () { jQuery(document).ready(function () { diff --git a/src/Umbraco.Web.UI/umbraco/Install/Views/Index.cshtml b/src/Umbraco.Web.UI/umbraco/Install/Views/Index.cshtml index 5673ceff68..8171aad9e2 100644 --- a/src/Umbraco.Web.UI/umbraco/Install/Views/Index.cshtml +++ b/src/Umbraco.Web.UI/umbraco/Install/Views/Index.cshtml @@ -54,7 +54,7 @@ "umbracoBaseUrl": "@ViewBag.UmbracoBaseFolder" }; - + diff --git a/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml b/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml index 37c5534fae..a7ef52979d 100644 --- a/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml +++ b/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml @@ -62,7 +62,7 @@ @*And finally we can load in our angular app*@ - + @{ diff --git a/src/Umbraco.Web/UI/JavaScript/JsInitialize.js b/src/Umbraco.Web/UI/JavaScript/JsInitialize.js index ade47fcd84..09a61b029e 100644 --- a/src/Umbraco.Web/UI/JavaScript/JsInitialize.js +++ b/src/Umbraco.Web/UI/JavaScript/JsInitialize.js @@ -1,7 +1,7 @@ [ 'lib/jquery/jquery-2.0.3.min.js', 'lib/angular/1.1.5/angular.min.js', - 'lib/underscore/underscore.js', + 'lib/underscore/underscore-min.js', 'lib/jquery/jquery-ui-1.10.3.custom.min.js', From 73e9ff04e80df4bb1aac610c7b78ad394d0266cc Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 2 Jan 2015 15:34:51 +1100 Subject: [PATCH 263/310] Fixes: U4-5943 Cannot render a macro on a virtual page when using UmbracoVirtualNodeRouteHandler and assigning virtual Ids --- .../Macros/PartialViewMacroEngine.cs | 8 +- src/Umbraco.Web/Models/LegacyConvertedNode.cs | 182 ++++++++++++++++++ .../Models/LegacyConvertedNodeProperty.cs | 54 ++++++ src/Umbraco.Web/Models/LegacyNodeHelper.cs | 25 +++ src/Umbraco.Web/Umbraco.Web.csproj | 4 +- .../CompatibilityHelper.cs | 163 ---------------- src/Umbraco.Web/umbraco.presentation/macro.cs | 16 +- .../RazorDynamicNode/DynamicBackingItem.cs | 5 +- 8 files changed, 284 insertions(+), 173 deletions(-) create mode 100644 src/Umbraco.Web/Models/LegacyConvertedNode.cs create mode 100644 src/Umbraco.Web/Models/LegacyConvertedNodeProperty.cs create mode 100644 src/Umbraco.Web/Models/LegacyNodeHelper.cs delete mode 100644 src/Umbraco.Web/umbraco.presentation/CompatibilityHelper.cs diff --git a/src/Umbraco.Web/Macros/PartialViewMacroEngine.cs b/src/Umbraco.Web/Macros/PartialViewMacroEngine.cs index 13267dd241..d1a435e48e 100644 --- a/src/Umbraco.Web/Macros/PartialViewMacroEngine.cs +++ b/src/Umbraco.Web/Macros/PartialViewMacroEngine.cs @@ -12,6 +12,7 @@ using Umbraco.Core.IO; using umbraco.cms.businesslogic.macro; using Umbraco.Core.Models; using umbraco.interfaces; +using Umbraco.Web.Models; using Umbraco.Web.Mvc; using Umbraco.Core; using System.Web.Mvc.Html; @@ -102,7 +103,12 @@ namespace Umbraco.Web.Macros public string Execute(MacroModel macro, INode node) { var umbCtx = _getUmbracoContext(); - return Execute(macro, umbCtx.ContentCache.GetById(node.Id)); + //NOTE: This is a bit of a nasty hack to check if the INode is actually already based on an IPublishedContent + // (will be the case when using LegacyConvertedNode ) + return Execute(macro, + (node is IPublishedContent) + ? (IPublishedContent)node + : umbCtx.ContentCache.GetById(node.Id)); } public string Execute(MacroModel macro, IPublishedContent content) diff --git a/src/Umbraco.Web/Models/LegacyConvertedNode.cs b/src/Umbraco.Web/Models/LegacyConvertedNode.cs new file mode 100644 index 0000000000..b2f5712364 --- /dev/null +++ b/src/Umbraco.Web/Models/LegacyConvertedNode.cs @@ -0,0 +1,182 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using Umbraco.Core.Models; +using Umbraco.Core.Models.PublishedContent; +using umbraco.interfaces; + +namespace Umbraco.Web.Models +{ + /// + /// A legacy INode that wraps IPublishedContent + /// + internal class LegacyConvertedNode : PublishedContentWrapped, INode + { + private readonly IPublishedContent _publishedContent; + private readonly int _id; + private readonly int _template; + private readonly int _sortOrder; + private readonly string _name; + private readonly string _urlName; + private readonly string _nodeTypeAlias; + private readonly string _writerName; + private readonly string _creatorName; + private readonly int _writerId; + private readonly int _creatorId; + private readonly string _path; + private readonly DateTime _createDate; + private readonly DateTime _updateDate; + private readonly Guid _version; + private readonly int _level; + + public LegacyConvertedNode(IPublishedContent publishedContent) : base(publishedContent) + { + _publishedContent = publishedContent; + + if (publishedContent == null) + { + _id = 0; + return; + } + + _template = publishedContent.TemplateId; + _id = publishedContent.Id; + _path = publishedContent.Path; + _creatorName = publishedContent.CreatorName; + _sortOrder = publishedContent.SortOrder; + _updateDate = publishedContent.UpdateDate; + _name = publishedContent.Name; + _nodeTypeAlias = publishedContent.DocumentTypeAlias; + _createDate = publishedContent.CreateDate; + _creatorId = publishedContent.CreatorId; + _level = publishedContent.Level; + _urlName = publishedContent.UrlName; + _version = publishedContent.Version; + _writerId = publishedContent.WriterId; + _writerName = publishedContent.WriterName; + } + + INode INode.Parent + { + get { return _publishedContent.Parent == null ? null : LegacyNodeHelper.ConvertToNode(_publishedContent.Parent); } + } + + int INode.Id + { + get { return _id; } + } + + int INode.template + { + get { return _template; } + } + + int INode.SortOrder + { + get { return _sortOrder; } + } + + string INode.Name + { + get { return _name; } + } + + string INode.UrlName + { + get { return _urlName; } + } + + string INode.NodeTypeAlias + { + get { return _nodeTypeAlias; } + } + + string INode.WriterName + { + get { return _writerName; } + } + + string INode.CreatorName + { + get { return _creatorName; } + } + + int INode.WriterID + { + get { return _writerId; } + } + + int INode.CreatorID + { + get { return _creatorId; } + } + + string INode.Path + { + get { return _path; } + } + + DateTime INode.CreateDate + { + get { return _createDate; } + } + + DateTime INode.UpdateDate + { + get { return _updateDate; } + } + + Guid INode.Version + { + get { return _version; } + } + + string INode.NiceUrl + { + get { return _publishedContent.Url; } + } + + string INode.Url + { + get { return _publishedContent.Url; } + } + + int INode.Level + { + get { return _level; } + } + + List INode.PropertiesAsList + { + get { return _publishedContent.Properties.Select(LegacyNodeHelper.ConvertToNodeProperty).ToList(); } + } + + List INode.ChildrenAsList + { + get { return _publishedContent.Children.Select(LegacyNodeHelper.ConvertToNode).ToList(); } + } + + IProperty INode.GetProperty(string alias) + { + return ((INode)this).PropertiesAsList.Cast().FirstOrDefault(p => p.Alias == alias); + } + + IProperty INode.GetProperty(string alias, out bool propertyExists) + { + var prop = _publishedContent.GetProperty(alias); + propertyExists = prop != null; + return prop == null ? null : LegacyNodeHelper.ConvertToNodeProperty(prop); + } + + DataTable INode.ChildrenAsTable() + { + return _publishedContent.ChildrenAsTable(); + } + + DataTable INode.ChildrenAsTable(string nodeTypeAliasFilter) + { + return _publishedContent.ChildrenAsTable(nodeTypeAliasFilter); + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Web/Models/LegacyConvertedNodeProperty.cs b/src/Umbraco.Web/Models/LegacyConvertedNodeProperty.cs new file mode 100644 index 0000000000..17ca6a39cc --- /dev/null +++ b/src/Umbraco.Web/Models/LegacyConvertedNodeProperty.cs @@ -0,0 +1,54 @@ +using System; +using System.Web; +using Umbraco.Core.Models; +using umbraco.interfaces; + +namespace Umbraco.Web.Models +{ + /// + /// A legacy IProperty that wraps IPublishedProperty + /// + internal class LegacyConvertedNodeProperty : IProperty, IHtmlString + { + public IPublishedProperty PublishedProperty { get; private set; } + + public LegacyConvertedNodeProperty(IPublishedProperty prop) + { + PublishedProperty = prop; + } + + public string Alias + { + get { return PublishedProperty.PropertyTypeAlias; } + } + + public string Value + { + get { return PublishedProperty.DataValue == null ? null : PublishedProperty.DataValue.ToString(); } + } + + public Guid Version + { + get { return Guid.Empty; } + } + + public bool IsNull() + { + return Value == null; + } + + public bool HasValue() + { + return PublishedProperty.HasValue; + } + + public int ContextId { get; set; } + public string ContextAlias { get; set; } + + // implements IHtmlString.ToHtmlString + public string ToHtmlString() + { + return Value; + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Web/Models/LegacyNodeHelper.cs b/src/Umbraco.Web/Models/LegacyNodeHelper.cs new file mode 100644 index 0000000000..6a102e54c8 --- /dev/null +++ b/src/Umbraco.Web/Models/LegacyNodeHelper.cs @@ -0,0 +1,25 @@ +using Umbraco.Core.Models; +using umbraco.interfaces; + +namespace Umbraco.Web.Models +{ + /// + /// Used to convert to/from the legacy INode from IPublishedContent + /// + internal static class LegacyNodeHelper + { + // NOTE - moved from umbraco.MacroEngines to avoid circ. references + + public static INode ConvertToNode(IPublishedContent doc) + { + var node = new LegacyConvertedNode(doc); + return node; + } + + public static IProperty ConvertToNodeProperty(IPublishedProperty prop) + { + return new LegacyConvertedNodeProperty(prop); + } + + } +} diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 7e649e4246..ccb7b12cd2 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -268,6 +268,8 @@ + + @@ -739,7 +741,7 @@ - + ASPXCodeBehind diff --git a/src/Umbraco.Web/umbraco.presentation/CompatibilityHelper.cs b/src/Umbraco.Web/umbraco.presentation/CompatibilityHelper.cs deleted file mode 100644 index 9aa57012af..0000000000 --- a/src/Umbraco.Web/umbraco.presentation/CompatibilityHelper.cs +++ /dev/null @@ -1,163 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Linq; -using System.Text; -using System.Web; -using Umbraco.Core.Models; -using umbraco.interfaces; - -namespace Umbraco.Web.umbraco.presentation -{ - static class CompatibilityHelper - { - // NOTE - moved from umbraco.MacroEngines to avoid circ. references - - public static INode ConvertToNode(IPublishedContent doc) - { - var node = new ConvertedNode(doc); - return node; - } - - private static IProperty ConvertToNodeProperty(IPublishedProperty prop) - { - return new ConvertedProperty(prop); - } - - private class ConvertedNode : INode - { - private readonly IPublishedContent _doc; - - public ConvertedNode(IPublishedContent doc) - { - _doc = doc; - - if (doc == null) - { - Id = 0; - return; - } - - template = doc.TemplateId; - Id = doc.Id; - Path = doc.Path; - CreatorName = doc.CreatorName; - SortOrder = doc.SortOrder; - UpdateDate = doc.UpdateDate; - Name = doc.Name; - NodeTypeAlias = doc.DocumentTypeAlias; - CreateDate = doc.CreateDate; - CreatorID = doc.CreatorId; - Level = doc.Level; - UrlName = doc.UrlName; - Version = doc.Version; - WriterID = doc.WriterId; - WriterName = doc.WriterName; - } - - public INode Parent - { - get { return _doc.Parent == null ? null : ConvertToNode(_doc.Parent); } - } - public int Id { get; private set; } - public int template { get; private set; } - public int SortOrder { get; private set; } - public string Name { get; private set; } - public string UrlName { get; private set; } - public string NodeTypeAlias { get; private set; } - public string WriterName { get; private set; } - public string CreatorName { get; private set; } - public int WriterID { get; private set; } - public int CreatorID { get; private set; } - public string Path { get; private set; } - public DateTime CreateDate { get; private set; } - public DateTime UpdateDate { get; private set; } - public Guid Version { get; private set; } - - public string NiceUrl - { - get { return _doc.Url; } - } - - public string Url - { - get { return _doc.Url; } - } - - public int Level { get; private set; } - public List PropertiesAsList - { - get { return _doc.Properties.Select(ConvertToNodeProperty).ToList(); } - } - public List ChildrenAsList - { - get { return _doc.Children.Select(ConvertToNode).ToList(); } - } - public IProperty GetProperty(string alias) - { - return PropertiesAsList.Cast().FirstOrDefault(p => p.Alias == alias); - } - - public IProperty GetProperty(string alias, out bool propertyExists) - { - var prop = _doc.GetProperty(alias); - propertyExists = prop != null; - return prop == null ? null : ConvertToNodeProperty(prop); - } - - public DataTable ChildrenAsTable() - { - return _doc.ChildrenAsTable(); - } - - public DataTable ChildrenAsTable(string nodeTypeAliasFilter) - { - return _doc.ChildrenAsTable(nodeTypeAliasFilter); - } - } - - private class ConvertedProperty : IProperty, IHtmlString - { - private readonly IPublishedProperty _prop; - - public ConvertedProperty(IPublishedProperty prop) - { - _prop = prop; - } - - public string Alias - { - get { return _prop.PropertyTypeAlias; } - } - - public string Value - { - get { return _prop.DataValue == null ? null : _prop.DataValue.ToString(); } - } - - public Guid Version - { - get { return Guid.Empty; } - } - - public bool IsNull() - { - return Value == null; - } - - public bool HasValue() - { - return _prop.HasValue; - } - - public int ContextId { get; set; } - public string ContextAlias { get; set; } - - // implements IHtmlString.ToHtmlString - public string ToHtmlString() - { - return Value; - } - } - } -} diff --git a/src/Umbraco.Web/umbraco.presentation/macro.cs b/src/Umbraco.Web/umbraco.presentation/macro.cs index cdb8736952..42c3dbe05d 100644 --- a/src/Umbraco.Web/umbraco.presentation/macro.cs +++ b/src/Umbraco.Web/umbraco.presentation/macro.cs @@ -29,6 +29,7 @@ using umbraco.interfaces; using Umbraco.Web; using Umbraco.Web.Cache; using Umbraco.Web.Macros; +using Umbraco.Web.Models; using Umbraco.Web.Templates; using umbraco.BusinessLogic; using umbraco.cms.businesslogic.macro; @@ -1556,13 +1557,13 @@ namespace umbraco if (currentNodeProperty != null && currentNodeProperty.CanWrite && currentNodeProperty.PropertyType.IsAssignableFrom(typeof(Node))) { - currentNodeProperty.SetValue(control, Node.GetCurrent(), null); + currentNodeProperty.SetValue(control, GetCurrentNode(), null); } currentNodeProperty = type.GetProperty("currentNode"); if (currentNodeProperty != null && currentNodeProperty.CanWrite && currentNodeProperty.PropertyType.IsAssignableFrom(typeof(Node))) { - currentNodeProperty.SetValue(control, Node.GetCurrent(), null); + currentNodeProperty.SetValue(control, GetCurrentNode(), null); } } @@ -1846,10 +1847,13 @@ namespace umbraco private static INode GetCurrentNode() { - var id = Node.getCurrentNodeId(); - var content = UmbracoContext.Current.ContentCache.GetById(id); - //TODO: This should check for null! - return CompatibilityHelper.ConvertToNode(content); + //Get the current content request + + var content = UmbracoContext.Current.PublishedContentRequest != null + ? UmbracoContext.Current.PublishedContentRequest.PublishedContent + : null; + + return content == null ? null : LegacyNodeHelper.ConvertToNode(content); } #region Events diff --git a/src/umbraco.MacroEngines/RazorDynamicNode/DynamicBackingItem.cs b/src/umbraco.MacroEngines/RazorDynamicNode/DynamicBackingItem.cs index d841f9ce3a..cde2fd793f 100644 --- a/src/umbraco.MacroEngines/RazorDynamicNode/DynamicBackingItem.cs +++ b/src/umbraco.MacroEngines/RazorDynamicNode/DynamicBackingItem.cs @@ -10,6 +10,7 @@ using System.Data; using Umbraco.Core; using umbraco.MacroEngines.Library; using Umbraco.Web; +using Umbraco.Web.Models; using Umbraco.Web.umbraco.presentation; namespace umbraco.MacroEngines @@ -41,7 +42,7 @@ namespace umbraco.MacroEngines return; } - var n = CompatibilityHelper.ConvertToNode(UmbracoContext.Current.ContentCache.GetById(Id)); + var n = LegacyNodeHelper.ConvertToNode(UmbracoContext.Current.ContentCache.GetById(Id)); this.content = n; this.Type = DynamicBackingItemType.Content; @@ -75,7 +76,7 @@ namespace umbraco.MacroEngines } else { - this.content = CompatibilityHelper.ConvertToNode(UmbracoContext.Current.ContentCache.GetById(Id)); + this.content = LegacyNodeHelper.ConvertToNode(UmbracoContext.Current.ContentCache.GetById(Id)); } this.Type = Type; From 6a423dd0320454ce7fe433634e5b21e94d4d53ac Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 2 Jan 2015 15:45:33 +1100 Subject: [PATCH 264/310] Fixes: U4-5940 Feature Request - Disable partial/macro caching when in debug mode --- src/Umbraco.Web/CacheHelperExtensions.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web/CacheHelperExtensions.cs b/src/Umbraco.Web/CacheHelperExtensions.cs index 03f462909f..f23bb6d070 100644 --- a/src/Umbraco.Web/CacheHelperExtensions.cs +++ b/src/Umbraco.Web/CacheHelperExtensions.cs @@ -5,6 +5,7 @@ using System.Web.Mvc; using System.Web.Mvc.Html; using Umbraco.Core; using umbraco.cms.businesslogic.web; +using Umbraco.Core.Cache; namespace Umbraco.Web { @@ -37,12 +38,18 @@ namespace Umbraco.Web string cacheKey, ViewDataDictionary viewData = null) { - return cacheHelper.GetCacheItem( + //disable cached partials in debug mode: http://issues.umbraco.org/issue/U4-5940 + if (htmlHelper.ViewContext.HttpContext.IsDebuggingEnabled) + { + // just return a normal partial view instead + return htmlHelper.Partial(partialViewName, model, viewData); + } + + return cacheHelper.RuntimeCache.GetCacheItem( PartialViewCacheKey + cacheKey, - CacheItemPriority.NotRemovable, //not removable, the same as macros (apparently issue #27610) - null, - new TimeSpan(0, 0, 0, cachedSeconds), - () => htmlHelper.Partial(partialViewName, model, viewData)); + () => htmlHelper.Partial(partialViewName, model, viewData), + priority: CacheItemPriority.NotRemovable, //not removable, the same as macros (apparently issue #27610) + timeout: new TimeSpan(0, 0, 0, cachedSeconds)); } /// From 7c59c712612a288cfe16acab14ffe13b5f919729 Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 2 Jan 2015 15:58:31 +1100 Subject: [PATCH 265/310] updates PR for U4-6054 to just read directly from the file stream, no need to copy it first. --- src/Umbraco.Core/IO/FileSystemExtensions.cs | 40 +++++++++------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/src/Umbraco.Core/IO/FileSystemExtensions.cs b/src/Umbraco.Core/IO/FileSystemExtensions.cs index 9128540c98..f2152afaab 100644 --- a/src/Umbraco.Core/IO/FileSystemExtensions.cs +++ b/src/Umbraco.Core/IO/FileSystemExtensions.cs @@ -2,27 +2,19 @@ using System.IO; namespace Umbraco.Core.IO -{ +{ public static class FileSystemExtensions { - public static long GetSize(this IFileSystem fs, string path) + public static long GetSize(this IFileSystem fs, string path) { - using (var ms = new MemoryStream()) - { - using (var sr = new StreamReader(ms)) - { - using (Stream file = fs.OpenFile(path)) - { - var bytes = new byte[file.Length]; - file.Read(bytes, 0, (int) file.Length); - ms.Write(bytes, 0, (int) file.Length); - file.Close(); - ms.Position = 0; - string str = sr.ReadToEnd(); - return str.Length; - } - } - } + using (var file = fs.OpenFile(path)) + { + using (var sr = new StreamReader(file)) + { + var str = sr.ReadToEnd(); + return str.Length; + } + } } public static void CopyFile(this IFileSystem fs, string path, string newPath) @@ -34,14 +26,14 @@ namespace Umbraco.Core.IO } public static string GetExtension(this IFileSystem fs, string path) - { - return Path.GetExtension(fs.GetFullPath(path)); - } + { + return Path.GetExtension(fs.GetFullPath(path)); + } public static string GetFileName(this IFileSystem fs, string path) - { - return Path.GetFileName(fs.GetFullPath(path)); - } + { + return Path.GetFileName(fs.GetFullPath(path)); + } //TODO: Currently this is the only way to do this internal static void CreateFolder(this IFileSystem fs, string folderPath) From ff2c71367f72de6c5a16f0384883c6b4f8842d16 Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 2 Jan 2015 16:19:51 +1100 Subject: [PATCH 266/310] adds tests --- .../FrontEnd/UmbracoHelperTests.cs | 51 +++++++++++++++++++ src/Umbraco.Tests/Umbraco.Tests.csproj | 1 + src/Umbraco.Web/UmbracoHelper.cs | 3 +- 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Tests/FrontEnd/UmbracoHelperTests.cs diff --git a/src/Umbraco.Tests/FrontEnd/UmbracoHelperTests.cs b/src/Umbraco.Tests/FrontEnd/UmbracoHelperTests.cs new file mode 100644 index 0000000000..7bde2ffddd --- /dev/null +++ b/src/Umbraco.Tests/FrontEnd/UmbracoHelperTests.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using NUnit.Framework; +using Umbraco.Web; + +namespace Umbraco.Tests.FrontEnd +{ + [TestFixture] + public class UmbracoHelperTests + { + [Test] + public void Truncate_Simple() + { + var text = "Hello world, this is some text with a link"; + + var helper = new UmbracoHelper(); + + var result = helper.Truncate(text, 25).ToString(); + + Assert.AreEqual("Hello world, this is some…", result); + } + + [Test] + public void Truncate_Inside_Word() + { + var text = "Hello world, this is some text with a link"; + + var helper = new UmbracoHelper(); + + var result = helper.Truncate(text, 24).ToString(); + + Assert.AreEqual("Hello world, this is som…", result); + } + + [Test] + public void Truncate_With_Tag() + { + var text = "Hello world, this is some text with a link"; + + var helper = new UmbracoHelper(); + + var result = helper.Truncate(text, 35).ToString(); + + Assert.AreEqual("Hello world, this is some text with…", result); + } + + } +} diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index cf664b243d..b6f562f106 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -168,6 +168,7 @@ + diff --git a/src/Umbraco.Web/UmbracoHelper.cs b/src/Umbraco.Web/UmbracoHelper.cs index c6c44e1a45..c1cdf7365f 100644 --- a/src/Umbraco.Web/UmbracoHelper.cs +++ b/src/Umbraco.Web/UmbracoHelper.cs @@ -26,6 +26,7 @@ using Umbraco.Core.Cache; namespace Umbraco.Web { + /// /// A helper class that provides many useful methods and functionality for using Umbraco in templates /// @@ -42,7 +43,7 @@ namespace Umbraco.Web /// public TagQuery TagQuery { - get { return _tag ?? (_tag = new TagQuery(UmbracoContext.Application.Services.TagService)); } + get { return _tag ?? (_tag = new TagQuery(UmbracoContext.Application.Services.TagService, _query)); } } /// From e8e6f5f8070f7f1ce84cf55bb7fde84ac68d0791 Mon Sep 17 00:00:00 2001 From: leekelleher Date: Sun, 4 Jan 2015 21:02:20 +0000 Subject: [PATCH 267/310] Replaced the hardcoded integer values for -1 and -20 in ContentService with the Constants values. I did this whilst working on PR #610 (U4-337), but separated out to its own branch so not to clutter the other PR. --- src/Umbraco.Core/Services/ContentService.cs | 44 ++++++++++----------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Core/Services/ContentService.cs b/src/Umbraco.Core/Services/ContentService.cs index 421beacbf7..93069b7bd9 100644 --- a/src/Umbraco.Core/Services/ContentService.cs +++ b/src/Umbraco.Core/Services/ContentService.cs @@ -407,7 +407,7 @@ namespace Umbraco.Core.Services { using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.Level == level && !x.Path.StartsWith("-20")); + var query = Query.Builder.Where(x => x.Level == level && !x.Path.StartsWith(Constants.System.RecycleBinContent.ToInvariantString())); var contents = repository.GetByQuery(query); return contents; @@ -460,7 +460,7 @@ namespace Umbraco.Core.Services /// An Enumerable list of objects public IEnumerable GetAncestors(IContent content) { - var ids = content.Path.Split(',').Where(x => x != "-1" && x != content.Id.ToString(CultureInfo.InvariantCulture)).Select(int.Parse).ToArray(); + var ids = content.Path.Split(',').Where(x => x != Constants.System.Root.ToInvariantString() && x != content.Id.ToString(CultureInfo.InvariantCulture)).Select(int.Parse).ToArray(); if (ids.Any() == false) return new List(); @@ -506,8 +506,8 @@ namespace Umbraco.Core.Services { var query = Query.Builder; - //if the id is -1, then just get all - if (id != -1) + //if the id is System Root, then just get all + if (id != Constants.System.Root) { query.Where(x => x.ParentId == id); } @@ -536,8 +536,8 @@ namespace Umbraco.Core.Services { var query = Query.Builder; - //if the id is -1, then just get all - if (id != -1) + //if the id is System Root, then just get all + if (id != Constants.System.Root) { query.Where(x => x.Path.SqlContains(string.Format(",{0},", id), TextColumnType.NVarchar)); } @@ -614,7 +614,7 @@ namespace Umbraco.Core.Services /// Parent object public IContent GetParent(IContent content) { - if (content.ParentId == -1 || content.ParentId == -20) + if (content.ParentId == Constants.System.Root || content.ParentId == Constants.System.RecycleBinContent) return null; return GetById(content.ParentId); @@ -639,7 +639,7 @@ namespace Umbraco.Core.Services { using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.ParentId == -1); + var query = Query.Builder.Where(x => x.ParentId == Constants.System.Root); var contents = repository.GetByQuery(query); return contents; @@ -697,7 +697,7 @@ namespace Umbraco.Core.Services { using (var repository = _repositoryFactory.CreateContentRepository(_uowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.Path.Contains("-20")); + var query = Query.Builder.Where(x => x.Path.Contains(Constants.System.RecycleBinContent.ToInvariantString())); var contents = repository.GetByQuery(query); return contents; @@ -960,7 +960,7 @@ namespace Umbraco.Core.Services if (raiseEvents) Saved.RaiseEvent(new SaveEventArgs(asArray, false), this); - Audit.Add(AuditTypes.Save, "Bulk Save content performed by user", userId == -1 ? 0 : userId, -1); + Audit.Add(AuditTypes.Save, "Bulk Save content performed by user", userId == -1 ? 0 : userId, Constants.System.Root); } } @@ -1004,7 +1004,7 @@ namespace Umbraco.Core.Services Audit.Add(AuditTypes.Delete, string.Format("Delete Content of Type {0} performed by user", contentTypeId), - userId, -1); + userId, Constants.System.Root); } } @@ -1075,7 +1075,7 @@ namespace Umbraco.Core.Services DeletedVersions.RaiseEvent(new DeleteRevisionsEventArgs(id, false, dateToRetain: versionDate), this); - Audit.Add(AuditTypes.Delete, "Delete Content by version date performed by user", userId, -1); + Audit.Add(AuditTypes.Delete, "Delete Content by version date performed by user", userId, Constants.System.Root); } /// @@ -1108,7 +1108,7 @@ namespace Umbraco.Core.Services DeletedVersions.RaiseEvent(new DeleteRevisionsEventArgs(id, false, specificVersion: versionId), this); - Audit.Add(AuditTypes.Delete, "Delete Content by version performed by user", userId, -1); + Audit.Add(AuditTypes.Delete, "Delete Content by version performed by user", userId, Constants.System.Root); } } @@ -1191,7 +1191,7 @@ namespace Umbraco.Core.Services using (new WriteLock(Locker)) { //This ensures that the correct method is called if this method is used to Move to recycle bin. - if (parentId == -20) + if (parentId == Constants.System.RecycleBinContent) { MoveToRecycleBin(content, userId); return; @@ -1251,7 +1251,7 @@ namespace Umbraco.Core.Services } - Audit.Add(AuditTypes.Delete, "Empty Content Recycle Bin performed by user", 0, -20); + Audit.Add(AuditTypes.Delete, "Empty Content Recycle Bin performed by user", 0, Constants.System.RecycleBinContent); } /// @@ -1486,7 +1486,7 @@ namespace Umbraco.Core.Services contentTypeIds: contentTypeIds.Length == 0 ? null : contentTypeIds); } - Audit.Add(AuditTypes.Publish, "ContentService.RebuildXmlStructures completed, the xml has been regenerated in the database", 0, -1); + Audit.Add(AuditTypes.Publish, "ContentService.RebuildXmlStructures completed, the xml has been regenerated in the database", 0, Constants.System.Root); } @@ -1518,9 +1518,9 @@ namespace Umbraco.Core.Services moveInfo.Add(new MoveEventInfo(content, content.Path, parentId)); content.WriterId = userId; - if (parentId == -1) + if (parentId == Constants.System.Root) { - content.Path = string.Concat("-1,", content.Id); + content.Path = string.Concat(Constants.System.Root, ",", content.Id); content.Level = 1; } else @@ -1609,7 +1609,7 @@ namespace Umbraco.Core.Services var result = new List>(); //Check if parent is published (although not if its a root node) - if parent isn't published this Content cannot be published - if (content.ParentId != -1 && content.ParentId != -20 && IsPublishable(content) == false) + if (content.ParentId != Constants.System.Root && content.ParentId != Constants.System.RecycleBinContent && IsPublishable(content) == false) { LogHelper.Info( string.Format( @@ -1862,11 +1862,11 @@ namespace Umbraco.Core.Services foreach (var id in ids) { //If Id equals that of the recycle bin we return false because nothing in the bin can be published - if (id == -20) + if (id == Constants.System.RecycleBinContent) return false; //We don't check the System Root, so just continue - if (id == -1) continue; + if (id == Constants.System.Root) continue; //If the current id equals that of the passed in content and if current shouldn't be checked we skip it. if (checkCurrent == false && id == content.Id) continue; @@ -1883,7 +1883,7 @@ namespace Umbraco.Core.Services private PublishStatusType CheckAndLogIsPublishable(IContent content) { //Check if parent is published (although not if its a root node) - if parent isn't published this Content cannot be published - if (content.ParentId != -1 && content.ParentId != -20 && IsPublishable(content) == false) + if (content.ParentId != Constants.System.Root && content.ParentId != Constants.System.RecycleBinContent && IsPublishable(content) == false) { LogHelper.Info( string.Format( From b1fe15ed561f2b3cfa6975f5f1697a09b01617c5 Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 5 Jan 2015 09:46:54 +1100 Subject: [PATCH 268/310] fixes a null ref --- src/Umbraco.Web/UmbracoHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web/UmbracoHelper.cs b/src/Umbraco.Web/UmbracoHelper.cs index c1cdf7365f..a394007048 100644 --- a/src/Umbraco.Web/UmbracoHelper.cs +++ b/src/Umbraco.Web/UmbracoHelper.cs @@ -43,7 +43,7 @@ namespace Umbraco.Web /// public TagQuery TagQuery { - get { return _tag ?? (_tag = new TagQuery(UmbracoContext.Application.Services.TagService, _query)); } + get { return _tag ?? (_tag = new TagQuery(UmbracoContext.Application.Services.TagService, ContentQuery)); } } /// From 4de31249fd6f96027abaa338f0b860b55b6dbaee Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 5 Jan 2015 10:01:58 +1100 Subject: [PATCH 269/310] removes some usages of singletons --- .../Models/Mapping/ContentModelMapper.cs | 2 +- .../Routing/UrlProviderExtensions.cs | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web/Models/Mapping/ContentModelMapper.cs b/src/Umbraco.Web/Models/Mapping/ContentModelMapper.cs index 5b528d18b2..48634ede4e 100644 --- a/src/Umbraco.Web/Models/Mapping/ContentModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/ContentModelMapper.cs @@ -68,7 +68,7 @@ namespace Umbraco.Web.Models.Mapping expression => expression.MapFrom(content => UmbracoContext.Current == null ? new[] {"Cannot generate urls without a current Umbraco Context"} - : content.GetContentUrls())) + : content.GetContentUrls(UmbracoContext.Current))) .ForMember(display => display.Properties, expression => expression.Ignore()) .ForMember(display => display.TreeNodeUrl, expression => expression.Ignore()) .ForMember(display => display.Notifications, expression => expression.Ignore()) diff --git a/src/Umbraco.Web/Routing/UrlProviderExtensions.cs b/src/Umbraco.Web/Routing/UrlProviderExtensions.cs index 5a8af640da..501c15b375 100644 --- a/src/Umbraco.Web/Routing/UrlProviderExtensions.cs +++ b/src/Umbraco.Web/Routing/UrlProviderExtensions.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using Umbraco.Core.Models; using umbraco; @@ -10,22 +11,26 @@ namespace Umbraco.Web.Routing /// Gets the URLs for the content item /// /// + /// /// /// /// Use this when displaying URLs, if there are errors genertaing the urls the urls themselves will /// contain the errors. /// - public static IEnumerable GetContentUrls(this IContent content) + public static IEnumerable GetContentUrls(this IContent content, UmbracoContext umbracoContext) { + if (content == null) throw new ArgumentNullException("content"); + if (umbracoContext == null) throw new ArgumentNullException("umbracoContext"); + var urls = new List(); if (content.HasPublishedVersion() == false) { - urls.Add(ui.Text("content", "itemNotPublished", UmbracoContext.Current.Security.CurrentUser)); + urls.Add(ui.Text("content", "itemNotPublished", umbracoContext.Security.CurrentUser)); return urls; } - var urlProvider = UmbracoContext.Current.RoutingContext.UrlProvider; + var urlProvider = umbracoContext.RoutingContext.UrlProvider; var url = urlProvider.GetUrl(content.Id); if (url == "#") { @@ -39,9 +44,9 @@ namespace Umbraco.Web.Routing while (parent != null && parent.Published); if (parent == null) // oops - internal error - urls.Add(ui.Text("content", "parentNotPublishedAnomaly", UmbracoContext.Current.Security.CurrentUser)); + urls.Add(ui.Text("content", "parentNotPublishedAnomaly", umbracoContext.Security.CurrentUser)); else - urls.Add(ui.Text("content", "parentNotPublished", parent.Name, UmbracoContext.Current.Security.CurrentUser)); + urls.Add(ui.Text("content", "parentNotPublished", parent.Name, umbracoContext.Security.CurrentUser)); } else { From 70ddf646bef4852bc1dbb9d0179f6d1063ea2213 Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 5 Jan 2015 10:08:36 +1100 Subject: [PATCH 270/310] Changed the DefaultUrlProvider's warnings to Debug statements since this can get logged very often when there are unpublished pages and a URL is requested for them which can occur a ton, especially when searching in the back office since a URL is attempted to be created on each search for each result. --- src/Umbraco.Web/Routing/DefaultUrlProvider.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web/Routing/DefaultUrlProvider.cs b/src/Umbraco.Web/Routing/DefaultUrlProvider.cs index 602a14dabb..41cadbf2f9 100644 --- a/src/Umbraco.Web/Routing/DefaultUrlProvider.cs +++ b/src/Umbraco.Web/Routing/DefaultUrlProvider.cs @@ -40,7 +40,7 @@ namespace Umbraco.Web.Routing if (string.IsNullOrWhiteSpace(route)) { - LogHelper.Warn( + LogHelper.Debug( "Couldn't find any page with nodeId={0}. This is most likely caused by the page not being published.", () => id); return null; @@ -78,7 +78,7 @@ namespace Umbraco.Web.Routing if (string.IsNullOrWhiteSpace(route)) { - LogHelper.Warn( + LogHelper.Debug( "Couldn't find any page with nodeId={0}. This is most likely caused by the page not being published.", () => id); return null; From 459d9b34e7c2c10e3138298c0634bc2475df4ac7 Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 5 Jan 2015 12:22:49 +1100 Subject: [PATCH 271/310] Fixes: U4-5974 User which is not administrator getting logged out when clicking recycle bin --- .../src/common/resources/entity.resource.js | 1 + .../content/content.recyclebin.controller.js | 29 ++++++++++++ .../views/content/recyclebin.controller.js | 42 ----------------- .../src/views/content/recyclebin.html | 2 +- .../media/media.recyclebin.controller.js | 29 ++++++++++++ .../src/views/media/recyclebin.html | 2 +- src/Umbraco.Web/Editors/DataTypeController.cs | 5 ++ src/Umbraco.Web/Umbraco.Web.csproj | 2 + .../EnableOverrideAuthorizationAttribute.cs | 16 +++++++ .../OverridableAuthorizationAttribute.cs | 47 +++++++++++++++++++ .../UmbracoApplicationAuthorizeAttribute.cs | 2 +- .../Filters/UmbracoTreeAuthorizeAttribute.cs | 4 +- 12 files changed, 134 insertions(+), 47 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/views/content/content.recyclebin.controller.js delete mode 100644 src/Umbraco.Web.UI.Client/src/views/content/recyclebin.controller.js create mode 100644 src/Umbraco.Web.UI.Client/src/views/media/media.recyclebin.controller.js create mode 100644 src/Umbraco.Web/WebApi/Filters/EnableOverrideAuthorizationAttribute.cs create mode 100644 src/Umbraco.Web/WebApi/Filters/OverridableAuthorizationAttribute.cs diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/entity.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/entity.resource.js index 267df06ca3..c136f88bc7 100644 --- a/src/Umbraco.Web.UI.Client/src/common/resources/entity.resource.js +++ b/src/Umbraco.Web.UI.Client/src/common/resources/entity.resource.js @@ -29,6 +29,7 @@ * - User * - Language * - Domain + * - DataType **/ function entityResource($q, $http, umbRequestHelper) { diff --git a/src/Umbraco.Web.UI.Client/src/views/content/content.recyclebin.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/content.recyclebin.controller.js new file mode 100644 index 0000000000..a644e52a2c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/content/content.recyclebin.controller.js @@ -0,0 +1,29 @@ +/** + * @ngdoc controller + * @name Umbraco.Editors.Content.RecycleBinController + * @function + * + * @description + * Controls the recycle bin for content + * + */ + +function ContentRecycleBinController($scope, $routeParams, dataTypeResource) { + + //ensures the list view doesn't actually load until we query for the list view config + // for the section + $scope.listViewPath = null; + + $routeParams.id = "-20"; + dataTypeResource.getById(-95).then(function (result) { + _.each(result.preValues, function (i) { + $scope.model.config[i.key] = i.value; + }); + $scope.listViewPath = 'views/propertyeditors/listview/listview.html'; + }); + + $scope.model = { config: { entityType: $routeParams.section } }; + +} + +angular.module('umbraco').controller("Umbraco.Editors.Content.RecycleBinController", ContentRecycleBinController); diff --git a/src/Umbraco.Web.UI.Client/src/views/content/recyclebin.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/recyclebin.controller.js deleted file mode 100644 index 3af72e320d..0000000000 --- a/src/Umbraco.Web.UI.Client/src/views/content/recyclebin.controller.js +++ /dev/null @@ -1,42 +0,0 @@ -/** - * @ngdoc controller - * @name Umbraco.Dashboard.RecycleBinController - * @function - * - * @description - * Controls the recycle bin dashboards - * - */ - -function RecycleBinController($scope, $routeParams, dataTypeResource) { - - //ensures the list view doesn't actually load until we query for the list view config - // for the section - $scope.listViewPath = null; - - if ($routeParams.section) { - - if ($routeParams.section === "content") { - $routeParams.id = "-20"; - dataTypeResource.getById(-95).then(function(result) { - _.each(result.preValues, function(i) { - $scope.model.config[i.key] = i.value; - }); - $scope.listViewPath = 'views/propertyeditors/listview/listview.html'; - }); - } - else if ($routeParams.section === "media") { - $routeParams.id = "-21"; - dataTypeResource.getById(-96).then(function (result) { - _.each(result.preValues, function (i) { - $scope.model.config[i.key] = i.value; - }); - $scope.listViewPath = 'views/propertyeditors/listview/listview.html'; - }); - } - - $scope.model = { config: { entityType: $routeParams.section } }; - } -} - -angular.module('umbraco').controller("Umbraco.Dashboard.RecycleBinController", RecycleBinController); diff --git a/src/Umbraco.Web.UI.Client/src/views/content/recyclebin.html b/src/Umbraco.Web.UI.Client/src/views/content/recyclebin.html index 6e73c19dab..c468d67c62 100644 --- a/src/Umbraco.Web.UI.Client/src/views/content/recyclebin.html +++ b/src/Umbraco.Web.UI.Client/src/views/content/recyclebin.html @@ -1,4 +1,4 @@ - +

Recycle Bin

diff --git a/src/Umbraco.Web.UI.Client/src/views/media/media.recyclebin.controller.js b/src/Umbraco.Web.UI.Client/src/views/media/media.recyclebin.controller.js new file mode 100644 index 0000000000..bedb1e4da1 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/media/media.recyclebin.controller.js @@ -0,0 +1,29 @@ +/** + * @ngdoc controller + * @name Umbraco.Editors.Content.MediaRecycleBinController + * @function + * + * @description + * Controls the recycle bin for media + * + */ + +function MediaRecycleBinController($scope, $routeParams, dataTypeResource) { + + //ensures the list view doesn't actually load until we query for the list view config + // for the section + $scope.listViewPath = null; + + $routeParams.id = "-21"; + dataTypeResource.getById(-96).then(function (result) { + _.each(result.preValues, function (i) { + $scope.model.config[i.key] = i.value; + }); + $scope.listViewPath = 'views/propertyeditors/listview/listview.html'; + }); + + $scope.model = { config: { entityType: $routeParams.section } }; + +} + +angular.module('umbraco').controller("Umbraco.Editors.Media.RecycleBinController", MediaRecycleBinController); diff --git a/src/Umbraco.Web.UI.Client/src/views/media/recyclebin.html b/src/Umbraco.Web.UI.Client/src/views/media/recyclebin.html index 88487e77e4..9005fe13c3 100644 --- a/src/Umbraco.Web.UI.Client/src/views/media/recyclebin.html +++ b/src/Umbraco.Web.UI.Client/src/views/media/recyclebin.html @@ -1,4 +1,4 @@ - +

Recycle Bin

diff --git a/src/Umbraco.Web/Editors/DataTypeController.cs b/src/Umbraco.Web/Editors/DataTypeController.cs index 1d405eb0a3..8aec9aef22 100644 --- a/src/Umbraco.Web/Editors/DataTypeController.cs +++ b/src/Umbraco.Web/Editors/DataTypeController.cs @@ -30,6 +30,7 @@ namespace Umbraco.Web.Editors /// [PluginController("UmbracoApi")] [UmbracoTreeAuthorize(Constants.Trees.DataTypes)] + [EnableOverrideAuthorization] public class DataTypeController : UmbracoAuthorizedJsonController { public DataTypeDisplay GetByName(string name) @@ -43,6 +44,10 @@ namespace Umbraco.Web.Editors ///
/// /// + /// + /// Permission is granted to this method if the user has access to any of these trees: DataTypes, Content or Media + /// + [UmbracoTreeAuthorize(Constants.Trees.DataTypes, Constants.Trees.Content, Constants.Trees.Media)] public DataTypeDisplay GetById(int id) { var dataType = Services.DataTypeService.GetDataTypeDefinitionById(id); diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index f5040e0060..013a3da31c 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -555,10 +555,12 @@ + + diff --git a/src/Umbraco.Web/WebApi/Filters/EnableOverrideAuthorizationAttribute.cs b/src/Umbraco.Web/WebApi/Filters/EnableOverrideAuthorizationAttribute.cs new file mode 100644 index 0000000000..a8c26fc167 --- /dev/null +++ b/src/Umbraco.Web/WebApi/Filters/EnableOverrideAuthorizationAttribute.cs @@ -0,0 +1,16 @@ +using System; + +namespace Umbraco.Web.WebApi.Filters +{ + /// + /// This allows for Action based auth attributes to override Class based auth attributes if they are specified + /// + /// + /// This attribute can be applied at the class level and will indicate to any class level auth attribute that inherits from OverridableAuthorizationAttribute + /// + [AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = true)] + public sealed class EnableOverrideAuthorizationAttribute : Attribute + { + + } +} \ No newline at end of file diff --git a/src/Umbraco.Web/WebApi/Filters/OverridableAuthorizationAttribute.cs b/src/Umbraco.Web/WebApi/Filters/OverridableAuthorizationAttribute.cs new file mode 100644 index 0000000000..cc0e8057b8 --- /dev/null +++ b/src/Umbraco.Web/WebApi/Filters/OverridableAuthorizationAttribute.cs @@ -0,0 +1,47 @@ +using System; +using System.Linq; +using System.Web.Http; +using System.Web.Http.Controllers; + +namespace Umbraco.Web.WebApi.Filters +{ + /// + /// Abstract auth filter class that can be used to enable overriding class auth filters at the action level + /// + /// + /// To enable a class auth filter to be overridden by an action auth filter the EnableOverrideAuthorizationAttribute can be applied + /// to the class. + /// + public abstract class OverridableAuthorizationAttribute : AuthorizeAttribute + { + /// + /// If the controller has an EnabledOverrideAuthorizationAttribute attribute specified and the action has any AuthorizeAttribute + /// specified then use the action's auth attribute instead of this one + /// + /// The context. + /// The context parameter is null. + public override void OnAuthorization(HttpActionContext actionContext) + { + if (actionContext == null) throw new ArgumentNullException("actionContext"); + + var actionAttributes = actionContext.ActionDescriptor.GetCustomAttributes(); + + //if 'this' authorize attribute exists in the current collection then continue as per normal... this is because 'this' attribute instance + // is obviously assigned at an Action level and therefore it's already executing + + if (actionAttributes.Any(x => Equals(x, this))) + { + base.OnAuthorization(actionContext); + return; + } + + + if (actionContext.ActionDescriptor.ControllerDescriptor.GetCustomAttributes().Any()) + { + return; + } + + base.OnAuthorization(actionContext); + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Web/WebApi/Filters/UmbracoApplicationAuthorizeAttribute.cs b/src/Umbraco.Web/WebApi/Filters/UmbracoApplicationAuthorizeAttribute.cs index a4ed31b1f8..23e0fde1c2 100644 --- a/src/Umbraco.Web/WebApi/Filters/UmbracoApplicationAuthorizeAttribute.cs +++ b/src/Umbraco.Web/WebApi/Filters/UmbracoApplicationAuthorizeAttribute.cs @@ -7,7 +7,7 @@ namespace Umbraco.Web.WebApi.Filters /// /// Ensures that the current user has access to the specified application /// - public sealed class UmbracoApplicationAuthorizeAttribute : AuthorizeAttribute + public sealed class UmbracoApplicationAuthorizeAttribute : OverridableAuthorizationAttribute { /// /// Can be used by unit tests to enable/disable this filter diff --git a/src/Umbraco.Web/WebApi/Filters/UmbracoTreeAuthorizeAttribute.cs b/src/Umbraco.Web/WebApi/Filters/UmbracoTreeAuthorizeAttribute.cs index f894712a82..685f32cc8c 100644 --- a/src/Umbraco.Web/WebApi/Filters/UmbracoTreeAuthorizeAttribute.cs +++ b/src/Umbraco.Web/WebApi/Filters/UmbracoTreeAuthorizeAttribute.cs @@ -1,6 +1,6 @@ using System.Linq; -using System.Web.Http; using System.Web.Http.Controllers; +using System.Web.Http.Filters; using Umbraco.Core; namespace Umbraco.Web.WebApi.Filters @@ -11,7 +11,7 @@ namespace Umbraco.Web.WebApi.Filters /// /// This would allow a tree to be moved between sections /// - public sealed class UmbracoTreeAuthorizeAttribute : AuthorizeAttribute + public sealed class UmbracoTreeAuthorizeAttribute : OverridableAuthorizationAttribute { /// /// Can be used by unit tests to enable/disable this filter From d4c0ea9c48d5b1967455f5b1f761b2e89e0f64ca Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 5 Jan 2015 14:25:16 +1100 Subject: [PATCH 272/310] working on U4-5875 - Updated RequiredManifestValueValidator to automatically check for empty json strings if the value type is JSON. Updates the TagsPropertyEditor to check for empty json in it's required validator. Updated the tags JS to always update the model value so if there's a server side validation, it gets cleared on change. --- .../RequiredManifestValueValidator.cs | 9 +++ .../propertyeditors/tags/tags.controller.js | 6 ++ .../PropertyEditors/TagsPropertyEditor.cs | 56 +++++++++++++++++++ 3 files changed, 71 insertions(+) diff --git a/src/Umbraco.Core/PropertyEditors/RequiredManifestValueValidator.cs b/src/Umbraco.Core/PropertyEditors/RequiredManifestValueValidator.cs index 757e09f30f..33c2c02cb6 100644 --- a/src/Umbraco.Core/PropertyEditors/RequiredManifestValueValidator.cs +++ b/src/Umbraco.Core/PropertyEditors/RequiredManifestValueValidator.cs @@ -21,6 +21,15 @@ namespace Umbraco.Core.PropertyEditors else { var asString = value.ToString(); + + if (editor.ValueEditor.ValueType.InvariantEquals("JSON")) + { + if (asString.DetectIsEmptyJson()) + { + yield return new ValidationResult("Value cannot be empty", new[] { "value" }); + } + } + if (asString.IsNullOrWhiteSpace()) { yield return new ValidationResult("Value cannot be empty", new[] { "value" }); diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js index 62cf96a894..4577430195 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js @@ -34,6 +34,9 @@ angular.module("umbraco") if (tagToAdd.length > 0) { if ($scope.currentTags.indexOf(tagToAdd) < 0) { $scope.currentTags.push(tagToAdd); + //update the model value, this is required if there's a server validation error, it can + // only then be cleared if the model changes + $scope.model.value = $scope.currentTags; } } } @@ -66,6 +69,9 @@ angular.module("umbraco") var i = $scope.currentTags.indexOf(tag); if (i >= 0) { $scope.currentTags.splice(i, 1); + //update the model value, this is required if there's a server validation error, it can + // only then be cleared if the model changes + $scope.model.value = $scope.currentTags; } }; diff --git a/src/Umbraco.Web/PropertyEditors/TagsPropertyEditor.cs b/src/Umbraco.Web/PropertyEditors/TagsPropertyEditor.cs index 49fb5ddbc4..581186f61d 100644 --- a/src/Umbraco.Web/PropertyEditors/TagsPropertyEditor.cs +++ b/src/Umbraco.Web/PropertyEditors/TagsPropertyEditor.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Runtime.InteropServices; using Newtonsoft.Json.Linq; @@ -61,6 +62,61 @@ namespace Umbraco.Web.PropertyEditors var json = editorValue.Value as JArray; return json == null ? null : json.Select(x => x.Value()); } + + /// + /// Returns the validator used for the required field validation which is specified on the PropertyType + /// + /// + /// This will become legacy as soon as we implement overridable pre-values. + /// + /// The default validator used is the RequiredValueValidator but this can be overridden by property editors + /// if they need to do some custom validation, or if the value being validated is a json object. + /// + internal override ManifestValueValidator RequiredValidator + { + get { return new RequiredTagsValueValidator(); } + } + + /// + /// Custom validator to validate a required value against an empty json value + /// + /// + /// This is required because the Tags property editor is not of type 'JSON', it's just string so the underlying + /// validator does not validate against an empty json string + /// + [ValueValidator("Required")] + private class RequiredTagsValueValidator : ManifestValueValidator + { + /// + /// Validates a null value or an empty json value + /// + /// + /// + /// + /// + /// + public override IEnumerable Validate(object value, string config, PreValueCollection preValues, PropertyEditor editor) + { + if (value == null) + { + yield return new ValidationResult("Value cannot be null", new[] { "value" }); + } + else + { + var asString = value.ToString(); + + if (asString.DetectIsEmptyJson()) + { + yield return new ValidationResult("Value cannot be empty", new[] { "value" }); + } + + if (asString.IsNullOrWhiteSpace()) + { + yield return new ValidationResult("Value cannot be empty", new[] { "value" }); + } + } + } + } } internal class TagPreValueEditor : PreValueEditor From 11b53a5dcc6e5fdf225bf52b4df17c5a5c90272c Mon Sep 17 00:00:00 2001 From: Anton Gildebrand Date: Mon, 5 Jan 2015 15:17:50 +0100 Subject: [PATCH 273/310] Fix for macrocontainer making it possible to edit --- .../macrocontainer/macrocontainer.controller.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/macrocontainer/macrocontainer.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/macrocontainer/macrocontainer.controller.js index c3d3f91914..1c1e94601b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/macrocontainer/macrocontainer.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/macrocontainer/macrocontainer.controller.js @@ -41,7 +41,7 @@ angular.module('umbraco') if(index !== null && $scope.renderModel[index]) { var macro = $scope.renderModel[index]; - dialogData[macroData] = macro; + dialogData["macroData"] = macro; } dialogService.macroPicker({ @@ -100,4 +100,4 @@ angular.module('umbraco') return str.replace(rgxtrim, ''); } -}); \ No newline at end of file +}); From d94fe7df687ffed58ae96132c71b47da00981237 Mon Sep 17 00:00:00 2001 From: Alain Date: Mon, 5 Jan 2015 18:55:31 +0000 Subject: [PATCH 274/310] Update UserService.cs --- src/Umbraco.Core/Services/UserService.cs | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Core/Services/UserService.cs b/src/Umbraco.Core/Services/UserService.cs index 1a523835c8..c3dcf846dd 100644 --- a/src/Umbraco.Core/Services/UserService.cs +++ b/src/Umbraco.Core/Services/UserService.cs @@ -672,6 +672,27 @@ namespace Umbraco.Core.Services uow.Commit(); } } + + /// + /// Add a specific section to all users + /// + /// This is useful when a new section is created to allow all users accessing it + /// Alias of the section to add + public void AddSectionToAllUsers(string sectionAlias) + { + var uow = _uowProvider.GetUnitOfWork(); + using (var repository = _repositoryFactory.CreateUserRepository(uow)) + { + var allUsers = repository.GetAll(); + foreach (var user in allUsers.Where(u => !u.AllowedSections.Contains(sectionAlias))) + { + //now add the section for each user and commit + user.AddAllowedSection(sectionAlias); + repository.AddOrUpdate(user); + } + uow.Commit(); + } + } /// /// Get permissions set for a user and optional node ids @@ -745,4 +766,4 @@ namespace Umbraco.Core.Services /// public static event TypedEventHandler> DeletedUserType; } -} \ No newline at end of file +} From d06ff5f108281d9e31152be676cc2ecba78da29e Mon Sep 17 00:00:00 2001 From: Alain Date: Mon, 5 Jan 2015 19:02:32 +0000 Subject: [PATCH 275/310] Update IUserService.cs --- src/Umbraco.Core/Services/IUserService.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Core/Services/IUserService.cs b/src/Umbraco.Core/Services/IUserService.cs index 559bf100d0..2c78bb62cc 100644 --- a/src/Umbraco.Core/Services/IUserService.cs +++ b/src/Umbraco.Core/Services/IUserService.cs @@ -53,6 +53,13 @@ namespace Umbraco.Core.Services /// Alias of the section to remove void DeleteSectionFromAllUsers(string sectionAlias); + /// + /// Add a specific section to all users + /// + /// This is useful when a new section is created to allow all users accessing it + /// Alias of the section to add + void AddSectionToAllUsers(string sectionAlias); + /// /// Get permissions set for a user and optional node ids /// @@ -117,4 +124,4 @@ namespace Umbraco.Core.Services #endregion } -} \ No newline at end of file +} From dea78c5d13129e1c7c81142c8e47bf93afb84ed2 Mon Sep 17 00:00:00 2001 From: Alain Date: Mon, 5 Jan 2015 19:04:59 +0000 Subject: [PATCH 276/310] Update UserServiceTests.cs --- .../Services/UserServiceTests.cs | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Tests/Services/UserServiceTests.cs b/src/Umbraco.Tests/Services/UserServiceTests.cs index 2a099c9001..c4fcbd8e88 100644 --- a/src/Umbraco.Tests/Services/UserServiceTests.cs +++ b/src/Umbraco.Tests/Services/UserServiceTests.cs @@ -451,6 +451,24 @@ namespace Umbraco.Tests.Services } + [Test] + public void Can_Add_Section_To_All_Users() + { + var userType = ServiceContext.UserService.GetUserTypeByAlias("admin"); + + var user1 = ServiceContext.UserService.CreateUserWithIdentity("test1", "test1@test.com", userType); + var user2 = ServiceContext.UserService.CreateUserWithIdentity("test2", "test2@test.com", userType); + + //now add the section to all users + ServiceContext.UserService.AddSectionToAllUsers("test"); + + //assert + var result1 = ServiceContext.UserService.GetUserById((int)user1.Id); + var result2 = ServiceContext.UserService.GetUserById((int)user2.Id); + Assert.IsFalse(result1.AllowedSections.Contains("test")); + Assert.IsFalse(result2.AllowedSections.Contains("test")); + } + [Test] public void Get_By_Profile_Username() { @@ -512,4 +530,4 @@ namespace Umbraco.Tests.Services Assert.That(updatedItem.AllowedSections.Count(), Is.EqualTo(0)); } } -} \ No newline at end of file +} From 93ca536b149e486f6f8450140cee9f6834b7ed2f Mon Sep 17 00:00:00 2001 From: AndyButland Date: Mon, 5 Jan 2015 21:20:50 +0100 Subject: [PATCH 277/310] Added noindex, nofollow to default page to discourage search engines indexing the back-office --- src/Umbraco.Web.UI/umbraco/Views/Default.cshtml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml b/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml index a7ef52979d..bef809a593 100644 --- a/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml +++ b/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml @@ -20,6 +20,7 @@ + Umbraco From d235340ec6a434ccd573605f758b012a7062eb34 Mon Sep 17 00:00:00 2001 From: AndyButland Date: Mon, 5 Jan 2015 22:23:05 +0100 Subject: [PATCH 278/310] Populated NodeCount property for tag queries retrieving tags across all types --- .../Models/TaggableObjectTypes.cs | 1 + .../Persistence/Repositories/TagRepository.cs | 32 +++++++++++++------ src/Umbraco.Core/Services/TagService.cs | 9 +----- .../Repositories/TagRepositoryTest.cs | 8 ++++- 4 files changed, 31 insertions(+), 19 deletions(-) diff --git a/src/Umbraco.Core/Models/TaggableObjectTypes.cs b/src/Umbraco.Core/Models/TaggableObjectTypes.cs index be019410e5..ae54bc02bd 100644 --- a/src/Umbraco.Core/Models/TaggableObjectTypes.cs +++ b/src/Umbraco.Core/Models/TaggableObjectTypes.cs @@ -5,6 +5,7 @@ /// public enum TaggableObjectTypes { + All, Content, Media, Member diff --git a/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs b/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs index 344d9f4c43..ac39d9556e 100644 --- a/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs @@ -168,8 +168,6 @@ namespace Umbraco.Core.Persistence.Repositories public IEnumerable GetTaggedEntitiesByTagGroup(TaggableObjectTypes objectType, string tagGroup) { - var nodeObjectType = GetNodeObjectType(objectType); - var sql = new Sql() .Select("cmsTagRelationship.nodeId, cmsPropertyType.Alias, cmsPropertyType.id as propertyTypeId, cmsTags.tag, cmsTags.id as tagId, cmsTags." + SqlSyntaxContext.SqlSyntaxProvider.GetQuotedColumnName("group")) .From() @@ -181,17 +179,21 @@ namespace Umbraco.Core.Persistence.Repositories .On(left => left.Id, right => right.PropertyTypeId) .InnerJoin() .On(left => left.NodeId, right => right.NodeId) - .Where(dto => dto.NodeObjectType == nodeObjectType) .Where(dto => dto.Group == tagGroup); + if (objectType != TaggableObjectTypes.All) + { + var nodeObjectType = GetNodeObjectType(objectType); + sql = sql + .Where(dto => dto.NodeObjectType == nodeObjectType); + } + return CreateTaggedEntityCollection( ApplicationContext.Current.DatabaseContext.Database.Fetch(sql)); } public IEnumerable GetTaggedEntitiesByTag(TaggableObjectTypes objectType, string tag, string tagGroup = null) { - var nodeObjectType = GetNodeObjectType(objectType); - var sql = new Sql() .Select("cmsTagRelationship.nodeId, cmsPropertyType.Alias, cmsPropertyType.id as propertyTypeId, cmsTags.tag, cmsTags.id as tagId, cmsTags." + SqlSyntaxContext.SqlSyntaxProvider.GetQuotedColumnName("group")) .From() @@ -203,9 +205,15 @@ namespace Umbraco.Core.Persistence.Repositories .On(left => left.Id, right => right.PropertyTypeId) .InnerJoin() .On(left => left.NodeId, right => right.NodeId) - .Where(dto => dto.NodeObjectType == nodeObjectType) .Where(dto => dto.Tag == tag); + if (objectType != TaggableObjectTypes.All) + { + var nodeObjectType = GetNodeObjectType(objectType); + sql = sql + .Where(dto => dto.NodeObjectType == nodeObjectType); + } + if (tagGroup.IsNullOrWhiteSpace() == false) { sql = sql.Where(dto => dto.Group == tagGroup); @@ -233,8 +241,6 @@ namespace Umbraco.Core.Persistence.Repositories public IEnumerable GetTagsForEntityType(TaggableObjectTypes objectType, string group = null) { - var nodeObjectType = GetNodeObjectType(objectType); - var sql = GetTagsQuerySelect(true); sql = ApplyRelationshipJoinToTagsQuery(sql); @@ -243,8 +249,14 @@ namespace Umbraco.Core.Persistence.Repositories .InnerJoin() .On(left => left.NodeId, right => right.NodeId) .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .Where(dto => dto.NodeObjectType == nodeObjectType); + .On(left => left.NodeId, right => right.NodeId); + + if (objectType != TaggableObjectTypes.All) + { + var nodeObjectType = GetNodeObjectType(objectType); + sql = sql + .Where(dto => dto.NodeObjectType == nodeObjectType); + } sql = ApplyGroupFilterToTagsQuery(sql, group); diff --git a/src/Umbraco.Core/Services/TagService.cs b/src/Umbraco.Core/Services/TagService.cs index cf477a125b..a1339ce360 100644 --- a/src/Umbraco.Core/Services/TagService.cs +++ b/src/Umbraco.Core/Services/TagService.cs @@ -133,14 +133,7 @@ namespace Umbraco.Core.Services { using (var repository = _repositoryFactory.CreateTagRepository(_uowProvider.GetUnitOfWork())) { - if (tagGroup.IsNullOrWhiteSpace()) - { - return repository.GetAll(); - } - - var query = Query.Builder.Where(x => x.Group == tagGroup); - var definitions = repository.GetByQuery(query); - return definitions; + return repository.GetTagsForEntityType(TaggableObjectTypes.All, tagGroup); } } diff --git a/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs index bd35197193..c3524580dd 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs @@ -658,14 +658,20 @@ namespace Umbraco.Tests.Persistence.Repositories new[] { new Tag {Text = "tag1", Group = "test"}, - new Tag {Text = "tag2", Group = "test1"} + new Tag {Text = "tag4", Group = "test1"} }, false); var result1 = repository.GetTagsForEntityType(TaggableObjectTypes.Content).ToArray(); var result2 = repository.GetTagsForEntityType(TaggableObjectTypes.Media).ToArray(); + var result3 = repository.GetTagsForEntityType(TaggableObjectTypes.All).ToArray(); Assert.AreEqual(3, result1.Count()); Assert.AreEqual(2, result2.Count()); + Assert.AreEqual(4, result3.Count()); + + Assert.AreEqual(1, result1.Single(x => x.Text == "tag1").NodeCount); + Assert.AreEqual(2, result3.Single(x => x.Text == "tag1").NodeCount); + Assert.AreEqual(1, result3.Single(x => x.Text == "tag4").NodeCount); } } From a378d0c202497f591fb43ff62a1635a3e8f61b4c Mon Sep 17 00:00:00 2001 From: Alain Date: Mon, 5 Jan 2015 21:30:22 +0000 Subject: [PATCH 279/310] Update UserServiceTests.cs --- src/Umbraco.Tests/Services/UserServiceTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Tests/Services/UserServiceTests.cs b/src/Umbraco.Tests/Services/UserServiceTests.cs index c4fcbd8e88..a1591b44f8 100644 --- a/src/Umbraco.Tests/Services/UserServiceTests.cs +++ b/src/Umbraco.Tests/Services/UserServiceTests.cs @@ -465,8 +465,8 @@ namespace Umbraco.Tests.Services //assert var result1 = ServiceContext.UserService.GetUserById((int)user1.Id); var result2 = ServiceContext.UserService.GetUserById((int)user2.Id); - Assert.IsFalse(result1.AllowedSections.Contains("test")); - Assert.IsFalse(result2.AllowedSections.Contains("test")); + Assert.IsTrue(result1.AllowedSections.Contains("test")); + Assert.IsTrue(result2.AllowedSections.Contains("test")); } [Test] From a4f7c49f50392d3f30ee97edeb4b821bf9acb261 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 6 Jan 2015 10:55:38 +1100 Subject: [PATCH 280/310] Merge branch 'Alain-es-Fix_for_U4-5875' into dev-v7 - And updates quite a lot: changes directive name to valPropertyValidator and changes how it works to be ultra flexible for custom validation of property data. Updates umbProperty directive to expose an API for other directives to utilize (like the new set setPropertyError method). Updates valServer to use the better way to access the current property object from the umbProperty directive API. Updates both valServer and valPropertyMsg to only perform a watch when necessary when there has been server side errors, this will speed up client side performance quite a bit. Now the tags, color picker and upload property editors performs correct client side and server side validation for the required validation flag. --- .../directives/umbproperty.directive.js | 12 +- .../validation/valpropertymsg.directive.js | 129 +++++++++++------- .../valpropertyvalidator.directive.js | 67 +++++++++ .../validation/valserver.directive.js | 73 ++++++---- .../colorpicker/colorpicker.controller.js | 12 ++ .../colorpicker/colorpicker.html | 2 + .../fileupload/fileupload.controller.js | 20 +++ .../fileupload/fileupload.html | 5 +- .../propertyeditors/tags/tags.controller.js | 65 ++++----- .../src/views/propertyeditors/tags/tags.html | 19 ++- 10 files changed, 286 insertions(+), 118 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertyvalidator.directive.js diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/umbproperty.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/umbproperty.directive.js index cd84a3b2ca..d84bb8e24d 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/umbproperty.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/umbproperty.directive.js @@ -13,8 +13,18 @@ angular.module("umbraco.directives") restrict: 'E', replace: true, templateUrl: 'views/directives/umb-property.html', - link: function (scope, element, attrs, ctrl) { + //Define a controller for this directive to expose APIs to other directives + controller: function ($scope, $timeout) { + + var self = this; + + //set the API properties/methods + + self.property = $scope.property; + self.setPropertyError = function(errorMsg) { + $scope.property.propertyErrorMessage = errorMsg; + }; } }; }); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertymsg.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertymsg.directive.js index ea4b1b82c8..d37f4c5271 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertymsg.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertymsg.directive.js @@ -9,22 +9,86 @@ * and when an error is detected for this property we'll show the error message. * In order for this directive to work, the valStatusChanged directive must be placed on the containing form. **/ -function valPropertyMsg(serverValidationManager) { +function valPropertyMsg(serverValidationManager) { + return { scope: { - property: "=property" + property: "=" }, require: "^form", //require that this directive is contained within an ngForm replace: true, //replace the element with the template restrict: "E", //restrict to element - template: "
{{errorMsg}}
", - + template: "
{{errorMsg}}
", + /** Our directive requries a reference to a form controller which gets passed in to this parameter */ link: function (scope, element, attrs, formCtrl) { + var watcher = null; + + // Gets the error message to display + function getErrorMsg() { + //this can be null if no property was assigned + if (scope.property) { + //first try to get the error msg from the server collection + var err = serverValidationManager.getPropertyError(scope.property.alias, ""); + //if there's an error message use it + if (err && err.errorMsg) { + return err.errorMsg; + } + else { + return scope.property.propertyErrorMessage ? scope.property.propertyErrorMessage : "Property has errors"; + } + + } + return "Property has errors"; + } + + // We need to subscribe to any changes to our model (based on user input) + // This is required because when we have a server error we actually invalidate + // the form which means it cannot be resubmitted. + // So once a field is changed that has a server error assigned to it + // we need to re-validate it for the server side validator so the user can resubmit + // the form. Of course normal client-side validators will continue to execute. + function startWatch() { + //if there's not already a watch + if (!watcher) { + watcher = scope.$watch("property.value", function (newValue, oldValue) { + + if (!newValue || angular.equals(newValue, oldValue)) { + return; + } + + var errCount = 0; + for (var e in formCtrl.$error) { + if (angular.isArray(formCtrl.$error[e])) { + errCount++; + } + } + + //we are explicitly checking for valServer errors here, since we shouldn't auto clear + // based on other errors. We'll also check if there's no other validation errors apart from valPropertyMsg, if valPropertyMsg + // is the only one, then we'll clear. + + if ((errCount === 1 && angular.isArray(formCtrl.$error.valPropertyMsg)) || (formCtrl.$invalid && angular.isArray(formCtrl.$error.valServer))) { + scope.errorMsg = ""; + formCtrl.$setValidity('valPropertyMsg', true); + stopWatch(); + } + }, true); + } + } + + //clear the watch when the property validator is valid again + function stopWatch() { + if (watcher) { + watcher(); + watcher = null; + } + } + //if there's any remaining errors in the server validation service then we should show them. var showValidation = serverValidationManager.items.length > 0; var hasError = false; @@ -33,7 +97,7 @@ function valPropertyMsg(serverValidationManager) { scope.errorMsg = ""; //listen for form error changes - scope.$on("valStatusChanged", function(evt, args) { + scope.$on("valStatusChanged", function (evt, args) { if (args.form.$invalid) { //first we need to check if the valPropertyMsg validity is invalid @@ -47,12 +111,7 @@ function valPropertyMsg(serverValidationManager) { hasError = true; //update the validation message if we don't already have one assigned. if (showValidation && scope.errorMsg === "") { - var err; - //this can be null if no property was assigned - if (scope.property) { - err = serverValidationManager.getPropertyError(scope.property.alias, ""); - } - scope.errorMsg = err ? err.errorMsg : "Property has errors"; + scope.errorMsg = getErrorMsg(); } } else { @@ -70,15 +129,11 @@ function valPropertyMsg(serverValidationManager) { scope.$on("formSubmitting", function (ev, args) { showValidation = true; if (hasError && scope.errorMsg === "") { - var err; - //this can be null if no property was assigned - if (scope.property) { - err = serverValidationManager.getPropertyError(scope.property.alias, ""); - } - scope.errorMsg = err ? err.errorMsg : "Property has errors"; + scope.errorMsg = getErrorMsg(); } else if (!hasError) { scope.errorMsg = ""; + stopWatch(); } }); @@ -86,37 +141,10 @@ function valPropertyMsg(serverValidationManager) { scope.$on("formSubmitted", function (ev, args) { showValidation = false; scope.errorMsg = ""; - formCtrl.$setValidity('valPropertyMsg', true); + formCtrl.$setValidity('valPropertyMsg', true); + stopWatch(); }); - //We need to subscribe to any changes to our model (based on user input) - // This is required because when we have a server error we actually invalidate - // the form which means it cannot be resubmitted. - // So once a field is changed that has a server error assigned to it - // we need to re-validate it for the server side validator so the user can resubmit - // the form. Of course normal client-side validators will continue to execute. - scope.$watch("property.value", function(newValue) { - //we are explicitly checking for valServer errors here, since we shouldn't auto clear - // based on other errors. We'll also check if there's no other validation errors apart from valPropertyMsg, if valPropertyMsg - // is the only one, then we'll clear. - - if (!newValue) { - return; - } - - var errCount = 0; - for (var e in formCtrl.$error) { - if (angular.isArray(formCtrl.$error[e])) { - errCount++; - } - } - - if ((errCount === 1 && angular.isArray(formCtrl.$error.valPropertyMsg)) || (formCtrl.$invalid && angular.isArray(formCtrl.$error.valServer))) { - scope.errorMsg = ""; - formCtrl.$setValidity('valPropertyMsg', true); - } - }, true); - //listen for server validation changes // NOTE: we pass in "" in order to listen for all validation changes to the content property, not for // validation changes to fields in the property this is because some server side validators may not @@ -124,27 +152,30 @@ function valPropertyMsg(serverValidationManager) { // It's important to note that we need to subscribe to server validation changes here because we always must // indicate that a content property is invalid at the property level since developers may not actually implement // the correct field validation in their property editors. - + if (scope.property) { //this can be null if no property was assigned - serverValidationManager.subscribe(scope.property.alias, "", function(isValid, propertyErrors, allErrors) { + serverValidationManager.subscribe(scope.property.alias, "", function (isValid, propertyErrors, allErrors) { hasError = !isValid; if (hasError) { //set the error message to the server message scope.errorMsg = propertyErrors[0].errorMsg; //flag that the current validator is invalid formCtrl.$setValidity('valPropertyMsg', false); + startWatch(); } else { scope.errorMsg = ""; //flag that the current validator is valid formCtrl.$setValidity('valPropertyMsg', true); + stopWatch(); } }); //when the element is disposed we need to unsubscribe! // NOTE: this is very important otherwise when this controller re-binds the previous subscriptsion will remain // but they are a different callback instance than the above. - element.bind('$destroy', function() { + element.bind('$destroy', function () { + stopWatch(); serverValidationManager.unsubscribe(scope.property.alias, ""); }); } diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertyvalidator.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertyvalidator.directive.js new file mode 100644 index 0000000000..1d04fd9b34 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertyvalidator.directive.js @@ -0,0 +1,67 @@ +/** +* @ngdoc directive +* @name umbraco.directives.directive:valPropertyValidator +* @restrict A +* @description Performs any custom property value validation checks on the client side. This allows property editors to be highly flexible when it comes to validation + on the client side. Typically if a property editor stores a primitive value (i.e. string) then the client side validation can easily be taken care of + with standard angular directives such as ng-required. However since some property editors store complex data such as JSON, a given property editor + might require custom validation. This directive can be used to validate an Umbraco property in any way that a developer would like by specifying a + callback method to perform the validation. The result of this method must return an object in the format of + {isValid: true, errorKey: 'required', errorMsg: 'Something went wrong' } + The error message returned will also be displayed for the property level validation message. + This directive should only be used when dealing with complex models, if custom validation needs to be performed with primitive values, use the simpler + angular validation directives instead since this will watch the entire model. +**/ + +function valPropertyValidator(serverValidationManager) { + return { + scope: { + valPropertyValidator: "=" + }, + + // The element must have ng-model attribute and be inside an umbProperty directive + require: ['ngModel', '^umbProperty'], + + restrict: "A", + + link: function (scope, element, attrs, ctrls) { + + var modelCtrl = ctrls[0]; + var propCtrl = ctrls[1]; + + // Check whether the scope has a valPropertyValidator method + if (!scope.valPropertyValidator || !angular.isFunction(scope.valPropertyValidator)) { + throw new Error('val-property-validator directive must specify a function to call'); + } + + var initResult = scope.valPropertyValidator(); + + // Validation method + var validate = function (viewValue) { + // Calls the validition method + var result = scope.valPropertyValidator(); + if (!result.errorKey || result.isValid === undefined || !result.errorMsg) { + throw "The result object from valPropertyValidator does not contain required properties: isValid, errorKey, errorMsg"; + } + if (result.isValid === true) { + // Tell the controller that the value is valid + modelCtrl.$setValidity(result.errorKey, true); + propCtrl.setPropertyError(null); + } + else { + // Tell the controller that the value is invalid + modelCtrl.$setValidity(result.errorKey, false); + propCtrl.setPropertyError(result.errorMsg); + } + }; + + // Formatters are invoked when the model is modified in the code. + modelCtrl.$formatters.push(validate); + + // Parsers are called as soon as the value in the form input is modified + modelCtrl.$parsers.push(validate); + + } + }; +} +angular.module('umbraco.directives.validation').directive("valPropertyValidator", valPropertyValidator); diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js index fbc91dcb11..9d944aabcc 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js @@ -7,14 +7,49 @@ **/ function valServer(serverValidationManager) { return { - require: 'ngModel', + require: ['ngModel', '^umbProperty'], restrict: "A", - link: function (scope, element, attr, ctrl) { - - if (!scope.model || !scope.model.alias){ - throw "valServer can only be used in the scope of a content property object"; + link: function (scope, element, attr, ctrls) { + + var modelCtrl = ctrls[0]; + var umbPropCtrl = ctrls[1]; + + var watcher = null; + + //Need to watch the value model for it to change, previously we had subscribed to + //modelCtrl.$viewChangeListeners but this is not good enough if you have an editor that + // doesn't specifically have a 2 way ng binding. This is required because when we + // have a server error we actually invalidate the form which means it cannot be + // resubmitted. So once a field is changed that has a server error assigned to it + // we need to re-validate it for the server side validator so the user can resubmit + // the form. Of course normal client-side validators will continue to execute. + function startWatch() { + //if there's not already a watch + if (!watcher) { + watcher = scope.$watch(function () { + return modelCtrl.$modelValue; + }, function (newValue, oldValue) { + + if (!newValue || angular.equals(newValue, oldValue)) { + return; + } + + if (modelCtrl.$invalid) { + modelCtrl.$setValidity('valServer', true); + stopWatch(); + } + }, true); + } } - var currentProperty = scope.model; + + function stopWatch() { + if (watcher) { + watcher(); + watcher = null; + } + } + + var currentProperty = umbPropCtrl.property; //default to 'value' if nothing is set var fieldName = "value"; @@ -25,33 +60,20 @@ function valServer(serverValidationManager) { fieldName = attr.valServer; } } - - //Need to watch the value model for it to change, previously we had subscribed to - //ctrl.$viewChangeListeners but this is not good enough if you have an editor that - // doesn't specifically have a 2 way ng binding. This is required because when we - // have a server error we actually invalidate the form which means it cannot be - // resubmitted. So once a field is changed that has a server error assigned to it - // we need to re-validate it for the server side validator so the user can resubmit - // the form. Of course normal client-side validators will continue to execute. - scope.$watch(function() { - return ctrl.$modelValue; - }, function (newValue) { - if (ctrl.$invalid) { - ctrl.$setValidity('valServer', true); - } - }); //subscribe to the server validation changes serverValidationManager.subscribe(currentProperty.alias, fieldName, function (isValid, propertyErrors, allErrors) { if (!isValid) { - ctrl.$setValidity('valServer', false); + modelCtrl.$setValidity('valServer', false); //assign an error msg property to the current validator - ctrl.errorMsg = propertyErrors[0].errorMsg; + modelCtrl.errorMsg = propertyErrors[0].errorMsg; + startWatch(); } else { - ctrl.$setValidity('valServer', true); + modelCtrl.$setValidity('valServer', true); //reset the error message - ctrl.errorMsg = ""; + modelCtrl.errorMsg = ""; + stopWatch(); } }); @@ -59,6 +81,7 @@ function valServer(serverValidationManager) { // NOTE: this is very important otherwise when this controller re-binds the previous subscriptsion will remain // but they are a different callback instance than the above. element.bind('$destroy', function () { + stopWatch(); serverValidationManager.unsubscribe(currentProperty.alias, fieldName); }); } diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.controller.js index 89bc626d6a..f14492e88a 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.controller.js @@ -2,11 +2,23 @@ function ColorPickerController($scope) { $scope.toggleItem = function (color) { if ($scope.model.value == color) { $scope.model.value = ""; + //this is required to re-validate + $scope.propertyForm.modelValue.$setViewValue($scope.model.value); } else { $scope.model.value = color; + //this is required to re-validate + $scope.propertyForm.modelValue.$setViewValue($scope.model.value); } }; + // Method required by the valPropertyValidator directive (returns true if the property editor has at least one color selected) + $scope.validateMandatory = function () { + return { + isValid: !$scope.model.validation.mandatory || ($scope.model.value != null && $scope.model.value != ""), + errorMsg: "Value cannot be empty", + errorKey: "required" + }; + } $scope.isConfigured = $scope.model.config && $scope.model.config.items && _.keys($scope.model.config.items).length > 0; } diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.html index d2bf2cf87c..a493fffdd8 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/colorpicker.html @@ -12,4 +12,6 @@ + +
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.controller.js index 9106e2b334..37dea64c21 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.controller.js @@ -21,6 +21,11 @@ function fileUploadController($scope, $element, $compile, imageHelper, fileManag fileManager.setFiles($scope.model.alias, []); //clear the current files $scope.files = []; + if ($scope.propertyForm.fileCount) { + //this is required to re-validate + $scope.propertyForm.fileCount.$setViewValue($scope.files.length); + } + } /** this method is used to initialize the data and to re-initialize it if the server value is changed */ @@ -71,6 +76,15 @@ function fileUploadController($scope, $element, $compile, imageHelper, fileManag initialize(); + // Method required by the valPropertyValidator directive (returns true if the property editor has at least one file selected) + $scope.validateMandatory = function () { + return { + isValid: !$scope.model.validation.mandatory || ((($scope.persistedFiles != null && $scope.persistedFiles.length > 0) || ($scope.files != null && $scope.files.length > 0)) && !$scope.clearFiles), + errorMsg: "Value cannot be empty", + errorKey: "required" + }; + } + //listen for clear files changes to set our model to be sent up to the server $scope.$watch("clearFiles", function (isCleared) { if (isCleared == true) { @@ -80,6 +94,8 @@ function fileUploadController($scope, $element, $compile, imageHelper, fileManag else { //reset to original value $scope.model.value = $scope.originalValue; + //this is required to re-validate + $scope.propertyForm.fileCount.$setViewValue($scope.files.length); } }); @@ -96,6 +112,10 @@ function fileUploadController($scope, $element, $compile, imageHelper, fileManag $scope.files.push({ alias: $scope.model.alias, file: args.files[i] }); newVal += args.files[i].name + ","; } + + //this is required to re-validate + $scope.propertyForm.fileCount.$setViewValue($scope.files.length); + //set clear files to false, this will reset the model too $scope.clearFiles = false; //set the model value to be the concatenation of files selected. Please see the notes diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.html index afcba5a493..e200b2726c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/fileupload/fileupload.html @@ -25,4 +25,7 @@
  • {{file.file.name}}
  • -
    + + + +
    \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js index 4577430195..9c0d016189 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js @@ -12,31 +12,38 @@ angular.module("umbraco") $scope.isLoading = false; //load current value - $scope.currentTags = []; + if ($scope.model.value) { - if ($scope.model.config.storageType && $scope.model.config.storageType === "Json") { - //it's a json array already - $scope.currentTags = $scope.model.value; - } - else { + if (!$scope.model.config.storageType || $scope.model.config.storageType !== "Json") { //it is csv if (!$scope.model.value) { - $scope.currentTags = []; + $scope.model.value = []; } else { - $scope.currentTags = $scope.model.value.split(","); + $scope.model.value = $scope.model.value.split(","); } } } + else { + $scope.model.value = []; + } + + // Method required by the valPropertyValidator directive (returns true if the property editor has at least one tag selected) + $scope.validateMandatory = function () { + return { + isValid: !$scope.model.validation.mandatory || ($scope.model.value != null && $scope.model.value.length > 0), + errorMsg: "Value cannot be empty", + errorKey: "required" + }; + } //Helper method to add a tag on enter or on typeahead select function addTag(tagToAdd) { - if (tagToAdd.length > 0) { - if ($scope.currentTags.indexOf(tagToAdd) < 0) { - $scope.currentTags.push(tagToAdd); - //update the model value, this is required if there's a server validation error, it can - // only then be cleared if the model changes - $scope.model.value = $scope.currentTags; + if (tagToAdd != null && tagToAdd.length > 0) { + if ($scope.model.value.indexOf(tagToAdd) < 0) { + $scope.model.value.push(tagToAdd); + //this is required to re-validate + $scope.propertyForm.tagCount.$setViewValue($scope.model.value.length); } } } @@ -47,7 +54,6 @@ angular.module("umbraco") if ($element.find('.tags-' + $scope.model.alias).parent().find(".tt-dropdown-menu .tt-cursor").length === 0) { //this is required, otherwise the html form will attempt to submit. e.preventDefault(); - $scope.addTag(); } } @@ -66,36 +72,26 @@ angular.module("umbraco") $scope.removeTag = function (tag) { - var i = $scope.currentTags.indexOf(tag); + var i = $scope.model.value.indexOf(tag); if (i >= 0) { - $scope.currentTags.splice(i, 1); - //update the model value, this is required if there's a server validation error, it can - // only then be cleared if the model changes - $scope.model.value = $scope.currentTags; + $scope.model.value.splice(i, 1); + //this is required to re-validate + $scope.propertyForm.tagCount.$setViewValue($scope.model.value.length); } }; - //sync model on submit, always push up a json array - $scope.$on("formSubmitting", function (ev, args) { - $scope.model.value = $scope.currentTags; - }); - //vice versa $scope.model.onValueChanged = function (newVal, oldVal) { //update the display val again if it has changed from the server $scope.model.value = newVal; - if ($scope.model.config.storageType && $scope.model.config.storageType === "Json") { - //it's a json array already - $scope.currentTags = $scope.model.value; - } - else { + if (!$scope.model.config.storageType || $scope.model.config.storageType !== "Json") { //it is csv if (!$scope.model.value) { - $scope.currentTags = []; + $scope.model.value = []; } else { - $scope.currentTags = $scope.model.value.split(","); + $scope.model.value = $scope.model.value.split(","); } } }; @@ -110,14 +106,14 @@ angular.module("umbraco") }); // remove current tags from the list return $.grep(tagList, function (tag) { - return ($.inArray(tag.value, $scope.currentTags) === -1); + return ($.inArray(tag.value, $scope.model.value) === -1); }); } // helper method to remove current tags function removeCurrentTagsFromSuggestions(suggestions) { return $.grep(suggestions, function (suggestion) { - return ($.inArray(suggestion.value, $scope.currentTags) === -1); + return ($.inArray(suggestion.value, $scope.model.value) === -1); }); } @@ -158,7 +154,6 @@ angular.module("umbraco") // name = the data set name, we'll make this the tag group name name: $scope.model.config.group, displayKey: "value", - //source: tagsHound.ttAdapter(), source: function (query, cb) { tagsHound.get(query, function (suggestions) { cb(removeCurrentTagsFromSuggestions(suggestions)); diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.html index 1a0452e242..b1049a2309 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.html @@ -1,21 +1,26 @@
    - -
    - Loading... + +
    + Loading...
    - + + + + + placeholder="@placeholders_enterTags" /> +
    +
    \ No newline at end of file From d0f125a51b909e25dc754294fd3fa0482b0ad515 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 6 Jan 2015 11:19:19 +1100 Subject: [PATCH 281/310] moves file cleanup to outside of the loop --- src/Umbraco.Web/Editors/MediaController.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web/Editors/MediaController.cs b/src/Umbraco.Web/Editors/MediaController.cs index ae2bd0954b..473c0866e9 100644 --- a/src/Umbraco.Web/Editors/MediaController.cs +++ b/src/Umbraco.Web/Editors/MediaController.cs @@ -290,9 +290,6 @@ namespace Umbraco.Web.Editors Services.MediaService.EmptyRecycleBin(); return Request.CreateResponse(HttpStatusCode.OK); } - - - /// /// Change the sort order for media @@ -390,6 +387,8 @@ namespace Umbraco.Web.Editors return Request.CreateResponse(HttpStatusCode.Unauthorized); } + var tempFiles = new List(); + //get the files foreach (var file in result.FileData) { @@ -417,10 +416,16 @@ namespace Umbraco.Web.Editors LogHelper.Warn("Cannot upload file " + file + ", it is not an approved file type"); } - //now we can remove the temp file - System.IO.File.Delete(file.LocalFileName); + tempFiles.Add(file.LocalFileName); } + //now we can remove the temp files + foreach (var tempFile in tempFiles) + { + System.IO.File.Delete(tempFile); + } + + return Request.CreateResponse(HttpStatusCode.OK); } From 3f1b031789d0551380521e65c4875005810db465 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 6 Jan 2015 11:19:44 +1100 Subject: [PATCH 282/310] fixes OverridableAuthorizationAttribute to ensure that the class level filter is applied if there are no child filters --- .../WebApi/Filters/OverridableAuthorizationAttribute.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web/WebApi/Filters/OverridableAuthorizationAttribute.cs b/src/Umbraco.Web/WebApi/Filters/OverridableAuthorizationAttribute.cs index cc0e8057b8..f5c536420b 100644 --- a/src/Umbraco.Web/WebApi/Filters/OverridableAuthorizationAttribute.cs +++ b/src/Umbraco.Web/WebApi/Filters/OverridableAuthorizationAttribute.cs @@ -35,8 +35,11 @@ namespace Umbraco.Web.WebApi.Filters return; } + //if the controller is allowing overridable authorization at the action level and there are action level authorization attributes + // then exit and let the action level auth attribute(s) execute. - if (actionContext.ActionDescriptor.ControllerDescriptor.GetCustomAttributes().Any()) + if (actionContext.ActionDescriptor.ControllerDescriptor.GetCustomAttributes().Any() + && actionAttributes.Any()) { return; } From 485621b03afbf654f55d8ed49066ce303eb6ddf0 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 6 Jan 2015 11:22:40 +1100 Subject: [PATCH 283/310] Revert "Merge branch '7.2.0-U4-4049' into dev-v7" This reverts commit 2ad86ec83d43aebbb3f01474c06a15167dd43eaa, reversing changes made to 70ddf646bef4852bc1dbb9d0179f6d1063ea2213. --- ...terAllowedOutgoingContentAttributeTests.cs | 1 - src/Umbraco.Web/Editors/ContentController.cs | 8 +- .../Editors/ContentModelValidationFilter.cs | 106 ----- src/Umbraco.Web/Editors/DataTypeController.cs | 1 + .../Filters/ContentItemBaseFormatter.cs | 143 ------- ...entModelFormatterConfigurationAttribute.cs | 29 -- .../Editors/Filters/MemberValidationHelper.cs | 27 -- src/Umbraco.Web/Editors/MediaController.cs | 8 +- .../Editors/MediaPostValidateAttribute.cs | 1 - src/Umbraco.Web/Editors/MemberController.cs | 8 +- src/Umbraco.Web/Umbraco.Web.csproj | 18 +- .../Binders}/ContentItemBaseBinder.cs | 378 +++++++++-------- .../Binders/ContentItemBinder.cs} | 89 ++-- .../Binders/MediaItemBinder.cs} | 88 ++-- .../Binders/MemberBinder.cs} | 394 ++++++++++-------- .../Filters/ContentItemValidationHelper.cs} | 318 +++++++------- .../FilterAllowedOutgoingContentAttribute.cs | 201 ++++----- .../FilterAllowedOutgoingMediaAttribute.cs | 3 +- 18 files changed, 784 insertions(+), 1037 deletions(-) delete mode 100644 src/Umbraco.Web/Editors/ContentModelValidationFilter.cs delete mode 100644 src/Umbraco.Web/Editors/Filters/ContentItemBaseFormatter.cs delete mode 100644 src/Umbraco.Web/Editors/Filters/ContentModelFormatterConfigurationAttribute.cs delete mode 100644 src/Umbraco.Web/Editors/Filters/MemberValidationHelper.cs rename src/Umbraco.Web/{Editors/Filters => WebApi/Binders}/ContentItemBaseBinder.cs (86%) rename src/Umbraco.Web/{Editors/Filters/ContentItemFormatter.cs => WebApi/Binders/ContentItemBinder.cs} (71%) rename src/Umbraco.Web/{Editors/Filters/MediaItemFormatter.cs => WebApi/Binders/MediaItemBinder.cs} (74%) rename src/Umbraco.Web/{Editors/Filters/MemberFormatter.cs => WebApi/Binders/MemberBinder.cs} (82%) rename src/Umbraco.Web/{Editors/Filters/ContentValidationHelper.cs => WebApi/Filters/ContentItemValidationHelper.cs} (87%) rename src/Umbraco.Web/{Editors => WebApi}/Filters/FilterAllowedOutgoingContentAttribute.cs (95%) rename src/Umbraco.Web/{Editors => WebApi}/Filters/FilterAllowedOutgoingMediaAttribute.cs (98%) diff --git a/src/Umbraco.Tests/Controllers/WebApiEditors/FilterAllowedOutgoingContentAttributeTests.cs b/src/Umbraco.Tests/Controllers/WebApiEditors/FilterAllowedOutgoingContentAttributeTests.cs index 777055dd2d..c0076f17fb 100644 --- a/src/Umbraco.Tests/Controllers/WebApiEditors/FilterAllowedOutgoingContentAttributeTests.cs +++ b/src/Umbraco.Tests/Controllers/WebApiEditors/FilterAllowedOutgoingContentAttributeTests.cs @@ -8,7 +8,6 @@ using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Models.Membership; using Umbraco.Core.Services; -using Umbraco.Web.Editors.Filters; using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.WebApi.Filters; diff --git a/src/Umbraco.Web/Editors/ContentController.cs b/src/Umbraco.Web/Editors/ContentController.cs index 63517b53cf..d52a65fcb3 100644 --- a/src/Umbraco.Web/Editors/ContentController.cs +++ b/src/Umbraco.Web/Editors/ContentController.cs @@ -16,13 +16,13 @@ using Umbraco.Core.Models.Membership; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Publishing; using Umbraco.Core.Services; -using Umbraco.Web.Editors.Filters; using Umbraco.Web.Models; using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Models.Mapping; using Umbraco.Web.Mvc; using Umbraco.Web.Security; using Umbraco.Web.WebApi; +using Umbraco.Web.WebApi.Binders; using Umbraco.Web.WebApi.Filters; using umbraco; using Umbraco.Core.Models; @@ -43,7 +43,6 @@ namespace Umbraco.Web.Editors /// [PluginController("UmbracoApi")] [UmbracoApplicationAuthorizeAttribute(Constants.Applications.Content)] - [ContentModelFormatterConfiguration(typeof(ContentItemFormatter))] public class ContentController : ContentControllerBase { /// @@ -200,8 +199,9 @@ namespace Umbraco.Web.Editors /// [FileUploadCleanupFilter] [ContentPostValidate] - [ContentModelValidationFilter(typeof(ContentItemSave), typeof(IContent))] - public ContentItemDisplay PostSave(ContentItemSave contentItem) + public ContentItemDisplay PostSave( + [ModelBinder(typeof(ContentItemBinder))] + ContentItemSave contentItem) { //If we've reached here it means: // * Our model has been bound diff --git a/src/Umbraco.Web/Editors/ContentModelValidationFilter.cs b/src/Umbraco.Web/Editors/ContentModelValidationFilter.cs deleted file mode 100644 index 69e8c32cba..0000000000 --- a/src/Umbraco.Web/Editors/ContentModelValidationFilter.cs +++ /dev/null @@ -1,106 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Reflection; -using System.Web.Http.Controllers; -using System.Web.Http.Filters; -using Umbraco.Core; -using Umbraco.Core.Models; -using Umbraco.Web.Editors.Filters; -using Umbraco.Web.Models.ContentEditing; -using Umbraco.Web.WebApi.Filters; - -namespace Umbraco.Web.Editors -{ - /// - /// This filter is used on all PostSave methods for Content, Media and Members. It's purpose is to instantiate a new instance of - /// ContentItemValidationHelper{TPersisted, TModelSave} which is used to validate the content properties of these entity types. - /// This filter is then executed after the model is bound but before the action is executed. - /// - internal sealed class ContentModelValidationFilter : ActionFilterAttribute - { - private readonly Type _customValidationHelperType; - private readonly Type _contentItemSaveType; - private readonly Type _contentPersistedType; - - private static readonly ConcurrentDictionary, ValidationHelperReflectedType> ReflectionCache = new ConcurrentDictionary, ValidationHelperReflectedType>(); - - /// - /// Constructor accepting a custom instance of a ContentItemValidationHelper{TPersisted, TModelSave} - /// - /// - public ContentModelValidationFilter(Type customValidationHelperType) - { - if (customValidationHelperType == null) throw new ArgumentNullException("customValidationHelperType"); - _customValidationHelperType = customValidationHelperType; - } - - /// - /// Constructor accepting the types required to create an instance of the desired ContentItemValidationHelper{TPersisted, TModelSave} - /// - /// - /// - public ContentModelValidationFilter(Type contentItemSaveType, Type contentPersistedType) - { - if (contentItemSaveType == null) - throw new ArgumentNullException("contentItemSaveType"); - if (contentPersistedType == null) - throw new ArgumentNullException("contentPersistedType"); - if (TypeHelper.IsTypeAssignableFrom(contentItemSaveType) == false) - throw new ArgumentException("Invalid base type", "contentItemSaveType"); - if (TypeHelper.IsTypeAssignableFrom(contentPersistedType) == false) - throw new ArgumentException("Invalid base type", "contentPersistedType"); - - _contentItemSaveType = contentItemSaveType; - _contentPersistedType = contentPersistedType; - } - - /// - /// Occurs before the action method is invoked. - /// - /// The action context. - public override void OnActionExecuting(HttpActionContext actionContext) - { - var contentItem = actionContext.ActionArguments["contentItem"]; - - //NOTE: This will be an instance of ContentItemValidationHelper - object validator; - MethodInfo validateMethod; - if (_customValidationHelperType != null) - { - //Get the validator for this generic type - validator = Activator.CreateInstance(_customValidationHelperType); - validateMethod = _customValidationHelperType.GetMethod("ValidateItem"); - } - else - { - var reflectedInfo = ReflectionCache.GetOrAdd(new Tuple(_contentItemSaveType, _contentPersistedType), - tuple => - { - var validationHelperGenericType = typeof(ContentValidationHelper<,>); - var realType = validationHelperGenericType.MakeGenericType(_contentPersistedType, _contentItemSaveType); - return new ValidationHelperReflectedType - { - RealType = realType, - ValidateMethod = realType.GetMethod("ValidateItem") - }; - }); - - //Get the validator for this generic type - validator = Activator.CreateInstance(reflectedInfo.RealType); - - validateMethod = reflectedInfo.ValidateMethod; - } - - - //Now call the methods for this instance - validateMethod.Invoke(validator, new object[] { actionContext, contentItem }); - - } - - private class ValidationHelperReflectedType - { - public Type RealType { get; set; } - public MethodInfo ValidateMethod { get; set; } - } - } -} \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/DataTypeController.cs b/src/Umbraco.Web/Editors/DataTypeController.cs index 8aec9aef22..67b5619e3c 100644 --- a/src/Umbraco.Web/Editors/DataTypeController.cs +++ b/src/Umbraco.Web/Editors/DataTypeController.cs @@ -14,6 +14,7 @@ using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Models.Mapping; using Umbraco.Web.Mvc; using Umbraco.Web.WebApi; +using Umbraco.Web.WebApi.Binders; using Umbraco.Web.WebApi.Filters; using umbraco; using Constants = Umbraco.Core.Constants; diff --git a/src/Umbraco.Web/Editors/Filters/ContentItemBaseFormatter.cs b/src/Umbraco.Web/Editors/Filters/ContentItemBaseFormatter.cs deleted file mode 100644 index c2092a8901..0000000000 --- a/src/Umbraco.Web/Editors/Filters/ContentItemBaseFormatter.cs +++ /dev/null @@ -1,143 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Net.Http.Formatting; -using System.Net.Http.Headers; -using System.Threading.Tasks; -using System.Web.Http; -using Newtonsoft.Json; -using Umbraco.Core; -using Umbraco.Core.IO; -using Umbraco.Core.Models; -using Umbraco.Web.Models.ContentEditing; - -namespace Umbraco.Web.Editors.Filters -{ - /// - /// Binds the content model to the controller action for the posted multi-part Post - /// - internal abstract class ContentItemBaseFormatter : MediaTypeFormatter - where TPersisted : class, IContentBase - where TModelSave : ContentBaseItemSave - { - protected ApplicationContext ApplicationContext { get; private set; } - - public override bool CanReadType(Type type) - { - return (type == typeof(TModelSave)); - } - - public override bool CanWriteType(Type type) - { - return false; - } - - /// - /// Constructor - /// - /// - internal ContentItemBaseFormatter(ApplicationContext applicationContext) - { - ApplicationContext = applicationContext; - - this.SupportedMediaTypes.Clear(); - this.SupportedMediaTypes.Add(new MediaTypeHeaderValue("multipart/form-data")); - } - - /// - /// Asynchronously deserializes an object of the specified type. - /// - /// - /// A whose result will be the object instance that has been read. - /// - /// The type of object to deserialize.The to read.The for the content being read.The to log events to. - public override async Task ReadFromStreamAsync(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger) - { - var root = IOHelper.MapPath("~/App_Data/TEMP/FileUploads"); - //ensure it exists - Directory.CreateDirectory(root); - var provider = new MultipartFormDataStreamProvider(root); - - var result = await content.ReadAsMultipartAsync(provider); - - if (result.FormData["contentItem"] == null) - { - const string errMsg = "The request was not formatted correctly and is missing the 'contentItem' parameter"; - formatterLogger.LogError(string.Empty, errMsg); - var response = new HttpResponseMessage(HttpStatusCode.BadRequest) - { - ReasonPhrase = errMsg - }; - throw new HttpResponseException(response); - } - - //get the string json from the request - var contentItem = result.FormData["contentItem"]; - - //deserialize into our model - var model = JsonConvert.DeserializeObject(contentItem); - - //get the files - foreach (var file in result.FileData) - { - //The name that has been assigned in JS has 2 parts and the second part indicates the property id - // for which the file belongs. - var parts = file.Headers.ContentDisposition.Name.Trim(new char[] { '\"' }).Split('_'); - if (parts.Length != 2) - { - formatterLogger.LogError(string.Empty, "The request was not formatted correctly the file name's must be underscore delimited"); - var response = new HttpResponseMessage(HttpStatusCode.BadRequest) - { - ReasonPhrase = "The request was not formatted correctly the file name's must be underscore delimited" - }; - throw new HttpResponseException(response); - } - var propAlias = parts[1]; - - var fileName = file.Headers.ContentDisposition.FileName.Trim(new char[] { '\"' }); - - model.UploadedFiles.Add(new ContentItemFile - { - TempFilePath = file.LocalFileName, - PropertyAlias = propAlias, - FileName = fileName - }); - } - - model.PersistedContent = ContentControllerBase.IsCreatingAction(model.Action) ? CreateNew(model) : GetExisting(model); - - //create the dto from the persisted model - if (model.PersistedContent != null) - { - model.ContentDto = MapFromPersisted(model); - } - if (model.ContentDto != null) - { - //now map all of the saved values to the dto - MapPropertyValuesFromSaved(model, model.ContentDto); - } - - return model; - } - - /// - /// we will now assign all of the values in the 'save' model to the DTO object - /// - /// - /// - private static void MapPropertyValuesFromSaved(TModelSave saveModel, ContentItemDto dto) - { - foreach (var p in saveModel.Properties.Where(p => dto.Properties.Any(x => x.Alias == p.Alias))) - { - dto.Properties.Single(x => x.Alias == p.Alias).Value = p.Value; - } - } - - protected abstract TPersisted GetExisting(TModelSave model); - protected abstract TPersisted CreateNew(TModelSave model); - protected abstract ContentItemDto MapFromPersisted(TModelSave model); - - } -} \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/Filters/ContentModelFormatterConfigurationAttribute.cs b/src/Umbraco.Web/Editors/Filters/ContentModelFormatterConfigurationAttribute.cs deleted file mode 100644 index 5e7e737309..0000000000 --- a/src/Umbraco.Web/Editors/Filters/ContentModelFormatterConfigurationAttribute.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Net.Http.Formatting; -using System.Web.Http.Controllers; -using Umbraco.Core; - -namespace Umbraco.Web.Editors.Filters -{ - /// - /// Used by the content, media, members controller to bind (format) the incoming Save model - /// - internal class ContentModelFormatterConfigurationAttribute : Attribute, IControllerConfiguration - { - private readonly Type _contentModelFormatterType; - - public ContentModelFormatterConfigurationAttribute(Type contentModelFormatterType) - { - if (contentModelFormatterType == null) throw new ArgumentNullException("contentModelFormatterType"); - if (TypeHelper.IsTypeAssignableFrom(contentModelFormatterType) == false) throw new ArgumentException("Invalid type allowed", "contentModelFormatterType"); - _contentModelFormatterType = contentModelFormatterType; - } - - public virtual void Initialize(HttpControllerSettings controllerSettings, HttpControllerDescriptor controllerDescriptor) - { - //add the multi-part formatter - controllerSettings.Formatters.Add((MediaTypeFormatter)Activator.CreateInstance(_contentModelFormatterType)); - } - } - -} \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/Filters/MemberValidationHelper.cs b/src/Umbraco.Web/Editors/Filters/MemberValidationHelper.cs deleted file mode 100644 index b0a5229025..0000000000 --- a/src/Umbraco.Web/Editors/Filters/MemberValidationHelper.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Linq; -using System.Web.Http.Controllers; -using Umbraco.Core; -using Umbraco.Core.Models; -using Umbraco.Web.Models.ContentEditing; - -namespace Umbraco.Web.Editors.Filters -{ - /// - /// Custom validation helper so that we can exclude the Member.StandardPropertyTypeStubs from being validating for existence - /// - internal class MemberValidationHelper : ContentValidationHelper - { - protected override bool ValidateProperties(ContentItemBasic postedItem, HttpActionContext actionContext) - { - var propertiesToValidate = postedItem.Properties.ToList(); - var defaultProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); - var exclude = defaultProps.Select(x => x.Value.Alias).ToArray(); - foreach (var remove in exclude) - { - propertiesToValidate.RemoveAll(property => property.Alias == remove); - } - - return ValidateProperties(propertiesToValidate.ToArray(), postedItem.PersistedContent.Properties.ToArray(), actionContext); - } - } -} \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/MediaController.cs b/src/Umbraco.Web/Editors/MediaController.cs index 473c0866e9..3f0894c428 100644 --- a/src/Umbraco.Web/Editors/MediaController.cs +++ b/src/Umbraco.Web/Editors/MediaController.cs @@ -20,13 +20,13 @@ using Umbraco.Core.Models.Editors; using Umbraco.Core.Models.Membership; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Services; -using Umbraco.Web.Editors.Filters; using Umbraco.Web.Models; using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Models.Mapping; using Umbraco.Web.Mvc; using Umbraco.Web.WebApi; using System.Linq; +using Umbraco.Web.WebApi.Binders; using Umbraco.Web.WebApi.Filters; using umbraco; using umbraco.BusinessLogic.Actions; @@ -41,7 +41,6 @@ namespace Umbraco.Web.Editors /// [PluginController("UmbracoApi")] [UmbracoApplicationAuthorizeAttribute(Constants.Applications.Media)] - [ContentModelFormatterConfiguration(typeof(MediaItemFormatter))] public class MediaController : ContentControllerBase { /// @@ -215,8 +214,9 @@ namespace Umbraco.Web.Editors /// [FileUploadCleanupFilter] [MediaPostValidate] - [ContentModelValidationFilter(typeof(MediaItemSave), typeof(IMedia))] - public MediaItemDisplay PostSave(MediaItemSave contentItem) + public MediaItemDisplay PostSave( + [ModelBinder(typeof(MediaItemBinder))] + MediaItemSave contentItem) { //If we've reached here it means: // * Our model has been bound diff --git a/src/Umbraco.Web/Editors/MediaPostValidateAttribute.cs b/src/Umbraco.Web/Editors/MediaPostValidateAttribute.cs index a65ecdb66d..ed26fcbc57 100644 --- a/src/Umbraco.Web/Editors/MediaPostValidateAttribute.cs +++ b/src/Umbraco.Web/Editors/MediaPostValidateAttribute.cs @@ -1,5 +1,4 @@ using System; -using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; diff --git a/src/Umbraco.Web/Editors/MemberController.cs b/src/Umbraco.Web/Editors/MemberController.cs index 5ab4588941..a696ccf0b1 100644 --- a/src/Umbraco.Web/Editors/MemberController.cs +++ b/src/Umbraco.Web/Editors/MemberController.cs @@ -21,11 +21,11 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Security; using Umbraco.Core.Services; -using Umbraco.Web.Editors.Filters; using Umbraco.Web.Models.Mapping; using Umbraco.Web.WebApi; using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Mvc; +using Umbraco.Web.WebApi.Binders; using Umbraco.Web.WebApi.Filters; using umbraco; using Constants = Umbraco.Core.Constants; @@ -40,7 +40,6 @@ namespace Umbraco.Web.Editors [PluginController("UmbracoApi")] [UmbracoApplicationAuthorizeAttribute(Constants.Applications.Members)] [OutgoingNoHyphenGuidFormat] - [ContentModelFormatterConfiguration(typeof(MemberFormatter))] public class MemberController : ContentControllerBase { /// @@ -232,8 +231,9 @@ namespace Umbraco.Web.Editors /// [FileUploadCleanupFilter] [MembershipProviderValidationFilter] - [ContentModelValidationFilter(typeof(MemberValidationHelper))] - public MemberDisplay PostSave(MemberSave contentItem) + public MemberDisplay PostSave( + [ModelBinder(typeof(MemberBinder))] + MemberSave contentItem) { //If we've reached here it means: diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 013a3da31c..21ac991bbc 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -268,7 +268,6 @@ - @@ -548,17 +547,13 @@ - - - - + - @@ -798,14 +793,16 @@ - + + + - + - - + + @@ -813,7 +810,6 @@ - diff --git a/src/Umbraco.Web/Editors/Filters/ContentItemBaseBinder.cs b/src/Umbraco.Web/WebApi/Binders/ContentItemBaseBinder.cs similarity index 86% rename from src/Umbraco.Web/Editors/Filters/ContentItemBaseBinder.cs rename to src/Umbraco.Web/WebApi/Binders/ContentItemBaseBinder.cs index 9804e310bf..b5510ec85d 100644 --- a/src/Umbraco.Web/Editors/Filters/ContentItemBaseBinder.cs +++ b/src/Umbraco.Web/WebApi/Binders/ContentItemBaseBinder.cs @@ -1,183 +1,197 @@ -using System.IO; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; -using System.Web; -using System.Web.Http; -using System.Web.Http.Controllers; -using System.Web.Http.ModelBinding; -using Newtonsoft.Json; -using Umbraco.Core; -using Umbraco.Core.IO; -using Umbraco.Core.Models; -using Umbraco.Web.Models.ContentEditing; -using Umbraco.Web.Security; -using Task = System.Threading.Tasks.Task; - -namespace Umbraco.Web.Editors.Filters -{ - /// - /// Binds the content model to the controller action for the posted multi-part Post - /// - internal abstract class ContentItemBaseBinder : IModelBinder - where TPersisted : class, IContentBase - where TModelSave : ContentBaseItemSave - { - protected ApplicationContext ApplicationContext { get; private set; } - - /// - /// Constructor - /// - /// - internal ContentItemBaseBinder(ApplicationContext applicationContext) - { - ApplicationContext = applicationContext; - } - - public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext) - { - //NOTE: Validation is done in the filter - if (actionContext.Request.Content.IsMimeMultipartContent() == false) - { - throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); - } - - var root = IOHelper.MapPath("~/App_Data/TEMP/FileUploads"); - //ensure it exists - Directory.CreateDirectory(root); - var provider = new MultipartFormDataStreamProvider(root); - - var task = Task.Run(() => GetModelAsync(actionContext, bindingContext, provider)) - .ContinueWith(x => - { - if (x.IsFaulted && x.Exception != null) - { - throw x.Exception; - } - - //now that everything is binded, validate the properties - var contentItemValidator = GetValidationHelper(); - contentItemValidator.ValidateItem(actionContext, x.Result); - - bindingContext.Model = x.Result; - }); - - task.Wait(); - - return bindingContext.Model != null; - } - - protected virtual ContentValidationHelper GetValidationHelper() - { - return new ContentValidationHelper(); - } - - /// - /// Builds the model from the request contents - /// - /// - /// - /// - /// - private async Task GetModelAsync(HttpActionContext actionContext, ModelBindingContext bindingContext, MultipartFormDataStreamProvider provider) - { - var request = actionContext.Request; - - //IMPORTANT!!! We need to ensure the umbraco context here because this is running in an async thread - var httpContext = (HttpContextBase) request.Properties["MS_HttpContext"]; - UmbracoContext.EnsureContext( - httpContext, - ApplicationContext.Current, - new WebSecurity(httpContext, ApplicationContext.Current)); - - var content = request.Content; - - var result = await content.ReadAsMultipartAsync(provider); - - if (result.FormData["contentItem"] == null) - { - var response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest); - response.ReasonPhrase = "The request was not formatted correctly and is missing the 'contentItem' parameter"; - throw new HttpResponseException(response); - } - - //get the string json from the request - var contentItem = result.FormData["contentItem"]; - - //deserialize into our model - var model = JsonConvert.DeserializeObject(contentItem); - - //get the default body validator and validate the object - var bodyValidator = actionContext.ControllerContext.Configuration.Services.GetBodyModelValidator(); - var metadataProvider = actionContext.ControllerContext.Configuration.Services.GetModelMetadataProvider(); - //all validation errors will not contain a prefix - bodyValidator.Validate(model, typeof(TModelSave), metadataProvider, actionContext, ""); - - //get the files - foreach (var file in result.FileData) - { - //The name that has been assigned in JS has 2 parts and the second part indicates the property id - // for which the file belongs. - var parts = file.Headers.ContentDisposition.Name.Trim(new char[] { '\"' }).Split('_'); - if (parts.Length != 2) - { - var response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest); - response.ReasonPhrase = "The request was not formatted correctly the file name's must be underscore delimited"; - throw new HttpResponseException(response); - } - var propAlias = parts[1]; - - var fileName = file.Headers.ContentDisposition.FileName.Trim(new char[] {'\"'}); - - model.UploadedFiles.Add(new ContentItemFile - { - TempFilePath = file.LocalFileName, - PropertyAlias = propAlias, - FileName = fileName - }); - } - - if (ContentControllerBase.IsCreatingAction(model.Action)) - { - //we are creating new content - model.PersistedContent = CreateNew(model); - } - else - { - //finally, let's lookup the real content item and create the DTO item - model.PersistedContent = GetExisting(model); - } - - //create the dto from the persisted model - if (model.PersistedContent != null) - { - model.ContentDto = MapFromPersisted(model); - } - if (model.ContentDto != null) - { - //now map all of the saved values to the dto - MapPropertyValuesFromSaved(model, model.ContentDto); - } - - return model; - } - - /// - /// we will now assign all of the values in the 'save' model to the DTO object - /// - /// - /// - private static void MapPropertyValuesFromSaved(TModelSave saveModel, ContentItemDto dto) - { - foreach (var p in saveModel.Properties.Where(p => dto.Properties.Any(x => x.Alias == p.Alias))) - { - dto.Properties.Single(x => x.Alias == p.Alias).Value = p.Value; - } - } - - protected abstract TPersisted GetExisting(TModelSave model); - protected abstract TPersisted CreateNew(TModelSave model); - protected abstract ContentItemDto MapFromPersisted(TModelSave model); - } +using System; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Net.Http.Formatting; +using System.Text; +using System.Threading.Tasks; +using System.Web; +using System.Web.Http; +using System.Web.Http.Controllers; +using System.Web.Http.ModelBinding.Binders; +using System.Web.Http.Validation; +using System.Web.ModelBinding; +using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; +using Umbraco.Core; +using Umbraco.Core.IO; +using Umbraco.Core.Models; +using Umbraco.Web.Editors; +using Umbraco.Web.Models.ContentEditing; +using Umbraco.Web.Security; +using Umbraco.Web.WebApi.Filters; +using IModelBinder = System.Web.Http.ModelBinding.IModelBinder; +using ModelBindingContext = System.Web.Http.ModelBinding.ModelBindingContext; +using ModelMetadata = System.Web.Http.Metadata.ModelMetadata; +using ModelMetadataProvider = System.Web.Http.Metadata.ModelMetadataProvider; +using MutableObjectModelBinder = System.Web.Http.ModelBinding.Binders.MutableObjectModelBinder; +using Task = System.Threading.Tasks.Task; + +namespace Umbraco.Web.WebApi.Binders +{ + /// + /// Binds the content model to the controller action for the posted multi-part Post + /// + internal abstract class ContentItemBaseBinder : IModelBinder + where TPersisted : class, IContentBase + where TModelSave : ContentBaseItemSave + { + protected ApplicationContext ApplicationContext { get; private set; } + + /// + /// Constructor + /// + /// + internal ContentItemBaseBinder(ApplicationContext applicationContext) + { + ApplicationContext = applicationContext; + } + + public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext) + { + //NOTE: Validation is done in the filter + if (actionContext.Request.Content.IsMimeMultipartContent() == false) + { + throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); + } + + var root = IOHelper.MapPath("~/App_Data/TEMP/FileUploads"); + //ensure it exists + Directory.CreateDirectory(root); + var provider = new MultipartFormDataStreamProvider(root); + + var task = Task.Run(() => GetModelAsync(actionContext, bindingContext, provider)) + .ContinueWith(x => + { + if (x.IsFaulted && x.Exception != null) + { + throw x.Exception; + } + + //now that everything is binded, validate the properties + var contentItemValidator = GetValidationHelper(); + contentItemValidator.ValidateItem(actionContext, x.Result); + + bindingContext.Model = x.Result; + }); + + task.Wait(); + + return bindingContext.Model != null; + } + + protected virtual ContentItemValidationHelper GetValidationHelper() + { + return new ContentItemValidationHelper(); + } + + /// + /// Builds the model from the request contents + /// + /// + /// + /// + /// + private async Task GetModelAsync(HttpActionContext actionContext, ModelBindingContext bindingContext, MultipartFormDataStreamProvider provider) + { + var request = actionContext.Request; + + //IMPORTANT!!! We need to ensure the umbraco context here because this is running in an async thread + var httpContext = (HttpContextBase) request.Properties["MS_HttpContext"]; + UmbracoContext.EnsureContext( + httpContext, + ApplicationContext.Current, + new WebSecurity(httpContext, ApplicationContext.Current)); + + var content = request.Content; + + var result = await content.ReadAsMultipartAsync(provider); + + if (result.FormData["contentItem"] == null) + { + var response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest); + response.ReasonPhrase = "The request was not formatted correctly and is missing the 'contentItem' parameter"; + throw new HttpResponseException(response); + } + + //get the string json from the request + var contentItem = result.FormData["contentItem"]; + + //deserialize into our model + var model = JsonConvert.DeserializeObject(contentItem); + + //get the default body validator and validate the object + var bodyValidator = actionContext.ControllerContext.Configuration.Services.GetBodyModelValidator(); + var metadataProvider = actionContext.ControllerContext.Configuration.Services.GetModelMetadataProvider(); + //all validation errors will not contain a prefix + bodyValidator.Validate(model, typeof(TModelSave), metadataProvider, actionContext, ""); + + //get the files + foreach (var file in result.FileData) + { + //The name that has been assigned in JS has 2 parts and the second part indicates the property id + // for which the file belongs. + var parts = file.Headers.ContentDisposition.Name.Trim(new char[] { '\"' }).Split('_'); + if (parts.Length != 2) + { + var response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest); + response.ReasonPhrase = "The request was not formatted correctly the file name's must be underscore delimited"; + throw new HttpResponseException(response); + } + var propAlias = parts[1]; + + var fileName = file.Headers.ContentDisposition.FileName.Trim(new char[] {'\"'}); + + model.UploadedFiles.Add(new ContentItemFile + { + TempFilePath = file.LocalFileName, + PropertyAlias = propAlias, + FileName = fileName + }); + } + + if (ContentControllerBase.IsCreatingAction(model.Action)) + { + //we are creating new content + model.PersistedContent = CreateNew(model); + } + else + { + //finally, let's lookup the real content item and create the DTO item + model.PersistedContent = GetExisting(model); + } + + //create the dto from the persisted model + if (model.PersistedContent != null) + { + model.ContentDto = MapFromPersisted(model); + } + if (model.ContentDto != null) + { + //now map all of the saved values to the dto + MapPropertyValuesFromSaved(model, model.ContentDto); + } + + return model; + } + + /// + /// we will now assign all of the values in the 'save' model to the DTO object + /// + /// + /// + private static void MapPropertyValuesFromSaved(TModelSave saveModel, ContentItemDto dto) + { + foreach (var p in saveModel.Properties.Where(p => dto.Properties.Any(x => x.Alias == p.Alias))) + { + dto.Properties.Single(x => x.Alias == p.Alias).Value = p.Value; + } + } + + protected abstract TPersisted GetExisting(TModelSave model); + protected abstract TPersisted CreateNew(TModelSave model); + protected abstract ContentItemDto MapFromPersisted(TModelSave model); + } } \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/Filters/ContentItemFormatter.cs b/src/Umbraco.Web/WebApi/Binders/ContentItemBinder.cs similarity index 71% rename from src/Umbraco.Web/Editors/Filters/ContentItemFormatter.cs rename to src/Umbraco.Web/WebApi/Binders/ContentItemBinder.cs index a8af195127..5afc7cee19 100644 --- a/src/Umbraco.Web/Editors/Filters/ContentItemFormatter.cs +++ b/src/Umbraco.Web/WebApi/Binders/ContentItemBinder.cs @@ -1,45 +1,46 @@ -using System; -using AutoMapper; -using Umbraco.Core; -using Umbraco.Core.Models; -using Umbraco.Web.Models.ContentEditing; - -namespace Umbraco.Web.Editors.Filters -{ - internal class ContentItemFormatter : ContentItemBaseFormatter - { - public ContentItemFormatter() - : this(Core.ApplicationContext.Current) - { - } - - /// - /// Constructor - /// - /// - public ContentItemFormatter(ApplicationContext applicationContext) - : base(applicationContext) - { - } - - protected override IContent GetExisting(ContentItemSave model) - { - return ApplicationContext.Services.ContentService.GetById(Convert.ToInt32(model.Id)); - } - - protected override IContent CreateNew(ContentItemSave model) - { - var contentType = ApplicationContext.Services.ContentTypeService.GetContentType(model.ContentTypeAlias); - if (contentType == null) - { - throw new InvalidOperationException("No content type found wth alias " + model.ContentTypeAlias); - } - return new Content(model.Name, model.ParentId, contentType); - } - - protected override ContentItemDto MapFromPersisted(ContentItemSave model) - { - return Mapper.Map>(model.PersistedContent); - } - } +using System; +using AutoMapper; +using Umbraco.Core; +using Umbraco.Core.Models; +using Umbraco.Web.Models.ContentEditing; +using Umbraco.Web.Models.Mapping; + +namespace Umbraco.Web.WebApi.Binders +{ + internal class ContentItemBinder : ContentItemBaseBinder + { + + public ContentItemBinder(ApplicationContext applicationContext) + : base(applicationContext) + { + } + + /// + /// Constructor + /// + public ContentItemBinder() + : this(ApplicationContext.Current) + { + } + + protected override IContent GetExisting(ContentItemSave model) + { + return ApplicationContext.Services.ContentService.GetById(Convert.ToInt32(model.Id)); + } + + protected override IContent CreateNew(ContentItemSave model) + { + var contentType = ApplicationContext.Services.ContentTypeService.GetContentType(model.ContentTypeAlias); + if (contentType == null) + { + throw new InvalidOperationException("No content type found wth alias " + model.ContentTypeAlias); + } + return new Content(model.Name, model.ParentId, contentType); + } + + protected override ContentItemDto MapFromPersisted(ContentItemSave model) + { + return Mapper.Map>(model.PersistedContent); + } + } } \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/Filters/MediaItemFormatter.cs b/src/Umbraco.Web/WebApi/Binders/MediaItemBinder.cs similarity index 74% rename from src/Umbraco.Web/Editors/Filters/MediaItemFormatter.cs rename to src/Umbraco.Web/WebApi/Binders/MediaItemBinder.cs index 9245095632..726994d43e 100644 --- a/src/Umbraco.Web/Editors/Filters/MediaItemFormatter.cs +++ b/src/Umbraco.Web/WebApi/Binders/MediaItemBinder.cs @@ -1,45 +1,45 @@ -using System; -using AutoMapper; -using Umbraco.Core; -using Umbraco.Core.Models; -using Umbraco.Web.Models.ContentEditing; - -namespace Umbraco.Web.Editors.Filters -{ - internal class MediaItemFormatter : ContentItemBaseFormatter - { - public MediaItemFormatter() - : this(Core.ApplicationContext.Current) - { - } - - /// - /// Constructor - /// - /// - public MediaItemFormatter(ApplicationContext applicationContext) - : base(applicationContext) - { - } - - protected override IMedia GetExisting(MediaItemSave model) - { - return ApplicationContext.Services.MediaService.GetById(Convert.ToInt32(model.Id)); - } - - protected override IMedia CreateNew(MediaItemSave model) - { - var contentType = ApplicationContext.Services.ContentTypeService.GetMediaType(model.ContentTypeAlias); - if (contentType == null) - { - throw new InvalidOperationException("No content type found wth alias " + model.ContentTypeAlias); - } - return new Core.Models.Media(model.Name, model.ParentId, contentType); - } - - protected override ContentItemDto MapFromPersisted(MediaItemSave model) - { - return Mapper.Map>(model.PersistedContent); - } - } +using System; +using AutoMapper; +using Umbraco.Core; +using Umbraco.Core.Models; +using Umbraco.Web.Models.ContentEditing; +using Umbraco.Web.Models.Mapping; + +namespace Umbraco.Web.WebApi.Binders +{ + internal class MediaItemBinder : ContentItemBaseBinder + { + public MediaItemBinder(ApplicationContext applicationContext) + : base(applicationContext) + { + } + + /// + /// Constructor + /// + public MediaItemBinder() + : this(ApplicationContext.Current) + { + } + + protected override IMedia GetExisting(MediaItemSave model) + { + return ApplicationContext.Services.MediaService.GetById(Convert.ToInt32(model.Id)); + } + + protected override IMedia CreateNew(MediaItemSave model) + { + var contentType = ApplicationContext.Services.ContentTypeService.GetMediaType(model.ContentTypeAlias); + if (contentType == null) + { + throw new InvalidOperationException("No content type found wth alias " + model.ContentTypeAlias); + } + return new Core.Models.Media(model.Name, model.ParentId, contentType); + } + + protected override ContentItemDto MapFromPersisted(MediaItemSave model) + { + return Mapper.Map>(model.PersistedContent); + } + } } \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/Filters/MemberFormatter.cs b/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs similarity index 82% rename from src/Umbraco.Web/Editors/Filters/MemberFormatter.cs rename to src/Umbraco.Web/WebApi/Binders/MemberBinder.cs index 1ef877381d..3893167a73 100644 --- a/src/Umbraco.Web/Editors/Filters/MemberFormatter.cs +++ b/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs @@ -1,185 +1,211 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web.Security; -using AutoMapper; -using Umbraco.Core; -using Umbraco.Core.Models; -using Umbraco.Core.Models.Membership; -using Umbraco.Core.Security; -using Umbraco.Core.Services; -using Umbraco.Web.Models.ContentEditing; - -namespace Umbraco.Web.Editors.Filters -{ - internal class MemberFormatter : ContentItemBaseFormatter - { - public MemberFormatter() - : this(Core.ApplicationContext.Current) - { - } - - /// - /// Constructor - /// - /// - public MemberFormatter(ApplicationContext applicationContext) - : base(applicationContext) - { - } - - /// - /// Returns an IMember instance used to bind values to and save (depending on the membership scenario) - /// - /// - /// - protected override IMember GetExisting(MemberSave model) - { - var scenario = ApplicationContext.Services.MemberService.GetMembershipScenario(); - var provider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider(); - switch (scenario) - { - case MembershipScenario.NativeUmbraco: - return GetExisting(model.Key); - case MembershipScenario.CustomProviderWithUmbracoLink: - case MembershipScenario.StandaloneCustomProvider: - default: - var membershipUser = provider.GetUser(model.Key, false); - if (membershipUser == null) - { - throw new InvalidOperationException("Could not find member with key " + model.Key); - } - - //TODO: Support this scenario! - //if (scenario == MembershipScenario.CustomProviderWithUmbracoLink) - //{ - // //if there's a 'Member' type then we should be able to just go get it from the db since it was created with a link - // // to our data. - // var memberType = ApplicationContext.Services.MemberTypeService.GetMemberType(Constants.Conventions.MemberTypes.Member); - // if (memberType != null) - // { - // var existing = GetExisting(model.Key); - // FilterContentTypeProperties(existing.ContentType, existing.ContentType.PropertyTypes.Select(x => x.Alias).ToArray()); - // } - //} - - //generate a member for a generic membership provider - //NOTE: We don't care about the password here, so just generate something - //var member = MemberService.CreateGenericMembershipProviderMember(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N")); - - //var convertResult = membershipUser.ProviderUserKey.TryConvertTo(); - //if (convertResult.Success == false) - //{ - // throw new InvalidOperationException("Only membership providers that store a GUID as their ProviderUserKey are supported" + model.Key); - //} - //member.Key = convertResult.Result; - - var member = Mapper.Map(membershipUser); - - return member; - } - } - - private IMember GetExisting(Guid key) - { - var member = ApplicationContext.Services.MemberService.GetByKey(key); - if (member == null) - { - throw new InvalidOperationException("Could not find member with key " + key); - } - - var standardProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); - - //remove all membership properties, these values are set with the membership provider. - var exclude = standardProps.Select(x => x.Value.Alias).ToArray(); - - foreach (var remove in exclude) - { - member.Properties.Remove(remove); - } - return member; - } - - /// - /// Gets an instance of IMember used when creating a member - /// - /// - /// - /// - /// Depending on whether a custom membership provider is configured this will return different results. - /// - protected override IMember CreateNew(MemberSave model) - { - var provider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider(); - - if (provider.IsUmbracoMembershipProvider()) - { - var contentType = ApplicationContext.Services.MemberTypeService.Get(model.ContentTypeAlias); - if (contentType == null) - { - throw new InvalidOperationException("No member type found wth alias " + model.ContentTypeAlias); - } - - //remove all membership properties, these values are set with the membership provider. - FilterMembershipProviderProperties(contentType); - - //return the new member with the details filled in - return new Member(model.Name, model.Email, model.Username, model.Password.NewPassword, contentType); - } - else - { - //A custom membership provider is configured - - //NOTE: Below we are assigning the password to just a new GUID because we are not actually storing the password, however that - // field is mandatory in the database so we need to put something there. - - //If the default Member type exists, we'll use that to create the IMember - that way we can associate the custom membership - // provider to our data - eventually we can support editing custom properties with a custom provider. - var memberType = ApplicationContext.Services.MemberTypeService.Get(Constants.Conventions.MemberTypes.DefaultAlias); - if (memberType != null) - { - FilterContentTypeProperties(memberType, memberType.PropertyTypes.Select(x => x.Alias).ToArray()); - return new Member(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N"), memberType); - } - - //generate a member for a generic membership provider - var member = MemberService.CreateGenericMembershipProviderMember(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N")); - //we'll just remove all properties here otherwise we'll end up with validation errors, we don't want to persist any property data anyways - // in this case. - FilterContentTypeProperties(member.ContentType, member.ContentType.PropertyTypes.Select(x => x.Alias).ToArray()); - return member; - } - } - - /// - /// This will remove all of the special membership provider properties which were required to display the property editors - /// for editing - but the values have been mapped back ot the MemberSave object directly - we don't want to keep these properties - /// on the IMember because they will attempt to be persisted which we don't want since they might not even exist. - /// - /// - private void FilterMembershipProviderProperties(IContentTypeBase contentType) - { - var defaultProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); - //remove all membership properties, these values are set with the membership provider. - var exclude = defaultProps.Select(x => x.Value.Alias).ToArray(); - FilterContentTypeProperties(contentType, exclude); - } - - private void FilterContentTypeProperties(IContentTypeBase contentType, IEnumerable exclude) - { - //remove all properties based on the exclusion list - foreach (var remove in exclude) - { - if (contentType.PropertyTypeExists(remove)) - { - contentType.RemovePropertyType(remove); - } - } - } - - protected override ContentItemDto MapFromPersisted(MemberSave model) - { - return Mapper.Map>(model.PersistedContent); - } - } +using System; +using System.Collections.Generic; +using System.Web.Http.Controllers; +using System.Web.Http.ModelBinding; +using System.Web.Security; +using AutoMapper; +using Umbraco.Core; +using Umbraco.Core.Models; +using Umbraco.Core.Security; +using Umbraco.Core.Services; +using Umbraco.Web.Models.ContentEditing; +using Umbraco.Web.WebApi.Filters; +using System.Linq; +using Umbraco.Core.Models.Membership; + +namespace Umbraco.Web.WebApi.Binders +{ + internal class MemberBinder : ContentItemBaseBinder + { + public MemberBinder(ApplicationContext applicationContext) + : base(applicationContext) + { + } + + /// + /// Constructor + /// + public MemberBinder() + : this(ApplicationContext.Current) + { + } + + protected override ContentItemValidationHelper GetValidationHelper() + { + return new MemberValidationHelper(); + } + + /// + /// Returns an IMember instance used to bind values to and save (depending on the membership scenario) + /// + /// + /// + protected override IMember GetExisting(MemberSave model) + { + var scenario = ApplicationContext.Services.MemberService.GetMembershipScenario(); + var provider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider(); + switch (scenario) + { + case MembershipScenario.NativeUmbraco: + return GetExisting(model.Key); + case MembershipScenario.CustomProviderWithUmbracoLink: + case MembershipScenario.StandaloneCustomProvider: + default: + var membershipUser = provider.GetUser(model.Key, false); + if (membershipUser == null) + { + throw new InvalidOperationException("Could not find member with key " + model.Key); + } + + //TODO: Support this scenario! + //if (scenario == MembershipScenario.CustomProviderWithUmbracoLink) + //{ + // //if there's a 'Member' type then we should be able to just go get it from the db since it was created with a link + // // to our data. + // var memberType = ApplicationContext.Services.MemberTypeService.GetMemberType(Constants.Conventions.MemberTypes.Member); + // if (memberType != null) + // { + // var existing = GetExisting(model.Key); + // FilterContentTypeProperties(existing.ContentType, existing.ContentType.PropertyTypes.Select(x => x.Alias).ToArray()); + // } + //} + + //generate a member for a generic membership provider + //NOTE: We don't care about the password here, so just generate something + //var member = MemberService.CreateGenericMembershipProviderMember(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N")); + + //var convertResult = membershipUser.ProviderUserKey.TryConvertTo(); + //if (convertResult.Success == false) + //{ + // throw new InvalidOperationException("Only membership providers that store a GUID as their ProviderUserKey are supported" + model.Key); + //} + //member.Key = convertResult.Result; + + var member = Mapper.Map(membershipUser); + + return member; + } + } + + private IMember GetExisting(Guid key) + { + var member = ApplicationContext.Services.MemberService.GetByKey(key); + if (member == null) + { + throw new InvalidOperationException("Could not find member with key " + key); + } + + var standardProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); + + //remove all membership properties, these values are set with the membership provider. + var exclude = standardProps.Select(x => x.Value.Alias).ToArray(); + + foreach (var remove in exclude) + { + member.Properties.Remove(remove); + } + return member; + } + + /// + /// Gets an instance of IMember used when creating a member + /// + /// + /// + /// + /// Depending on whether a custom membership provider is configured this will return different results. + /// + protected override IMember CreateNew(MemberSave model) + { + var provider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider(); + + if (provider.IsUmbracoMembershipProvider()) + { + var contentType = ApplicationContext.Services.MemberTypeService.Get(model.ContentTypeAlias); + if (contentType == null) + { + throw new InvalidOperationException("No member type found wth alias " + model.ContentTypeAlias); + } + + //remove all membership properties, these values are set with the membership provider. + FilterMembershipProviderProperties(contentType); + + //return the new member with the details filled in + return new Member(model.Name, model.Email, model.Username, model.Password.NewPassword, contentType); + } + else + { + //A custom membership provider is configured + + //NOTE: Below we are assigning the password to just a new GUID because we are not actually storing the password, however that + // field is mandatory in the database so we need to put something there. + + //If the default Member type exists, we'll use that to create the IMember - that way we can associate the custom membership + // provider to our data - eventually we can support editing custom properties with a custom provider. + var memberType = ApplicationContext.Services.MemberTypeService.Get(Constants.Conventions.MemberTypes.DefaultAlias); + if (memberType != null) + { + FilterContentTypeProperties(memberType, memberType.PropertyTypes.Select(x => x.Alias).ToArray()); + return new Member(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N"), memberType); + } + + //generate a member for a generic membership provider + var member = MemberService.CreateGenericMembershipProviderMember(model.Name, model.Email, model.Username, Guid.NewGuid().ToString("N")); + //we'll just remove all properties here otherwise we'll end up with validation errors, we don't want to persist any property data anyways + // in this case. + FilterContentTypeProperties(member.ContentType, member.ContentType.PropertyTypes.Select(x => x.Alias).ToArray()); + return member; + } + } + + /// + /// This will remove all of the special membership provider properties which were required to display the property editors + /// for editing - but the values have been mapped back ot the MemberSave object directly - we don't want to keep these properties + /// on the IMember because they will attempt to be persisted which we don't want since they might not even exist. + /// + /// + private void FilterMembershipProviderProperties(IContentTypeBase contentType) + { + var defaultProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); + //remove all membership properties, these values are set with the membership provider. + var exclude = defaultProps.Select(x => x.Value.Alias).ToArray(); + FilterContentTypeProperties(contentType, exclude); + } + + private void FilterContentTypeProperties(IContentTypeBase contentType, IEnumerable exclude) + { + //remove all properties based on the exclusion list + foreach (var remove in exclude) + { + if (contentType.PropertyTypeExists(remove)) + { + contentType.RemovePropertyType(remove); + } + } + } + + protected override ContentItemDto MapFromPersisted(MemberSave model) + { + return Mapper.Map>(model.PersistedContent); + } + + /// + /// Custom validation helper so that we can exclude the Member.StandardPropertyTypeStubs from being validating for existence + /// + internal class MemberValidationHelper : ContentItemValidationHelper + { + protected override bool ValidateProperties(ContentItemBasic postedItem, HttpActionContext actionContext) + { + var propertiesToValidate = postedItem.Properties.ToList(); + var defaultProps = Constants.Conventions.Member.GetStandardPropertyTypeStubs(); + var exclude = defaultProps.Select(x => x.Value.Alias).ToArray(); + foreach (var remove in exclude) + { + propertiesToValidate.RemoveAll(property => property.Alias == remove); + } + + return ValidateProperties(propertiesToValidate.ToArray(), postedItem.PersistedContent.Properties.ToArray(), actionContext); + } + } + } } \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/Filters/ContentValidationHelper.cs b/src/Umbraco.Web/WebApi/Filters/ContentItemValidationHelper.cs similarity index 87% rename from src/Umbraco.Web/Editors/Filters/ContentValidationHelper.cs rename to src/Umbraco.Web/WebApi/Filters/ContentItemValidationHelper.cs index 81c5786307..239b9bd576 100644 --- a/src/Umbraco.Web/Editors/Filters/ContentValidationHelper.cs +++ b/src/Umbraco.Web/WebApi/Filters/ContentItemValidationHelper.cs @@ -1,153 +1,167 @@ -using System; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Web.Http.Controllers; -using Umbraco.Core; -using Umbraco.Core.Logging; -using Umbraco.Core.Models; -using Umbraco.Web.Models.ContentEditing; - -namespace Umbraco.Web.Editors.Filters -{ - /// - /// A validation helper class used with ContentItemValidationFilterAttribute to be shared between content, media, etc... - /// - /// - /// - /// - /// If any severe errors occur then the response gets set to an error and execution will not continue. Property validation - /// errors will just be added to the ModelState. - /// - internal class ContentValidationHelper - where TPersisted : class, IContentBase - where TModelSave : ContentBaseItemSave - { - - public void ValidateItem(HttpActionContext actionContext, TModelSave contentItem) - { - //now do each validation step - if (ValidateExistingContent(contentItem, actionContext) == false) return; - if (ValidateProperties(contentItem, actionContext) == false) return; - if (ValidatePropertyData(contentItem, actionContext) == false) return; - } - - /// - /// Ensure the content exists - /// - /// - /// - /// - protected virtual bool ValidateExistingContent(ContentItemBasic postedItem, HttpActionContext actionContext) - { - if (postedItem.PersistedContent == null) - { - var message = string.Format("content with id: {0} was not found", postedItem.Id); - actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, message); - return false; - } - - return true; - } - - /// - /// Ensure all of the ids in the post are valid - /// - /// - /// - /// - protected virtual bool ValidateProperties(ContentItemBasic postedItem, HttpActionContext actionContext) - { - return ValidateProperties(postedItem.Properties.ToArray(), postedItem.PersistedContent.Properties.ToArray(), actionContext); - } - - /// - /// This validates that all of the posted properties exist on the persisted entity - /// - /// - /// - /// - /// - protected bool ValidateProperties(ContentPropertyBasic[] postedProperties , Property[] persistedProperties, HttpActionContext actionContext) - { - foreach (var p in postedProperties) - { - if (persistedProperties.Any(property => property.Alias == p.Alias) == false) - { - //TODO: Do we return errors here ? If someone deletes a property whilst their editing then should we just - //save the property data that remains? Or inform them they need to reload... not sure. This problem exists currently too i think. - - var message = string.Format("property with alias: {0} was not found", p.Alias); - actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, new InvalidOperationException(message)); - return false; - } - - } - return true; - } - - /// - /// Validates the data for each property - /// - /// - /// - /// - /// - /// All property data validation goes into the modelstate with a prefix of "Properties" - /// - protected virtual bool ValidatePropertyData(ContentItemBasic postedItem, HttpActionContext actionContext) - { - foreach (var p in postedItem.ContentDto.Properties) - { - var editor = p.PropertyEditor; - if (editor == null) - { - var message = string.Format("The property editor with alias: {0} was not found for property with id {1}", p.DataType.PropertyEditorAlias, p.Id); - LogHelper.Warn>(message); - //actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, message); - //return false; - continue; - } - - //get the posted value for this property - var postedValue = postedItem.Properties.Single(x => x.Alias == p.Alias).Value; - - //get the pre-values for this property - var preValues = p.PreValues; - - //TODO: when we figure out how to 'override' certain pre-value properties we'll either need to: - // * Combine the preValues with the overridden values stored with the document type property (but how to combine?) - // * Or, pass in the overridden values stored with the doc type property separately - - foreach (var result in editor.ValueEditor.Validators.SelectMany(v => v.Validate(postedValue, preValues, editor))) - { - actionContext.ModelState.AddPropertyError(result, p.Alias); - } - - //Now we need to validate the property based on the PropertyType validation (i.e. regex and required) - // NOTE: These will become legacy once we have pre-value overrides. - if (p.IsRequired) - { - foreach (var result in p.PropertyEditor.ValueEditor.RequiredValidator.Validate(postedValue, "", preValues, editor)) - { - actionContext.ModelState.AddPropertyError(result, p.Alias); - } - } - - if (p.ValidationRegExp.IsNullOrWhiteSpace() == false) - { - foreach (var result in p.PropertyEditor.ValueEditor.RegexValidator.Validate(postedValue, p.ValidationRegExp, preValues, editor)) - { - actionContext.ModelState.AddPropertyError(result, p.Alias); - } - } - } - - return actionContext.ModelState.IsValid; - } - - - - - } +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http.Controllers; +using System.Web.Http.ModelBinding; +using Umbraco.Core; +using Umbraco.Core.Logging; +using Umbraco.Core.Models; +using Umbraco.Web.Models.ContentEditing; + +namespace Umbraco.Web.WebApi.Filters +{ + /// + /// A validation helper class used with ContentItemValidationFilterAttribute to be shared between content, media, etc... + /// + /// + /// + /// + /// If any severe errors occur then the response gets set to an error and execution will not continue. Property validation + /// errors will just be added to the ModelState. + /// + internal class ContentItemValidationHelper + where TPersisted : class, IContentBase + where TModelSave : ContentBaseItemSave + { + + public void ValidateItem(HttpActionContext actionContext, string argumentName) + { + var contentItem = actionContext.ActionArguments[argumentName] as TModelSave; + if (contentItem == null) + { + actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "No " + typeof(TModelSave) + " found in request"); + return; + } + + ValidateItem(actionContext, contentItem); + + } + + public void ValidateItem(HttpActionContext actionContext, TModelSave contentItem) + { + //now do each validation step + if (ValidateExistingContent(contentItem, actionContext) == false) return; + if (ValidateProperties(contentItem, actionContext) == false) return; + if (ValidatePropertyData(contentItem, actionContext) == false) return; + } + + /// + /// Ensure the content exists + /// + /// + /// + /// + protected virtual bool ValidateExistingContent(ContentItemBasic postedItem, HttpActionContext actionContext) + { + if (postedItem.PersistedContent == null) + { + var message = string.Format("content with id: {0} was not found", postedItem.Id); + actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, message); + return false; + } + + return true; + } + + /// + /// Ensure all of the ids in the post are valid + /// + /// + /// + /// + protected virtual bool ValidateProperties(ContentItemBasic postedItem, HttpActionContext actionContext) + { + return ValidateProperties(postedItem.Properties.ToArray(), postedItem.PersistedContent.Properties.ToArray(), actionContext); + } + + /// + /// This validates that all of the posted properties exist on the persisted entity + /// + /// + /// + /// + /// + protected bool ValidateProperties(ContentPropertyBasic[] postedProperties , Property[] persistedProperties, HttpActionContext actionContext) + { + foreach (var p in postedProperties) + { + if (persistedProperties.Any(property => property.Alias == p.Alias) == false) + { + //TODO: Do we return errors here ? If someone deletes a property whilst their editing then should we just + //save the property data that remains? Or inform them they need to reload... not sure. This problem exists currently too i think. + + var message = string.Format("property with alias: {0} was not found", p.Alias); + actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, new InvalidOperationException(message)); + return false; + } + + } + return true; + } + + /// + /// Validates the data for each property + /// + /// + /// + /// + /// + /// All property data validation goes into the modelstate with a prefix of "Properties" + /// + protected virtual bool ValidatePropertyData(ContentItemBasic postedItem, HttpActionContext actionContext) + { + foreach (var p in postedItem.ContentDto.Properties) + { + var editor = p.PropertyEditor; + if (editor == null) + { + var message = string.Format("The property editor with alias: {0} was not found for property with id {1}", p.DataType.PropertyEditorAlias, p.Id); + LogHelper.Warn>(message); + //actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.NotFound, message); + //return false; + continue; + } + + //get the posted value for this property + var postedValue = postedItem.Properties.Single(x => x.Alias == p.Alias).Value; + + //get the pre-values for this property + var preValues = p.PreValues; + + //TODO: when we figure out how to 'override' certain pre-value properties we'll either need to: + // * Combine the preValues with the overridden values stored with the document type property (but how to combine?) + // * Or, pass in the overridden values stored with the doc type property separately + + foreach (var result in editor.ValueEditor.Validators.SelectMany(v => v.Validate(postedValue, preValues, editor))) + { + actionContext.ModelState.AddPropertyError(result, p.Alias); + } + + //Now we need to validate the property based on the PropertyType validation (i.e. regex and required) + // NOTE: These will become legacy once we have pre-value overrides. + if (p.IsRequired) + { + foreach (var result in p.PropertyEditor.ValueEditor.RequiredValidator.Validate(postedValue, "", preValues, editor)) + { + actionContext.ModelState.AddPropertyError(result, p.Alias); + } + } + + if (p.ValidationRegExp.IsNullOrWhiteSpace() == false) + { + foreach (var result in p.PropertyEditor.ValueEditor.RegexValidator.Validate(postedValue, p.ValidationRegExp, preValues, editor)) + { + actionContext.ModelState.AddPropertyError(result, p.Alias); + } + } + } + + return actionContext.ModelState.IsValid; + } + + + } } \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingContentAttribute.cs b/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingContentAttribute.cs similarity index 95% rename from src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingContentAttribute.cs rename to src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingContentAttribute.cs index 1b32f65a5d..3feb3b682a 100644 --- a/src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingContentAttribute.cs +++ b/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingContentAttribute.cs @@ -1,101 +1,102 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using umbraco.BusinessLogic.Actions; -using Umbraco.Core; -using Umbraco.Core.Models.Membership; -using Umbraco.Core.Services; - -namespace Umbraco.Web.Editors.Filters -{ - /// - /// This inspects the result of the action that returns a collection of content and removes - /// any item that the current user doesn't have access to - /// - internal sealed class FilterAllowedOutgoingContentAttribute : FilterAllowedOutgoingMediaAttribute - { - private readonly char _permissionToCheck; - - public FilterAllowedOutgoingContentAttribute(Type outgoingType) - : base(outgoingType) - { - _permissionToCheck = ActionBrowse.Instance.Letter; - } - - public FilterAllowedOutgoingContentAttribute(Type outgoingType, char permissionToCheck) - : base(outgoingType) - { - _permissionToCheck = permissionToCheck; - } - - public FilterAllowedOutgoingContentAttribute(Type outgoingType, string propertyName) - : base(outgoingType, propertyName) - { - _permissionToCheck = ActionBrowse.Instance.Letter; - } - - protected override void FilterItems(IUser user, IList items) - { - base.FilterItems(user, items); - - FilterBasedOnPermissions(items, user, ApplicationContext.Current.Services.UserService); - } - - protected override int GetUserStartNode(IUser user) - { - return user.StartContentId; - } - - protected override int RecycleBinId - { - get { return Constants.System.RecycleBinContent; } - } - - internal void FilterBasedOnPermissions(IList items, IUser user, IUserService userService) - { - var length = items.Count; - - if (length > 0) - { - var ids = new List(); - for (var i = 0; i < length; i++) - { - ids.Add(((dynamic)items[i]).Id); - } - //get all the permissions for these nodes in one call - var permissions = userService.GetPermissions(user, ids.ToArray()).ToArray(); - var toRemove = new List(); - foreach (dynamic item in items) - { - var nodePermission = permissions.Where(x => x.EntityId == Convert.ToInt32(item.Id)).ToArray(); - //if there are no permissions for this id then we need to check what the user's default - // permissions are. - if (nodePermission.Any() == false) - { - //var defaultP = user.DefaultPermissions - - toRemove.Add(item); - } - else - { - foreach (var n in nodePermission) - { - //if the permission being checked doesn't exist then remove the item - if (n.AssignedPermissions.Contains(_permissionToCheck.ToString(CultureInfo.InvariantCulture)) == false) - { - toRemove.Add(item); - } - } - } - } - foreach (var item in toRemove) - { - items.Remove(item); - } - } - } - - } +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Reflection; +using Umbraco.Core.Models.Membership; +using Umbraco.Core.Services; +using umbraco.BusinessLogic.Actions; +using Umbraco.Core; + +namespace Umbraco.Web.WebApi.Filters +{ + /// + /// This inspects the result of the action that returns a collection of content and removes + /// any item that the current user doesn't have access to + /// + internal sealed class FilterAllowedOutgoingContentAttribute : FilterAllowedOutgoingMediaAttribute + { + private readonly char _permissionToCheck; + + public FilterAllowedOutgoingContentAttribute(Type outgoingType) + : base(outgoingType) + { + _permissionToCheck = ActionBrowse.Instance.Letter; + } + + public FilterAllowedOutgoingContentAttribute(Type outgoingType, char permissionToCheck) + : base(outgoingType) + { + _permissionToCheck = permissionToCheck; + } + + public FilterAllowedOutgoingContentAttribute(Type outgoingType, string propertyName) + : base(outgoingType, propertyName) + { + _permissionToCheck = ActionBrowse.Instance.Letter; + } + + protected override void FilterItems(IUser user, IList items) + { + base.FilterItems(user, items); + + FilterBasedOnPermissions(items, user, ApplicationContext.Current.Services.UserService); + } + + protected override int GetUserStartNode(IUser user) + { + return user.StartContentId; + } + + protected override int RecycleBinId + { + get { return Constants.System.RecycleBinContent; } + } + + internal void FilterBasedOnPermissions(IList items, IUser user, IUserService userService) + { + var length = items.Count; + + if (length > 0) + { + var ids = new List(); + for (var i = 0; i < length; i++) + { + ids.Add(((dynamic)items[i]).Id); + } + //get all the permissions for these nodes in one call + var permissions = userService.GetPermissions(user, ids.ToArray()).ToArray(); + var toRemove = new List(); + foreach (dynamic item in items) + { + var nodePermission = permissions.Where(x => x.EntityId == Convert.ToInt32(item.Id)).ToArray(); + //if there are no permissions for this id then we need to check what the user's default + // permissions are. + if (nodePermission.Any() == false) + { + //var defaultP = user.DefaultPermissions + + toRemove.Add(item); + } + else + { + foreach (var n in nodePermission) + { + //if the permission being checked doesn't exist then remove the item + if (n.AssignedPermissions.Contains(_permissionToCheck.ToString(CultureInfo.InvariantCulture)) == false) + { + toRemove.Add(item); + } + } + } + } + foreach (var item in toRemove) + { + items.Remove(item); + } + } + } + + } } \ No newline at end of file diff --git a/src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingMediaAttribute.cs b/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs similarity index 98% rename from src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingMediaAttribute.cs rename to src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs index 5bd692b36a..36170627d9 100644 --- a/src/Umbraco.Web/Editors/Filters/FilterAllowedOutgoingMediaAttribute.cs +++ b/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs @@ -7,8 +7,9 @@ using System.Web.Http.Filters; using Umbraco.Core; using Umbraco.Core.Models; using Umbraco.Core.Models.Membership; +using Umbraco.Web.Models.ContentEditing; -namespace Umbraco.Web.Editors.Filters +namespace Umbraco.Web.WebApi.Filters { /// /// This inspects the result of the action that returns a collection of content and removes From 95f68b8bde598ceb56a4dc39264953a00834083e Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 6 Jan 2015 11:45:08 +1100 Subject: [PATCH 284/310] Another attempt at fixing: U4-4049 Some images fail when uploading multiple media files --- src/Umbraco.Web/Editors/MediaController.cs | 34 +++++++++----- .../FileUploadCleanupFilterAttribute.cs | 46 ++++++++++++++++--- 2 files changed, 62 insertions(+), 18 deletions(-) diff --git a/src/Umbraco.Web/Editors/MediaController.cs b/src/Umbraco.Web/Editors/MediaController.cs index 3f0894c428..d807d84a26 100644 --- a/src/Umbraco.Web/Editors/MediaController.cs +++ b/src/Umbraco.Web/Editors/MediaController.cs @@ -331,7 +331,7 @@ namespace Umbraco.Web.Editors } } - [EnsureUserPermissionForMedia("folder.ParentId")] + [EnsureUserPermissionForMedia("folder.ParentId")] public MediaItemDisplay PostAddFolder(EntityBasic folder) { var mediaService = ApplicationContext.Services.MediaService; @@ -347,8 +347,8 @@ namespace Umbraco.Web.Editors /// /// /// We cannot validate this request with attributes (nicely) due to the nature of the multi-part for data. - /// /// + [FileUploadCleanupFilter(false)] public async Task PostAddFile() { if (Request.Content.IsMimeMultipartContent() == false) @@ -387,7 +387,7 @@ namespace Umbraco.Web.Editors return Request.CreateResponse(HttpStatusCode.Unauthorized); } - var tempFiles = new List(); + var tempFiles = new PostedFiles(); //get the files foreach (var file in result.FileData) @@ -416,19 +416,29 @@ namespace Umbraco.Web.Editors LogHelper.Warn("Cannot upload file " + file + ", it is not an approved file type"); } - tempFiles.Add(file.LocalFileName); + tempFiles.UploadedFiles.Add(new ContentItemFile + { + FileName = fileName, + PropertyAlias = Constants.Conventions.Media.File, + TempFilePath = file.LocalFileName + }); } - //now we can remove the temp files - foreach (var tempFile in tempFiles) - { - System.IO.File.Delete(tempFile); - } - - - return Request.CreateResponse(HttpStatusCode.OK); + return Request.CreateResponse(HttpStatusCode.OK, tempFiles); } + /// + /// This is used for the response of PostAddFile so that we can analyze the response in a filter and remove the + /// temporary files that were created. + /// + private class PostedFiles : IHaveUploadedFiles + { + public PostedFiles() + { + UploadedFiles = new List(); + } + public List UploadedFiles { get; private set; } + } /// /// Ensures the item can be moved/copied to the new location diff --git a/src/Umbraco.Web/WebApi/Filters/FileUploadCleanupFilterAttribute.cs b/src/Umbraco.Web/WebApi/Filters/FileUploadCleanupFilterAttribute.cs index 28f5a831f5..9a7b22ee73 100644 --- a/src/Umbraco.Web/WebApi/Filters/FileUploadCleanupFilterAttribute.cs +++ b/src/Umbraco.Web/WebApi/Filters/FileUploadCleanupFilterAttribute.cs @@ -1,4 +1,5 @@ using System.Linq; +using System.Net.Http; using System.Web.Http.Filters; using Umbraco.Core.Models; using Umbraco.Web.Models.ContentEditing; @@ -11,6 +12,17 @@ namespace Umbraco.Web.WebApi.Filters /// internal sealed class FileUploadCleanupFilterAttribute : ActionFilterAttribute { + private readonly bool _incomingModel; + + /// + /// Constructor specifies if the filter should analyze the incoming or outgoing model + /// + /// + public FileUploadCleanupFilterAttribute(bool incomingModel = true) + { + _incomingModel = incomingModel; + } + /// /// Returns true so that other filters can execute along with this one /// @@ -23,18 +35,40 @@ namespace Umbraco.Web.WebApi.Filters { base.OnActionExecuted(actionExecutedContext); - if (actionExecutedContext.ActionContext.ActionArguments.Any()) + if (_incomingModel) { - var contentItem = actionExecutedContext.ActionContext.ActionArguments.First().Value as IHaveUploadedFiles; - if (contentItem != null) + if (actionExecutedContext.ActionContext.ActionArguments.Any()) { - //cleanup any files associated - foreach (var f in contentItem.UploadedFiles) + var contentItem = actionExecutedContext.ActionContext.ActionArguments.First().Value as IHaveUploadedFiles; + if (contentItem != null) { - File.Delete(f.TempFilePath); + //cleanup any files associated + foreach (var f in contentItem.UploadedFiles) + { + File.Delete(f.TempFilePath); + } } } } + else + { + var objectContent = actionExecutedContext.Response.Content as ObjectContent; + if (objectContent != null) + { + var uploadedFiles = objectContent.Value as IHaveUploadedFiles; + if (uploadedFiles != null) + { + //cleanup any files associated + foreach (var f in uploadedFiles.UploadedFiles) + { + File.Delete(f.TempFilePath); + //clear out the temp path so it's not returned in the response + f.TempFilePath = ""; + } + } + } + } + } } } \ No newline at end of file From 97a05008b3183a99c65a7e9366364112990c0fee Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 6 Jan 2015 12:03:19 +1100 Subject: [PATCH 285/310] Makes the umbProperty directive check optional since these validators can exist outside of an umbProperty directive (i.e. like in a dialog for a parameter editor) --- .../validation/valpropertyvalidator.directive.js | 16 ++++++++++------ .../directives/validation/valserver.directive.js | 8 ++++++-- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertyvalidator.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertyvalidator.directive.js index 1d04fd9b34..77652d7f69 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertyvalidator.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertyvalidator.directive.js @@ -20,15 +20,15 @@ function valPropertyValidator(serverValidationManager) { }, // The element must have ng-model attribute and be inside an umbProperty directive - require: ['ngModel', '^umbProperty'], + require: ['ngModel', '?^umbProperty'], restrict: "A", link: function (scope, element, attrs, ctrls) { var modelCtrl = ctrls[0]; - var propCtrl = ctrls[1]; - + var propCtrl = ctrls.length > 1 ? ctrls[1] : null; + // Check whether the scope has a valPropertyValidator method if (!scope.valPropertyValidator || !angular.isFunction(scope.valPropertyValidator)) { throw new Error('val-property-validator directive must specify a function to call'); @@ -46,12 +46,16 @@ function valPropertyValidator(serverValidationManager) { if (result.isValid === true) { // Tell the controller that the value is valid modelCtrl.$setValidity(result.errorKey, true); - propCtrl.setPropertyError(null); + if (propCtrl) { + propCtrl.setPropertyError(null); + } } else { // Tell the controller that the value is invalid - modelCtrl.$setValidity(result.errorKey, false); - propCtrl.setPropertyError(result.errorMsg); + modelCtrl.$setValidity(result.errorKey, false); + if (propCtrl) { + propCtrl.setPropertyError(result.errorMsg); + } } }; diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js index 9d944aabcc..c1bcc4fd38 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js @@ -7,12 +7,16 @@ **/ function valServer(serverValidationManager) { return { - require: ['ngModel', '^umbProperty'], + require: ['ngModel', '?^umbProperty'], restrict: "A", link: function (scope, element, attr, ctrls) { var modelCtrl = ctrls[0]; - var umbPropCtrl = ctrls[1]; + var umbPropCtrl = ctrls.length > 1 ? ctrls[1] : null; + if (!umbPropCtrl) { + //we cannot proceed, this validator will be disabled + return; + } var watcher = null; From ea12da99ea17536c7bc7ae846c8b58c9a6ca2c9a Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 6 Jan 2015 12:22:11 +1100 Subject: [PATCH 286/310] moves RelateOnCopyHandler to Core and changes from ApplicationStarting to ApplicationStarted --- .../Strategies/RelateOnCopyHandler.cs | 42 +++++++++++++++++++ .../Strategies/RelateOnCopyHandler.cs | 33 ++------------- 2 files changed, 45 insertions(+), 30 deletions(-) create mode 100644 src/Umbraco.Core/Strategies/RelateOnCopyHandler.cs diff --git a/src/Umbraco.Core/Strategies/RelateOnCopyHandler.cs b/src/Umbraco.Core/Strategies/RelateOnCopyHandler.cs new file mode 100644 index 0000000000..e8c1956f2d --- /dev/null +++ b/src/Umbraco.Core/Strategies/RelateOnCopyHandler.cs @@ -0,0 +1,42 @@ +using System; +using Umbraco.Core.Auditing; +using Umbraco.Core.Models; +using Umbraco.Core.Services; + +namespace Umbraco.Core.Strategies +{ + public sealed class RelateOnCopyHandler : ApplicationEventHandler + { + protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext) + { + ContentService.Copied += ContentServiceCopied; + } + + private void ContentServiceCopied(IContentService sender, Core.Events.CopyEventArgs e) + { + if (e.RelateToOriginal) + { + var relationService = ApplicationContext.Current.Services.RelationService; + + var relationType = relationService.GetRelationTypeByAlias(Constants.Conventions.RelationTypes.RelateDocumentOnCopyAlias); + + if (relationType == null) + { + relationType = new RelationType(new Guid(Constants.ObjectTypes.Document), + new Guid(Constants.ObjectTypes.Document), + Constants.Conventions.RelationTypes.RelateDocumentOnCopyAlias, + Constants.Conventions.RelationTypes.RelateDocumentOnCopyName) { IsBidirectional = true }; + + relationService.Save(relationType); + } + + var relation = new Relation(e.Original.Id, e.Copy.Id, relationType); + relationService.Save(relation); + + Audit.Add(AuditTypes.Copy, + string.Format("Copied content with Id: '{0}' related to original content with Id: '{1}'", + e.Copy.Id, e.Original.Id), e.Copy.WriterId, e.Copy.Id); + } + } + } +} diff --git a/src/Umbraco.Web/Strategies/RelateOnCopyHandler.cs b/src/Umbraco.Web/Strategies/RelateOnCopyHandler.cs index 98cad3e639..ae72000edc 100644 --- a/src/Umbraco.Web/Strategies/RelateOnCopyHandler.cs +++ b/src/Umbraco.Web/Strategies/RelateOnCopyHandler.cs @@ -7,38 +7,11 @@ using Umbraco.Core.Services; namespace Umbraco.Web.Strategies { + [Obsolete("This class is no longer used and will be removed from the codebase in future versions")] public sealed class RelateOnCopyHandler : ApplicationEventHandler { - protected override void ApplicationStarting(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext) - { - ContentService.Copied += ContentServiceCopied; - } - - private void ContentServiceCopied(IContentService sender, Core.Events.CopyEventArgs e) - { - if (e.RelateToOriginal) - { - var relationService = ApplicationContext.Current.Services.RelationService; - - var relationType = relationService.GetRelationTypeByAlias(Constants.Conventions.RelationTypes.RelateDocumentOnCopyAlias); - - if (relationType == null) - { - relationType = new RelationType(new Guid(Constants.ObjectTypes.Document), - new Guid(Constants.ObjectTypes.Document), - Constants.Conventions.RelationTypes.RelateDocumentOnCopyAlias, - Constants.Conventions.RelationTypes.RelateDocumentOnCopyName) { IsBidirectional = true }; - - relationService.Save(relationType); - } - - var relation = new Relation(e.Original.Id, e.Copy.Id, relationType); - relationService.Save(relation); - - Audit.Add(AuditTypes.Copy, - string.Format("Copied content with Id: '{0}' related to original content with Id: '{1}'", - e.Copy.Id, e.Original.Id), e.Copy.WriterId, e.Copy.Id); - } + protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext) + { } } } From 91b599b213457f4539695fbecf114d8f73fdec66 Mon Sep 17 00:00:00 2001 From: Alain Date: Tue, 6 Jan 2015 12:14:13 +0000 Subject: [PATCH 287/310] Update IUserService.cs --- src/Umbraco.Core/Services/IUserService.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Core/Services/IUserService.cs b/src/Umbraco.Core/Services/IUserService.cs index 2c78bb62cc..5a77956931 100644 --- a/src/Umbraco.Core/Services/IUserService.cs +++ b/src/Umbraco.Core/Services/IUserService.cs @@ -54,12 +54,13 @@ namespace Umbraco.Core.Services void DeleteSectionFromAllUsers(string sectionAlias); /// - /// Add a specific section to all users + /// Add a specific section to all users or those specified as parameters /// - /// This is useful when a new section is created to allow all users accessing it + /// This is useful when a new section is created to allow specific users accessing it /// Alias of the section to add - void AddSectionToAllUsers(string sectionAlias); - + /// Specifiying nothing will add the section to all user + void AddSectionToAllUsers(string sectionAlias, params int[] userIds); + /// /// Get permissions set for a user and optional node ids /// From cc61c34cdff6a7745f9c2f80063123d8222afc67 Mon Sep 17 00:00:00 2001 From: Alain Date: Tue, 6 Jan 2015 12:15:32 +0000 Subject: [PATCH 288/310] Update UserService.cs --- src/Umbraco.Core/Services/UserService.cs | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Core/Services/UserService.cs b/src/Umbraco.Core/Services/UserService.cs index c3dcf846dd..9be1ce0d11 100644 --- a/src/Umbraco.Core/Services/UserService.cs +++ b/src/Umbraco.Core/Services/UserService.cs @@ -674,17 +674,26 @@ namespace Umbraco.Core.Services } /// - /// Add a specific section to all users + /// Add a specific section to all users or those specified as parameters /// - /// This is useful when a new section is created to allow all users accessing it + /// This is useful when a new section is created to allow specific users accessing it /// Alias of the section to add - public void AddSectionToAllUsers(string sectionAlias) + /// Specifiying nothing will add the section to all user + public void AddSectionToAllUsers(string sectionAlias, params int[] userIds) { var uow = _uowProvider.GetUnitOfWork(); using (var repository = _repositoryFactory.CreateUserRepository(uow)) { - var allUsers = repository.GetAll(); - foreach (var user in allUsers.Where(u => !u.AllowedSections.Contains(sectionAlias))) + IEnumerable users; + if (userIds.Any()) + { + users = repository.GetAll(userIds); + } + else + { + users = repository.GetAll(); + } + foreach (var user in users.Where(u => !u.AllowedSections.InvariantContains(sectionAlias))) { //now add the section for each user and commit user.AddAllowedSection(sectionAlias); @@ -692,7 +701,7 @@ namespace Umbraco.Core.Services } uow.Commit(); } - } + } /// /// Get permissions set for a user and optional node ids From f3b23a15c995c60408d59da3e9d1b0a64d4288c2 Mon Sep 17 00:00:00 2001 From: Alain Date: Tue, 6 Jan 2015 12:18:08 +0000 Subject: [PATCH 289/310] Update UserServiceTests.cs --- .../Services/UserServiceTests.cs | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Tests/Services/UserServiceTests.cs b/src/Umbraco.Tests/Services/UserServiceTests.cs index a1591b44f8..f3100aa133 100644 --- a/src/Umbraco.Tests/Services/UserServiceTests.cs +++ b/src/Umbraco.Tests/Services/UserServiceTests.cs @@ -458,17 +458,36 @@ namespace Umbraco.Tests.Services var user1 = ServiceContext.UserService.CreateUserWithIdentity("test1", "test1@test.com", userType); var user2 = ServiceContext.UserService.CreateUserWithIdentity("test2", "test2@test.com", userType); + var user3 = ServiceContext.UserService.CreateUserWithIdentity("test3", "test3@test.com", userType); + var user4 = ServiceContext.UserService.CreateUserWithIdentity("test4", "test4@test.com", userType); + + //now add the section to specific users + ServiceContext.UserService.AddSectionToAllUsers("test", (int)user1.Id, (int)user2.Id); + + //assert + var result1 = ServiceContext.UserService.GetUserById((int)user1.Id); + var result2 = ServiceContext.UserService.GetUserById((int)user2.Id); + var result3 = ServiceContext.UserService.GetUserById((int)user3.Id); + var result4 = ServiceContext.UserService.GetUserById((int)user4.Id); + Assert.IsTrue(result1.AllowedSections.Contains("test")); + Assert.IsTrue(result2.AllowedSections.Contains("test")); + Assert.IsFalse(result3.AllowedSections.Contains("test")); + Assert.IsFalse(result4.AllowedSections.Contains("test")); //now add the section to all users ServiceContext.UserService.AddSectionToAllUsers("test"); //assert - var result1 = ServiceContext.UserService.GetUserById((int)user1.Id); - var result2 = ServiceContext.UserService.GetUserById((int)user2.Id); + result1 = ServiceContext.UserService.GetUserById((int)user1.Id); + result2 = ServiceContext.UserService.GetUserById((int)user2.Id); + result3 = ServiceContext.UserService.GetUserById((int)user3.Id); + result4 = ServiceContext.UserService.GetUserById((int)user4.Id); Assert.IsTrue(result1.AllowedSections.Contains("test")); Assert.IsTrue(result2.AllowedSections.Contains("test")); + Assert.IsTrue(result3.AllowedSections.Contains("test")); + Assert.IsTrue(result4.AllowedSections.Contains("test")); } - + [Test] public void Get_By_Profile_Username() { From 341239648d0b6051339a798275fbf8f3acbbfc29 Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 7 Jan 2015 09:17:22 +1100 Subject: [PATCH 290/310] bumps version --- build/UmbracoVersion.txt | 2 +- src/Umbraco.Core/Configuration/UmbracoVersion.cs | 2 +- src/Umbraco.Web.UI/Umbraco.Web.UI.csproj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/UmbracoVersion.txt b/build/UmbracoVersion.txt index 85a02bb894..654fc8d0eb 100644 --- a/build/UmbracoVersion.txt +++ b/build/UmbracoVersion.txt @@ -1,2 +1,2 @@ # Usage: on line 2 put the release version, on line 3 put the version comment (example: beta) -7.2.1 \ No newline at end of file +7.2.2 \ No newline at end of file diff --git a/src/Umbraco.Core/Configuration/UmbracoVersion.cs b/src/Umbraco.Core/Configuration/UmbracoVersion.cs index f7163bfe7f..dfc8d6931e 100644 --- a/src/Umbraco.Core/Configuration/UmbracoVersion.cs +++ b/src/Umbraco.Core/Configuration/UmbracoVersion.cs @@ -5,7 +5,7 @@ namespace Umbraco.Core.Configuration { public class UmbracoVersion { - private static readonly Version Version = new Version("7.2.1"); + private static readonly Version Version = new Version("7.2.2"); /// /// Gets the current version of Umbraco. diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj index 69ff45cfe8..3cffa798c0 100644 --- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj +++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj @@ -2551,7 +2551,7 @@ xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.0\x86\*.* "$(TargetDir)x86\" True 7210 / - http://localhost:7210 + http://localhost:7220 False False From d4f28fcd851adf0e9c1600294c81b7867d4bf5e6 Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 7 Jan 2015 10:39:00 +1100 Subject: [PATCH 291/310] fixes a couple of tests --- src/Umbraco.Core/Services/LocalizedTextService.cs | 13 +++++++++---- .../Services/LocalizedTextServiceFileSources.cs | 14 +++++++++++++- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Core/Services/LocalizedTextService.cs b/src/Umbraco.Core/Services/LocalizedTextService.cs index f5c2cc033a..c9d05f3a3b 100644 --- a/src/Umbraco.Core/Services/LocalizedTextService.cs +++ b/src/Umbraco.Core/Services/LocalizedTextService.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Xml; using System.Xml.Linq; using System.Xml.XPath; +using Umbraco.Core.Logging; namespace Umbraco.Core.Services { @@ -80,7 +81,8 @@ namespace Umbraco.Core.Services { if (_xmlSource.ContainsKey(culture) == false) { - throw new NullReferenceException("The culture specified " + culture + " was not found in any configured sources for this service"); + LogHelper.Warn("The culture specified {0} was not found in any configured sources for this service", () => culture); + return result; } //convert all areas + keys to a single key with a '/' @@ -103,7 +105,8 @@ namespace Umbraco.Core.Services { if (_dictionarySource.ContainsKey(culture) == false) { - throw new NullReferenceException("The culture specified " + culture + " was not found in any configured sources for this service"); + LogHelper.Warn("The culture specified {0} was not found in any configured sources for this service", () => culture); + return result; } //convert all areas + keys to a single key with a '/' @@ -137,7 +140,8 @@ namespace Umbraco.Core.Services { if (_dictionarySource.ContainsKey(culture) == false) { - throw new NullReferenceException("The culture specified " + culture + " was not found in any configured sources for this service"); + LogHelper.Warn("The culture specified {0} was not found in any configured sources for this service", () => culture); + return "[" + key + "]"; } var cultureSource = _dictionarySource[culture]; @@ -174,7 +178,8 @@ namespace Umbraco.Core.Services { if (_xmlSource.ContainsKey(culture) == false) { - throw new NullReferenceException("The culture specified " + culture + " was not found in any configured sources for this service"); + LogHelper.Warn("The culture specified {0} was not found in any configured sources for this service", () => culture); + return "[" + key + "]"; } var cultureSource = _xmlSource[culture].Value; diff --git a/src/Umbraco.Core/Services/LocalizedTextServiceFileSources.cs b/src/Umbraco.Core/Services/LocalizedTextServiceFileSources.cs index 147a3cda31..30e43a694c 100644 --- a/src/Umbraco.Core/Services/LocalizedTextServiceFileSources.cs +++ b/src/Umbraco.Core/Services/LocalizedTextServiceFileSources.cs @@ -4,6 +4,7 @@ using System.Globalization; using System.IO; using System.Xml.Linq; using Umbraco.Core.Cache; +using Umbraco.Core.Logging; namespace Umbraco.Core.Services { @@ -20,7 +21,15 @@ namespace Umbraco.Core.Services if (cache == null) throw new ArgumentNullException("cache"); if (fileSourceFolder == null) throw new ArgumentNullException("fileSourceFolder"); _cache = cache; - _fileSourceFolder = fileSourceFolder; + + if (fileSourceFolder.Exists == false) + { + LogHelper.Warn("The folder does not exist: {0}, therefore no sources will be discovered", () => fileSourceFolder.FullName); + } + else + { + _fileSourceFolder = fileSourceFolder; + } } /// @@ -30,6 +39,9 @@ namespace Umbraco.Core.Services public IDictionary> GetXmlSources() { var result = new Dictionary>(); + + if (_fileSourceFolder == null) return result; + foreach (var fileInfo in _fileSourceFolder.GetFiles("*.xml")) { var localCopy = fileInfo; From 282550f402f3262bb19744d966dda85013aa768e Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 7 Jan 2015 13:17:44 +1100 Subject: [PATCH 292/310] Fixes: U4-6080 Server side email validation doesn't occur on existing members when they are saved --- .../CoreStrings/StringExtensionsTests.cs | 2 +- .../CoreStrings/StringValidationTests.cs | 28 ++++ src/Umbraco.Tests/Umbraco.Tests.csproj | 1 + src/Umbraco.Web/Editors/MemberController.cs | 1 - ...ershipProviderValidationFilterAttribute.cs | 129 ----------------- src/Umbraco.Web/Umbraco.Web.csproj | 1 - .../WebApi/Binders/MemberBinder.cs | 134 ++++++++++++++++++ 7 files changed, 164 insertions(+), 132 deletions(-) create mode 100644 src/Umbraco.Tests/CoreStrings/StringValidationTests.cs delete mode 100644 src/Umbraco.Web/Editors/MembershipProviderValidationFilterAttribute.cs diff --git a/src/Umbraco.Tests/CoreStrings/StringExtensionsTests.cs b/src/Umbraco.Tests/CoreStrings/StringExtensionsTests.cs index c86ee01100..43e5d0fcf9 100644 --- a/src/Umbraco.Tests/CoreStrings/StringExtensionsTests.cs +++ b/src/Umbraco.Tests/CoreStrings/StringExtensionsTests.cs @@ -7,7 +7,7 @@ using Umbraco.Core.ObjectResolution; namespace Umbraco.Tests.CoreStrings { - [TestFixture] + [TestFixture] public class StringExtensionsTests { [SetUp] diff --git a/src/Umbraco.Tests/CoreStrings/StringValidationTests.cs b/src/Umbraco.Tests/CoreStrings/StringValidationTests.cs new file mode 100644 index 0000000000..c1f8b92438 --- /dev/null +++ b/src/Umbraco.Tests/CoreStrings/StringValidationTests.cs @@ -0,0 +1,28 @@ +using System.ComponentModel.DataAnnotations; +using NUnit.Framework; + +namespace Umbraco.Tests.CoreStrings +{ + [TestFixture] + public class StringValidationTests + { + [Test] + public void Validate_Email_Address() + { + var foo = new EmailAddressAttribute(); + + Assert.IsTrue(foo.IsValid("someone@somewhere.com")); + Assert.IsTrue(foo.IsValid("someone@somewhere.co.uk")); + Assert.IsTrue(foo.IsValid("someone+tag@somewhere.net")); + Assert.IsTrue(foo.IsValid("futureTLD@somewhere.fooo")); + + Assert.IsTrue(foo.IsValid("abc@xyz.financial")); + + Assert.IsFalse(foo.IsValid("fdsa")); + Assert.IsFalse(foo.IsValid("fdsa@")); + Assert.IsFalse(foo.IsValid("fdsa@fdsa")); + Assert.IsFalse(foo.IsValid("fdsa@fdsa.")); + + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index b6f562f106..60e57f91f0 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -168,6 +168,7 @@ + diff --git a/src/Umbraco.Web/Editors/MemberController.cs b/src/Umbraco.Web/Editors/MemberController.cs index a696ccf0b1..30320b278e 100644 --- a/src/Umbraco.Web/Editors/MemberController.cs +++ b/src/Umbraco.Web/Editors/MemberController.cs @@ -230,7 +230,6 @@ namespace Umbraco.Web.Editors /// /// [FileUploadCleanupFilter] - [MembershipProviderValidationFilter] public MemberDisplay PostSave( [ModelBinder(typeof(MemberBinder))] MemberSave contentItem) diff --git a/src/Umbraco.Web/Editors/MembershipProviderValidationFilterAttribute.cs b/src/Umbraco.Web/Editors/MembershipProviderValidationFilterAttribute.cs deleted file mode 100644 index aa95af3531..0000000000 --- a/src/Umbraco.Web/Editors/MembershipProviderValidationFilterAttribute.cs +++ /dev/null @@ -1,129 +0,0 @@ -using System; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.Net; -using System.Web.Http; -using System.Web.Http.Controllers; -using System.Web.Http.Filters; -using System.Web.Security; -using Umbraco.Core; -using Umbraco.Web.Models.ContentEditing; - -namespace Umbraco.Web.Editors -{ - /// - /// This validates the submitted data in regards to the current membership provider - /// - internal class MembershipProviderValidationFilterAttribute : ActionFilterAttribute - { - public override void OnActionExecuting(HttpActionContext actionContext) - { - base.OnActionExecuting(actionContext); - - //default provider! - var membershipProvider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider(); - - var contentItem = (MemberSave) actionContext.ActionArguments["contentItem"]; - - var validEmail = ValidateUniqueEmail(contentItem, membershipProvider, actionContext); - if (validEmail == false) - { - actionContext.ModelState.AddPropertyError( - new ValidationResult("Email address is already in use", new[] {"value"}), - string.Format("{0}email", Constants.PropertyEditors.InternalGenericPropertiesPrefix)); - } - - var validLogin = ValidateUniqueLogin(contentItem, membershipProvider, actionContext); - if (validLogin == false) - { - actionContext.ModelState.AddPropertyError( - new ValidationResult("Username is already in use", new[] { "value" }), - string.Format("{0}login", Constants.PropertyEditors.InternalGenericPropertiesPrefix)); - } - } - - internal bool ValidateUniqueLogin(MemberSave contentItem, MembershipProvider membershipProvider, HttpActionContext actionContext) - { - if (contentItem == null) throw new ArgumentNullException("contentItem"); - if (membershipProvider == null) throw new ArgumentNullException("membershipProvider"); - - int totalRecs; - var existingByName = membershipProvider.FindUsersByName(contentItem.Username.Trim(), 0, int.MaxValue, out totalRecs); - switch (contentItem.Action) - { - case ContentSaveAction.Save: - - //ok, we're updating the member, we need to check if they are changing their login and if so, does it exist already ? - if (contentItem.PersistedContent.Username.InvariantEquals(contentItem.Username.Trim()) == false) - { - //they are changing their login name - if (existingByName.Cast().Select(x => x.UserName) - .Any(x => x == contentItem.Username.Trim())) - { - //the user cannot use this login - return false; - } - } - break; - case ContentSaveAction.SaveNew: - //check if the user's login already exists - if (existingByName.Cast().Select(x => x.UserName) - .Any(x => x == contentItem.Username.Trim())) - { - //the user cannot use this login - return false; - } - break; - default: - //we don't support this for members - throw new HttpResponseException(HttpStatusCode.NotFound); - } - - return true; - } - - internal bool ValidateUniqueEmail(MemberSave contentItem, MembershipProvider membershipProvider, HttpActionContext actionContext) - { - if (contentItem == null) throw new ArgumentNullException("contentItem"); - if (membershipProvider == null) throw new ArgumentNullException("membershipProvider"); - - if (membershipProvider.RequiresUniqueEmail == false) - { - return true; - } - - int totalRecs; - var existingByEmail = membershipProvider.FindUsersByEmail(contentItem.Email.Trim(), 0, int.MaxValue, out totalRecs); - switch (contentItem.Action) - { - case ContentSaveAction.Save: - //ok, we're updating the member, we need to check if they are changing their email and if so, does it exist already ? - if (contentItem.PersistedContent.Email.InvariantEquals(contentItem.Email.Trim()) == false) - { - //they are changing their email - if (existingByEmail.Cast().Select(x => x.Email) - .Any(x => x.InvariantEquals(contentItem.Email.Trim()))) - { - //the user cannot use this email - return false; - } - } - break; - case ContentSaveAction.SaveNew: - //check if the user's email already exists - if (existingByEmail.Cast().Select(x => x.Email) - .Any(x => x.InvariantEquals(contentItem.Email.Trim()))) - { - //the user cannot use this email - return false; - } - break; - default: - //we don't support this for members - throw new HttpResponseException(HttpStatusCode.NotFound); - } - - return true; - } - } -} \ No newline at end of file diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 21ac991bbc..2dec8c27f6 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -397,7 +397,6 @@ - diff --git a/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs b/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs index 3893167a73..49669fd427 100644 --- a/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs +++ b/src/Umbraco.Web/WebApi/Binders/MemberBinder.cs @@ -1,5 +1,8 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Net; +using System.Web.Http; using System.Web.Http.Controllers; using System.Web.Http.ModelBinding; using System.Web.Security; @@ -12,6 +15,7 @@ using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.WebApi.Filters; using System.Linq; using Umbraco.Core.Models.Membership; +using Umbraco.Web; namespace Umbraco.Web.WebApi.Binders { @@ -194,6 +198,52 @@ namespace Umbraco.Web.WebApi.Binders /// internal class MemberValidationHelper : ContentItemValidationHelper { + /// + /// We need to manually validate a few things here like email and login to make sure they are valid and aren't duplicates + /// + /// + /// + /// + protected override bool ValidatePropertyData(ContentItemBasic postedItem, HttpActionContext actionContext) + { + var memberSave = (MemberSave)postedItem; + + if (memberSave.Username.IsNullOrWhiteSpace()) + { + actionContext.ModelState.AddPropertyError( + new ValidationResult("Invalid user name", new[] { "value" }), + string.Format("{0}login", Constants.PropertyEditors.InternalGenericPropertiesPrefix)); + } + + if (memberSave.Email.IsNullOrWhiteSpace() || new EmailAddressAttribute().IsValid(memberSave.Email) == false) + { + actionContext.ModelState.AddPropertyError( + new ValidationResult("Invalid email", new[] { "value" }), + string.Format("{0}email", Constants.PropertyEditors.InternalGenericPropertiesPrefix)); + } + + //default provider! + var membershipProvider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider(); + + var validEmail = ValidateUniqueEmail(memberSave, membershipProvider, actionContext); + if (validEmail == false) + { + actionContext.ModelState.AddPropertyError( + new ValidationResult("Email address is already in use", new[] { "value" }), + string.Format("{0}email", Constants.PropertyEditors.InternalGenericPropertiesPrefix)); + } + + var validLogin = ValidateUniqueLogin(memberSave, membershipProvider, actionContext); + if (validLogin == false) + { + actionContext.ModelState.AddPropertyError( + new ValidationResult("Username is already in use", new[] { "value" }), + string.Format("{0}login", Constants.PropertyEditors.InternalGenericPropertiesPrefix)); + } + + return base.ValidatePropertyData(postedItem, actionContext); + } + protected override bool ValidateProperties(ContentItemBasic postedItem, HttpActionContext actionContext) { var propertiesToValidate = postedItem.Properties.ToList(); @@ -206,6 +256,90 @@ namespace Umbraco.Web.WebApi.Binders return ValidateProperties(propertiesToValidate.ToArray(), postedItem.PersistedContent.Properties.ToArray(), actionContext); } + + internal bool ValidateUniqueLogin(MemberSave contentItem, MembershipProvider membershipProvider, HttpActionContext actionContext) + { + if (contentItem == null) throw new ArgumentNullException("contentItem"); + if (membershipProvider == null) throw new ArgumentNullException("membershipProvider"); + + int totalRecs; + var existingByName = membershipProvider.FindUsersByName(contentItem.Username.Trim(), 0, int.MaxValue, out totalRecs); + switch (contentItem.Action) + { + case ContentSaveAction.Save: + + //ok, we're updating the member, we need to check if they are changing their login and if so, does it exist already ? + if (contentItem.PersistedContent.Username.InvariantEquals(contentItem.Username.Trim()) == false) + { + //they are changing their login name + if (existingByName.Cast().Select(x => x.UserName) + .Any(x => x == contentItem.Username.Trim())) + { + //the user cannot use this login + return false; + } + } + break; + case ContentSaveAction.SaveNew: + //check if the user's login already exists + if (existingByName.Cast().Select(x => x.UserName) + .Any(x => x == contentItem.Username.Trim())) + { + //the user cannot use this login + return false; + } + break; + default: + //we don't support this for members + throw new HttpResponseException(HttpStatusCode.NotFound); + } + + return true; + } + + internal bool ValidateUniqueEmail(MemberSave contentItem, MembershipProvider membershipProvider, HttpActionContext actionContext) + { + if (contentItem == null) throw new ArgumentNullException("contentItem"); + if (membershipProvider == null) throw new ArgumentNullException("membershipProvider"); + + if (membershipProvider.RequiresUniqueEmail == false) + { + return true; + } + + int totalRecs; + var existingByEmail = membershipProvider.FindUsersByEmail(contentItem.Email.Trim(), 0, int.MaxValue, out totalRecs); + switch (contentItem.Action) + { + case ContentSaveAction.Save: + //ok, we're updating the member, we need to check if they are changing their email and if so, does it exist already ? + if (contentItem.PersistedContent.Email.InvariantEquals(contentItem.Email.Trim()) == false) + { + //they are changing their email + if (existingByEmail.Cast().Select(x => x.Email) + .Any(x => x.InvariantEquals(contentItem.Email.Trim()))) + { + //the user cannot use this email + return false; + } + } + break; + case ContentSaveAction.SaveNew: + //check if the user's email already exists + if (existingByEmail.Cast().Select(x => x.Email) + .Any(x => x.InvariantEquals(contentItem.Email.Trim()))) + { + //the user cannot use this email + return false; + } + break; + default: + //we don't support this for members + throw new HttpResponseException(HttpStatusCode.NotFound); + } + + return true; + } } } } \ No newline at end of file From 322bd4e41e4ef004daf48df85fad3dc9abac8fcc Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 7 Jan 2015 14:32:39 +1100 Subject: [PATCH 293/310] Fixes: U4-5717 Member email validation does not allow valid domains (Umbraco 7.1.4) --- .../validation/valemail.directive.js | 44 +++++++++++++++++++ .../views/propertyeditors/email/email.html | 5 ++- .../unit/common/directives/val-email.spec.js | 34 ++++++++++++++ 3 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/common/directives/validation/valemail.directive.js create mode 100644 src/Umbraco.Web.UI.Client/test/unit/common/directives/val-email.spec.js diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valemail.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valemail.directive.js new file mode 100644 index 0000000000..7f3e3a75c2 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valemail.directive.js @@ -0,0 +1,44 @@ +/** + * @ngdoc directive + * @name umbraco.directives.directive:valEmail + * @restrict A + * @description A custom directive to validate an email address string, this is required because angular's default validator is incorrect. + **/ +function valEmail(valEmailExpression) { + + return { + require: 'ngModel', + restrict: "A", + link: function (scope, elm, attrs, ctrl) { + + var patternValidator = function (viewValue) { + //NOTE: we don't validate on empty values, use required validator for that + if (!viewValue || valEmailExpression.EMAIL_REGEXP.test(viewValue)) { + // it is valid + ctrl.$setValidity('valEmail', true); + //assign a message to the validator + ctrl.errorMsg = ""; + return viewValue; + } + else { + // it is invalid, return undefined (no model update) + ctrl.$setValidity('valEmail', false); + //assign a message to the validator + ctrl.errorMsg = "Invalid email"; + return undefined; + } + }; + + ctrl.$formatters.push(patternValidator); + ctrl.$parsers.push(patternValidator); + } + }; +} + +angular.module('umbraco.directives') + .directive("valEmail", valEmail) + .factory('valEmailExpression', function() { + return { + EMAIL_REGEXP: /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i + }; + }); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/email/email.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/email/email.html index f93b4c7a9a..0081d6ac26 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/email/email.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/email/email.html @@ -1,13 +1,14 @@ 
    - Required - Invalid email + Invalid email
    diff --git a/src/Umbraco.Web.UI.Client/test/unit/common/directives/val-email.spec.js b/src/Umbraco.Web.UI.Client/test/unit/common/directives/val-email.spec.js new file mode 100644 index 0000000000..265689988d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/test/unit/common/directives/val-email.spec.js @@ -0,0 +1,34 @@ +describe('valEmail directive tests', function() { + + var valEmailExpression; + + beforeEach(module('umbraco')); + + beforeEach(inject(function ($injector) { + //TODO: I have no idea why this doesn't work!!?? it freakin should + //valEmailExpression = $injector.get('valEmailExpression'); + + //in the meantime, i've had to hard code the regex statement here + valEmailExpression = { + EMAIL_REGEXP: /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i + }; + + })); + + describe('EMAIL_REGEXP', function () { + /* global EMAIL_REGEXP: false */ + it('should validate email', function () { + expect(valEmailExpression.EMAIL_REGEXP.test('a@b.com')).toBe(true); + expect(valEmailExpression.EMAIL_REGEXP.test('a@b.museum')).toBe(true); + expect(valEmailExpression.EMAIL_REGEXP.test('a@B.c')).toBe(true); + expect(valEmailExpression.EMAIL_REGEXP.test('a@.b.c')).toBe(false); + expect(valEmailExpression.EMAIL_REGEXP.test('a@-b.c')).toBe(false); + expect(valEmailExpression.EMAIL_REGEXP.test('a@b-.c')).toBe(false); + expect(valEmailExpression.EMAIL_REGEXP.test('a@3b.c')).toBe(true); + expect(valEmailExpression.EMAIL_REGEXP.test('a@b')).toBe(true); + expect(valEmailExpression.EMAIL_REGEXP.test('abc@xyz.financial')).toBe(true); + + }); + }); + +}); \ No newline at end of file From dc846e7ff6f5e222d13d91b9f7fd69783b46ecc6 Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 7 Jan 2015 15:02:58 +1100 Subject: [PATCH 294/310] Fixes installer email validation. Ensures all validation directives are registered under the correct module: umbraco.directives.validation, then we load this module in the installer so we can use the correct email validation directive. --- .../common/directives/validation/nodirtycheck.directive.js | 2 +- .../common/directives/validation/valHighlight.directive.js | 2 +- .../src/common/directives/validation/valemail.directive.js | 2 +- .../common/directives/validation/valformmanager.directive.js | 2 +- .../common/directives/validation/valpropertymsg.directive.js | 2 +- .../src/common/directives/validation/valregex.directive.js | 2 +- .../src/common/directives/validation/valserver.directive.js | 2 +- .../common/directives/validation/valserverfield.directive.js | 2 +- .../src/common/directives/validation/valtab.directive.js | 2 +- .../common/directives/validation/valtogglemsg.directive.js | 2 +- src/Umbraco.Web.UI.Client/src/install.loader.js | 5 +++-- src/Umbraco.Web.UI.Client/src/installer/steps/user.html | 2 +- src/Umbraco.Web.UI/Umbraco/js/install.loader.js | 5 +++-- 13 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/nodirtycheck.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/nodirtycheck.directive.js index 74c007dfbc..f027d7a12f 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/nodirtycheck.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/nodirtycheck.directive.js @@ -15,4 +15,4 @@ function noDirtyCheck() { } }; } -angular.module('umbraco.directives').directive("noDirtyCheck", noDirtyCheck); \ No newline at end of file +angular.module('umbraco.directives.validation').directive("noDirtyCheck", noDirtyCheck); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valHighlight.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valHighlight.directive.js index b276c8c931..fdcf768947 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valHighlight.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valHighlight.directive.js @@ -27,4 +27,4 @@ function valHighlight($timeout) { } }; } -angular.module('umbraco.directives').directive("valHighlight", valHighlight); \ No newline at end of file +angular.module('umbraco.directives.validation').directive("valHighlight", valHighlight); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valemail.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valemail.directive.js index 7f3e3a75c2..88ffd6f0fa 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valemail.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valemail.directive.js @@ -35,7 +35,7 @@ function valEmail(valEmailExpression) { }; } -angular.module('umbraco.directives') +angular.module('umbraco.directives.validation') .directive("valEmail", valEmail) .factory('valEmailExpression', function() { return { diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valformmanager.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valformmanager.directive.js index d20feb0379..1bd4d409e7 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valformmanager.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valformmanager.directive.js @@ -105,4 +105,4 @@ function valFormManager(serverValidationManager, $rootScope, $log, $timeout, not } }; } -angular.module('umbraco.directives').directive("valFormManager", valFormManager); \ No newline at end of file +angular.module('umbraco.directives.validation').directive("valFormManager", valFormManager); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertymsg.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertymsg.directive.js index d37f4c5271..a8d546bc36 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertymsg.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valpropertymsg.directive.js @@ -182,4 +182,4 @@ function valPropertyMsg(serverValidationManager) { } }; } -angular.module('umbraco.directives').directive("valPropertyMsg", valPropertyMsg); \ No newline at end of file +angular.module('umbraco.directives.validation').directive("valPropertyMsg", valPropertyMsg); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valregex.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valregex.directive.js index e98fb06c98..651c0a54c7 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valregex.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valregex.directive.js @@ -61,4 +61,4 @@ function valRegex() { } }; } -angular.module('umbraco.directives').directive("valRegex", valRegex); \ No newline at end of file +angular.module('umbraco.directives.validation').directive("valRegex", valRegex); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js index c1bcc4fd38..6225485073 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserver.directive.js @@ -91,4 +91,4 @@ function valServer(serverValidationManager) { } }; } -angular.module('umbraco.directives').directive("valServer", valServer); \ No newline at end of file +angular.module('umbraco.directives.validation').directive("valServer", valServer); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserverfield.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserverfield.directive.js index da79253c2f..9a077615df 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserverfield.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valserverfield.directive.js @@ -51,4 +51,4 @@ function valServerField(serverValidationManager) { } }; } -angular.module('umbraco.directives').directive("valServerField", valServerField); \ No newline at end of file +angular.module('umbraco.directives.validation').directive("valServerField", valServerField); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valtab.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valtab.directive.js index 0216fe14d7..cd6dc51eca 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valtab.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valtab.directive.js @@ -35,4 +35,4 @@ function valTab() { } }; } -angular.module('umbraco.directives').directive("valTab", valTab); \ No newline at end of file +angular.module('umbraco.directives.validation').directive("valTab", valTab); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valtogglemsg.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valtogglemsg.directive.js index 5a57754524..cdcfbcfe2a 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/validation/valtogglemsg.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/validation/valtogglemsg.directive.js @@ -84,4 +84,4 @@ function valToggleMsg(serverValidationManager) { * @requires formController * @description This directive will show/hide an error based on: is the value + the given validator invalid? AND, has the form been submitted ? **/ -angular.module('umbraco.directives').directive("valToggleMsg", valToggleMsg); \ No newline at end of file +angular.module('umbraco.directives.validation').directive("valToggleMsg", valToggleMsg); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/install.loader.js b/src/Umbraco.Web.UI.Client/src/install.loader.js index 66f00f742c..5415a106e1 100644 --- a/src/Umbraco.Web.UI.Client/src/install.loader.js +++ b/src/Umbraco.Web.UI.Client/src/install.loader.js @@ -7,10 +7,11 @@ LazyLoad.js( [ 'lib/angular/1.1.5/angular-mocks.js', 'lib/angular/1.1.5/angular-sanitize.min.js', 'lib/underscore/underscore-min.js', - 'js/umbraco.installer.js' + 'js/umbraco.installer.js', + 'js/umbraco.directives.js' ], function () { jQuery(document).ready(function () { - angular.bootstrap(document, ['ngSanitize', 'umbraco.install']); + angular.bootstrap(document, ['ngSanitize', 'umbraco.install', 'umbraco.directives.validation']); }); } ); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/installer/steps/user.html b/src/Umbraco.Web.UI.Client/src/installer/steps/user.html index 8202593782..2cd50fe208 100644 --- a/src/Umbraco.Web.UI.Client/src/installer/steps/user.html +++ b/src/Umbraco.Web.UI.Client/src/installer/steps/user.html @@ -18,7 +18,7 @@
    - + Your email will be used as your login
    diff --git a/src/Umbraco.Web.UI/Umbraco/js/install.loader.js b/src/Umbraco.Web.UI/Umbraco/js/install.loader.js index 66f00f742c..5415a106e1 100644 --- a/src/Umbraco.Web.UI/Umbraco/js/install.loader.js +++ b/src/Umbraco.Web.UI/Umbraco/js/install.loader.js @@ -7,10 +7,11 @@ LazyLoad.js( [ 'lib/angular/1.1.5/angular-mocks.js', 'lib/angular/1.1.5/angular-sanitize.min.js', 'lib/underscore/underscore-min.js', - 'js/umbraco.installer.js' + 'js/umbraco.installer.js', + 'js/umbraco.directives.js' ], function () { jQuery(document).ready(function () { - angular.bootstrap(document, ['ngSanitize', 'umbraco.install']); + angular.bootstrap(document, ['ngSanitize', 'umbraco.install', 'umbraco.directives.validation']); }); } ); \ No newline at end of file From d6f47366d47aebe6d28c43902ff49e652a87f110 Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 7 Jan 2015 15:11:27 +1100 Subject: [PATCH 295/310] fixes how bytes are read with utf8 BOM for templates and master pages, fixes unit test --- .../Repositories/TemplateRepository.cs | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs index c21b43cdaf..26e6ec3469 100644 --- a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs @@ -358,15 +358,13 @@ namespace Umbraco.Core.Persistence.Repositories private void PopulateViewTemplate(ITemplate template, string fileName) { - string content = string.Empty; - string path = string.Empty; + string content; + var path = string.Empty; using (var stream = _viewsFileSystem.OpenFile(fileName)) + using (var reader = new StreamReader(stream, Encoding.UTF8, true)) { - byte[] bytes = new byte[stream.Length]; - stream.Position = 0; - stream.Read(bytes, 0, (int)stream.Length); - content = Encoding.UTF8.GetString(bytes); + content = reader.ReadToEnd(); } template.Path = _viewsFileSystem.GetRelativePath(fileName); @@ -380,15 +378,13 @@ namespace Umbraco.Core.Persistence.Repositories private void PopulateMasterpageTemplate(ITemplate template, string fileName) { - string content = string.Empty; - string path = string.Empty; - + string content; + var path = string.Empty; + using (var stream = _masterpagesFileSystem.OpenFile(fileName)) + using (var reader = new StreamReader(stream, Encoding.UTF8, true)) { - byte[] bytes = new byte[stream.Length]; - stream.Position = 0; - stream.Read(bytes, 0, (int)stream.Length); - content = Encoding.UTF8.GetString(bytes); + content = reader.ReadToEnd(); } template.Path = _masterpagesFileSystem.GetRelativePath(fileName); From 76ab09bfc8c79aea8e9d20a58f8d07cf1c42d17a Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 7 Jan 2015 15:36:17 +1100 Subject: [PATCH 296/310] Fixes remaining tests --- src/Umbraco.Tests/UmbracoExamine/IndexTest.cs | 11 +++--- .../XmlPublishedCache/PublishedMediaCache.cs | 30 +++++++++------- src/UmbracoExamine/BaseUmbracoIndexer.cs | 5 +-- src/UmbracoExamine/DeletePolicyTracker.cs | 4 +-- src/UmbracoExamine/UmbracoExamineSearcher.cs | 5 +-- src/umbraco.businesslogic/ui.cs | 36 +++++++++++++++++++ 6 files changed, 69 insertions(+), 22 deletions(-) diff --git a/src/Umbraco.Tests/UmbracoExamine/IndexTest.cs b/src/Umbraco.Tests/UmbracoExamine/IndexTest.cs index cf58f420ca..77a9fd2dba 100644 --- a/src/Umbraco.Tests/UmbracoExamine/IndexTest.cs +++ b/src/Umbraco.Tests/UmbracoExamine/IndexTest.cs @@ -142,12 +142,15 @@ namespace Umbraco.Tests.UmbracoExamine { var s = (IndexSearcher)_searcher.GetSearcher(); + + //first delete all 'Content' (not media). This is done by directly manipulating the index with the Lucene API, not examine! - var r = IndexReader.Open(s.GetIndexReader().Directory(), false); + var contentTerm = new Term(LuceneIndexer.IndexTypeFieldName, IndexTypes.Content); - var delCount = r.DeleteDocuments(contentTerm); - r.Commit(); - r.Close(); + var writer = _indexer.GetIndexWriter(); + writer.DeleteDocuments(contentTerm); + writer.Commit(); + //make sure the content is gone. This is done with lucene APIs, not examine! var collector = new AllHitsCollector(false, true); diff --git a/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs b/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs index 6edb9d7960..f47c280d6d 100644 --- a/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs +++ b/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs @@ -145,18 +145,24 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache var eMgr = GetExamineManagerSafe(); if (eMgr != null) { - try - { - //by default use the InternalSearcher - return eMgr.SearchProviderCollection["InternalSearcher"]; - } - catch (FileNotFoundException) - { - //Currently examine is throwing FileNotFound exceptions when we have a loadbalanced filestore and a node is published in umbraco - //See this thread: http://examine.cdodeplex.com/discussions/264341 - //Catch the exception here for the time being, and just fallback to GetMedia - //TODO: Need to fix examine in LB scenarios! - } + try + { + //by default use the InternalSearcher + return eMgr.SearchProviderCollection["InternalSearcher"]; + } + catch (FileNotFoundException) + { + //Currently examine is throwing FileNotFound exceptions when we have a loadbalanced filestore and a node is published in umbraco + //See this thread: http://examine.cdodeplex.com/discussions/264341 + //Catch the exception here for the time being, and just fallback to GetMedia + //TODO: Need to fix examine in LB scenarios! + } + catch (NullReferenceException) + { + //This will occur when the search provider cannot be initialized. In newer examine versions the initialization is lazy and therefore + // the manager will return the singleton without throwing initialization errors, however if examine isn't configured correctly a null + // reference error will occur because the examine settings are null. + } } return null; } diff --git a/src/UmbracoExamine/BaseUmbracoIndexer.cs b/src/UmbracoExamine/BaseUmbracoIndexer.cs index aa0a5c0b63..48fcb85699 100644 --- a/src/UmbracoExamine/BaseUmbracoIndexer.cs +++ b/src/UmbracoExamine/BaseUmbracoIndexer.cs @@ -202,8 +202,9 @@ namespace UmbracoExamine //if temp local storage is configured use that, otherwise return the default if (_localTempStorageHelper.LuceneDirectory != null) { - return new IndexWriter(GetLuceneDirectory(), IndexingAnalyzer, - DeletePolicyTracker.Current.GetPolicy(IndexSetName), + var directory = GetLuceneDirectory(); + return new IndexWriter(directory, IndexingAnalyzer, + DeletePolicyTracker.Current.GetPolicy(directory), IndexWriter.MaxFieldLength.UNLIMITED); } diff --git a/src/UmbracoExamine/DeletePolicyTracker.cs b/src/UmbracoExamine/DeletePolicyTracker.cs index d002cc108d..3edcd12a24 100644 --- a/src/UmbracoExamine/DeletePolicyTracker.cs +++ b/src/UmbracoExamine/DeletePolicyTracker.cs @@ -14,9 +14,9 @@ namespace UmbracoExamine get { return Instance; } } - public IndexDeletionPolicy GetPolicy(string indexSetName) + public IndexDeletionPolicy GetPolicy(Lucene.Net.Store.Directory directory) { - var resolved = _directories.GetOrAdd(indexSetName, s => new SnapshotDeletionPolicy(new KeepOnlyLastCommitDeletionPolicy())); + var resolved = _directories.GetOrAdd(directory.GetLockID(), s => new SnapshotDeletionPolicy(new KeepOnlyLastCommitDeletionPolicy())); return resolved; } } diff --git a/src/UmbracoExamine/UmbracoExamineSearcher.cs b/src/UmbracoExamine/UmbracoExamineSearcher.cs index 437e5c5220..7d5c8b7776 100644 --- a/src/UmbracoExamine/UmbracoExamineSearcher.cs +++ b/src/UmbracoExamine/UmbracoExamineSearcher.cs @@ -170,9 +170,10 @@ namespace UmbracoExamine protected override IndexReader OpenNewReader() { + var directory = GetLuceneDirectory(); return IndexReader.Open( - GetLuceneDirectory(), - DeletePolicyTracker.Current.GetPolicy(IndexSetName), + directory, + DeletePolicyTracker.Current.GetPolicy(directory), true); } diff --git a/src/umbraco.businesslogic/ui.cs b/src/umbraco.businesslogic/ui.cs index e6bfbb2435..5f2579d9ec 100644 --- a/src/umbraco.businesslogic/ui.cs +++ b/src/umbraco.businesslogic/ui.cs @@ -38,6 +38,8 @@ namespace umbraco [Obsolete("Get the current culture/language from the currently logged in IUser, the IUser object is available on most Umbraco base classes and on the UmbracoContext")] public static string Culture(User u) { + if (ApplicationContext.Current == null) return string.Empty; + var found = UserExtensions.GetUserCulture(u.Language, ApplicationContext.Current.Services.TextService); return found == null ? string.Empty : found.Name; } @@ -46,6 +48,8 @@ namespace umbraco [Obsolete("Get the current culture/language from the currently logged in IUser, the IUser object is available on most Umbraco base classes and on the UmbracoContext")] internal static string Culture(IUser u) { + if (ApplicationContext.Current == null) return string.Empty; + var found = u.GetUserCulture(ApplicationContext.Current.Services.TextService); return found == null ? string.Empty : found.Name; } @@ -94,11 +98,15 @@ namespace umbraco /// public static string Text(string Key, User u) { + if (ApplicationContext.Current == null) return "[" + Key + "]"; + return ApplicationContext.Current.Services.TextService.Localize(Key, GetCultureFromUserLanguage(GetLanguage(u))); } internal static string Text(string key, IUser u) { + if (ApplicationContext.Current == null) return "[" + key + "]"; + return ApplicationContext.Current.Services.TextService.Localize(key, GetCultureFromUserLanguage(GetLanguage(u))); } @@ -109,6 +117,8 @@ namespace umbraco /// public static string Text(string Key) { + if (ApplicationContext.Current == null) return "[" + Key + "]"; + return ApplicationContext.Current.Services.TextService.Localize(Key, GetCultureFromUserLanguage(GetLanguage())); } @@ -121,6 +131,8 @@ namespace umbraco /// public static string Text(string Area, string Key, User u) { + if (ApplicationContext.Current == null) return "[" + Key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", Area, Key), GetCultureFromUserLanguage(GetLanguage(u))); @@ -128,6 +140,8 @@ namespace umbraco public static string Text(string area, string key, IUser u) { + if (ApplicationContext.Current == null) return "[" + key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", area, key), GetCultureFromUserLanguage(GetLanguage(u))); @@ -141,6 +155,8 @@ namespace umbraco /// public static string Text(string Area, string Key) { + if (ApplicationContext.Current == null) return "[" + Key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", Area, Key), GetCultureFromUserLanguage(GetLanguage())); @@ -156,6 +172,8 @@ namespace umbraco /// public static string Text(string Area, string Key, string[] Variables, User u) { + if (ApplicationContext.Current == null) return "[" + Key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", Area, Key), GetCultureFromUserLanguage(GetLanguage(u)), @@ -164,6 +182,8 @@ namespace umbraco internal static string Text(string area, string key, string[] variables) { + if (ApplicationContext.Current == null) return "[" + key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", area, key), GetCultureFromUserLanguage(GetLanguage()), @@ -172,6 +192,8 @@ namespace umbraco internal static string Text(string area, string key, string[] variables, IUser u) { + if (ApplicationContext.Current == null) return "[" + key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", area, key), GetCultureFromUserLanguage(GetLanguage(u)), @@ -188,6 +210,8 @@ namespace umbraco /// public static string Text(string Area, string Key, string Variable, User u) { + if (ApplicationContext.Current == null) return "[" + Key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", Area, Key), GetCultureFromUserLanguage(GetLanguage(u)), @@ -196,6 +220,8 @@ namespace umbraco internal static string Text(string area, string key, string variable) { + if (ApplicationContext.Current == null) return "[" + key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", area, key), GetCultureFromUserLanguage(GetLanguage()), @@ -204,6 +230,8 @@ namespace umbraco internal static string Text(string area, string key, string variable, IUser u) { + if (ApplicationContext.Current == null) return "[" + key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", area, key), GetCultureFromUserLanguage(GetLanguage(u)), @@ -228,6 +256,8 @@ namespace umbraco /// public static string GetText(string area, string key) { + if (ApplicationContext.Current == null) return "[" + key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", area, key), GetCultureFromUserLanguage(GetLanguage())); @@ -242,6 +272,8 @@ namespace umbraco /// public static string GetText(string area, string key, string[] variables) { + if (ApplicationContext.Current == null) return "[" + key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", area, key), GetCultureFromUserLanguage(GetLanguage()), @@ -257,6 +289,8 @@ namespace umbraco /// public static string GetText(string area, string key, string variable) { + if (ApplicationContext.Current == null) return "[" + key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", area, key), GetCultureFromUserLanguage(GetLanguage()), @@ -274,6 +308,8 @@ namespace umbraco /// This is the underlying call for all Text/GetText method calls public static string GetText(string area, string key, string[] variables, string language) { + if (ApplicationContext.Current == null) return "[" + key + "]"; + return ApplicationContext.Current.Services.TextService.Localize( string.Format("{0}/{1}", area, key), GetCultureFromUserLanguage(GetLanguage()), From 6b25e5299fb190e99692c0edf5a7774adb2f6c0d Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 7 Jan 2015 15:43:47 +1100 Subject: [PATCH 297/310] fixes unit test --- src/Umbraco.Tests/BusinessLogic/ApplicationTreeTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Tests/BusinessLogic/ApplicationTreeTest.cs b/src/Umbraco.Tests/BusinessLogic/ApplicationTreeTest.cs index 109e8178cf..c9be4edc53 100644 --- a/src/Umbraco.Tests/BusinessLogic/ApplicationTreeTest.cs +++ b/src/Umbraco.Tests/BusinessLogic/ApplicationTreeTest.cs @@ -32,7 +32,7 @@ namespace Umbraco.Tests.BusinessLogic Assert.IsNotNull(app); //create the new app tree assigned to the new app - ApplicationTree.MakeNew(false, false, 0, app.alias, name, name, "icon.jpg", "icon.jpg", "nullassembly", "nulltype", string.Empty); + ApplicationTree.MakeNew(false, false, 0, app.alias, name, name, "icon.jpg", "icon.jpg", "", "umbraco.loadContent, umbraco", string.Empty); var tree = ApplicationTree.getByAlias(name); Assert.IsNotNull(tree); From 4c5cc93a67de8332036de2e190397b79fb01533a Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Wed, 7 Jan 2015 11:28:23 +0100 Subject: [PATCH 298/310] U4-6052 Umbraco 7.2.1 web app installed with Nuget fails at start with error :"Cannot create an MVC Area path without the umbracoPath specified" #U4-6052 In Progress --- build/NuSpecs/tools/install.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/NuSpecs/tools/install.ps1 b/build/NuSpecs/tools/install.ps1 index 9c7fa57f82..5b9aee0dfb 100644 --- a/build/NuSpecs/tools/install.ps1 +++ b/build/NuSpecs/tools/install.ps1 @@ -118,7 +118,7 @@ if ($project) { $lines = $lastOperation -split "`r`n" - $installMatch = $lines | ? { $_.StartsWith("------- installing...umbracocms ") } | select -first 1 + $installMatch = $lines | ? { $_.Contains("...umbracocms ") } | select -first 1 if ($installMatch) { From a1bca2eba15857287736d88749d92d0ca2a2883f Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 7 Jan 2015 19:25:09 -0800 Subject: [PATCH 299/310] Fixed a syntax error in the spelling of the name of the method GetAllManifestFileContents(..). --- src/Umbraco.Core/Manifest/ManifestParser.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Core/Manifest/ManifestParser.cs b/src/Umbraco.Core/Manifest/ManifestParser.cs index 49839828fd..fbc91de898 100644 --- a/src/Umbraco.Core/Manifest/ManifestParser.cs +++ b/src/Umbraco.Core/Manifest/ManifestParser.cs @@ -60,7 +60,7 @@ namespace Umbraco.Core.Manifest public IEnumerable GetManifests() { //get all Manifest.js files in the appropriate folders - var manifestFileContents = GetAllManfifestFileContents(_pluginsDir); + var manifestFileContents = GetAllManifestFileContents(_pluginsDir); return CreateManifests(manifestFileContents.ToArray()); } @@ -69,7 +69,7 @@ namespace Umbraco.Core.Manifest ///
    /// /// - private IEnumerable GetAllManfifestFileContents(DirectoryInfo currDir) + private IEnumerable GetAllManifestFileContents(DirectoryInfo currDir) { var depth = FolderDepth(_pluginsDir, currDir); @@ -79,7 +79,7 @@ namespace Umbraco.Core.Manifest var result = new List(); foreach (var d in dirs) { - result.AddRange(GetAllManfifestFileContents(d)); + result.AddRange(GetAllManifestFileContents(d)); } return result; } From 6457a1a2cae53e4d47f1ebcc3b396bdfb951eb01 Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 9 Jan 2015 19:15:01 +1100 Subject: [PATCH 300/310] Fixes: U4-6088 Publicize all partial view methods on IFileService & U4-6087 Fix Partial View macro repository usage so that when a macro is created from the FileService, the MacroService events are raised Conflicts: src/Umbraco.Core/Umbraco.Core.csproj --- src/Umbraco.Core/Models/IPartialView.cs | 7 + src/Umbraco.Core/Models/Macro.cs | 7 +- src/Umbraco.Core/Models/PartialView.cs | 2 +- .../Repositories/FileRepository.cs | 4 +- .../Interfaces/IPartialViewMacroRepository.cs | 13 - .../Interfaces/IPartialViewRepository.cs | 5 +- .../PartialViewMacroRepository.cs | 27 +- .../Repositories/PartialViewRepository.cs | 6 +- .../Persistence/RepositoryFactory.cs | 4 +- src/Umbraco.Core/Services/FileService.cs | 289 +++++++----------- src/Umbraco.Core/Services/IFileService.cs | 12 + src/Umbraco.Core/Services/MacroService.cs | 2 + src/Umbraco.Core/Umbraco.Core.csproj | 2 +- .../umbraco/create/PartialViewTasksBase.cs | 19 +- 14 files changed, 165 insertions(+), 234 deletions(-) create mode 100644 src/Umbraco.Core/Models/IPartialView.cs delete mode 100644 src/Umbraco.Core/Persistence/Repositories/Interfaces/IPartialViewMacroRepository.cs diff --git a/src/Umbraco.Core/Models/IPartialView.cs b/src/Umbraco.Core/Models/IPartialView.cs new file mode 100644 index 0000000000..01127ce22a --- /dev/null +++ b/src/Umbraco.Core/Models/IPartialView.cs @@ -0,0 +1,7 @@ +namespace Umbraco.Core.Models +{ + public interface IPartialView : IFile + { + + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Models/Macro.cs b/src/Umbraco.Core/Models/Macro.cs index eb8e0b7a66..0c86f5d1fe 100644 --- a/src/Umbraco.Core/Models/Macro.cs +++ b/src/Umbraco.Core/Models/Macro.cs @@ -9,6 +9,7 @@ using System.Runtime.Serialization; using System.Text.RegularExpressions; using Umbraco.Core.IO; using Umbraco.Core.Models.EntityBase; +using Umbraco.Core.Strings; namespace Umbraco.Core.Models { @@ -48,7 +49,7 @@ namespace Umbraco.Core.Models Id = id; UseInEditor = useInEditor; CacheDuration = cacheDuration; - Alias = alias; + Alias = alias.ToCleanString(CleanStringType.Alias); Name = name; ControlType = controlType; ControlAssembly = controlAssembly; @@ -87,7 +88,7 @@ namespace Umbraco.Core.Models { UseInEditor = useInEditor; CacheDuration = cacheDuration; - Alias = alias; + Alias = alias.ToCleanString(CleanStringType.Alias); Name = name; ControlType = controlType; ControlAssembly = controlAssembly; @@ -207,7 +208,7 @@ namespace Umbraco.Core.Models { SetPropertyValueAndDetectChanges(o => { - _alias = value; + _alias = value.ToCleanString(CleanStringType.Alias); return _alias; }, _alias, AliasSelector); } diff --git a/src/Umbraco.Core/Models/PartialView.cs b/src/Umbraco.Core/Models/PartialView.cs index e470d55037..0f0279d8d3 100644 --- a/src/Umbraco.Core/Models/PartialView.cs +++ b/src/Umbraco.Core/Models/PartialView.cs @@ -26,7 +26,7 @@ namespace Umbraco.Core.Models ///
    [Serializable] [DataContract(IsReference = true)] - internal class PartialView : File + public class PartialView : File, IPartialView { //public PartialView(): base(string.Empty) //{ diff --git a/src/Umbraco.Core/Persistence/Repositories/FileRepository.cs b/src/Umbraco.Core/Persistence/Repositories/FileRepository.cs index fbd37ea890..4020dbb713 100644 --- a/src/Umbraco.Core/Persistence/Repositories/FileRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/FileRepository.cs @@ -33,12 +33,12 @@ namespace Umbraco.Core.Persistence.Repositories get { return _fileSystem; } } - internal virtual void AddFolder(string folderPath) + public virtual void AddFolder(string folderPath) { _work.RegisterAdded(new Folder(folderPath), this); } - internal virtual void DeleteFolder(string folderPath) + public virtual void DeleteFolder(string folderPath) { _work.RegisterRemoved(new Folder(folderPath), this); } diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IPartialViewMacroRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IPartialViewMacroRepository.cs deleted file mode 100644 index 2d05af7438..0000000000 --- a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IPartialViewMacroRepository.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Umbraco.Core.Models; - -namespace Umbraco.Core.Persistence.Repositories -{ - internal interface IPartialViewMacroRepository : IPartialViewRepository - { - /// - /// Adds or Updates an associated macro - /// - /// - void AddOrUpdate(IMacro macro); - } -} \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IPartialViewRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IPartialViewRepository.cs index f5e5a80a95..8ba28eeaee 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IPartialViewRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IPartialViewRepository.cs @@ -2,8 +2,9 @@ namespace Umbraco.Core.Persistence.Repositories { - internal interface IPartialViewRepository : IRepository + internal interface IPartialViewRepository : IRepository { - + void AddFolder(string folderPath); + void DeleteFolder(string folderPath); } } \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/Repositories/PartialViewMacroRepository.cs b/src/Umbraco.Core/Persistence/Repositories/PartialViewMacroRepository.cs index e9a1b5f457..f4d6906cd1 100644 --- a/src/Umbraco.Core/Persistence/Repositories/PartialViewMacroRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/PartialViewMacroRepository.cs @@ -5,37 +5,18 @@ using Umbraco.Core.Persistence.UnitOfWork; namespace Umbraco.Core.Persistence.Repositories { - internal class PartialViewMacroRepository : PartialViewRepository, IPartialViewMacroRepository + internal class PartialViewMacroRepository : PartialViewRepository { - private readonly IMacroRepository _macroRepository; - public PartialViewMacroRepository(IUnitOfWork work, IMacroRepository macroRepository) - : this(work, new PhysicalFileSystem(SystemDirectories.MvcViews + "/MacroPartials/"), macroRepository) + public PartialViewMacroRepository(IUnitOfWork work) + : this(work, new PhysicalFileSystem(SystemDirectories.MvcViews + "/MacroPartials/")) { } - public PartialViewMacroRepository(IUnitOfWork work, IFileSystem fileSystem, IMacroRepository macroRepository) + public PartialViewMacroRepository(IUnitOfWork work, IFileSystem fileSystem) : base(work, fileSystem) { - _macroRepository = macroRepository; } - /// - /// Ensure the macro repo is disposed which contains a database UOW - /// - protected override void DisposeResources() - { - base.DisposeResources(); - _macroRepository.Dispose(); - } - - /// - /// Adds or updates a macro associated with the partial view - /// - /// - public void AddOrUpdate(IMacro macro) - { - _macroRepository.AddOrUpdate(macro); - } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/Repositories/PartialViewRepository.cs b/src/Umbraco.Core/Persistence/Repositories/PartialViewRepository.cs index 8ef4c5ec43..b98b284a1f 100644 --- a/src/Umbraco.Core/Persistence/Repositories/PartialViewRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/PartialViewRepository.cs @@ -9,7 +9,7 @@ using Umbraco.Core.Persistence.UnitOfWork; namespace Umbraco.Core.Persistence.Repositories { - internal class PartialViewRepository : FileRepository, IPartialViewRepository + internal class PartialViewRepository : FileRepository, IPartialViewRepository { public PartialViewRepository(IUnitOfWork work) : this(work, new PhysicalFileSystem(SystemDirectories.MvcViews + "/Partials/")) @@ -20,7 +20,7 @@ namespace Umbraco.Core.Persistence.Repositories { } - public override PartialView Get(string id) + public override IPartialView Get(string id) { if (FileSystem.FileExists(id) == false) { @@ -59,7 +59,7 @@ namespace Umbraco.Core.Persistence.Repositories return script; } - public override IEnumerable GetAll(params string[] ids) + public override IEnumerable GetAll(params string[] ids) { //ensure they are de-duplicated, easy win if people don't do this as this can cause many excess queries ids = ids.Distinct().ToArray(); diff --git a/src/Umbraco.Core/Persistence/RepositoryFactory.cs b/src/Umbraco.Core/Persistence/RepositoryFactory.cs index f549617d86..1a8752739f 100644 --- a/src/Umbraco.Core/Persistence/RepositoryFactory.cs +++ b/src/Umbraco.Core/Persistence/RepositoryFactory.cs @@ -149,9 +149,9 @@ namespace Umbraco.Core.Persistence return new PartialViewRepository(uow); } - internal virtual IPartialViewMacroRepository CreatePartialViewMacroRepository(IUnitOfWork uow, IDatabaseUnitOfWork duow) + internal virtual IPartialViewRepository CreatePartialViewMacroRepository(IUnitOfWork uow) { - return new PartialViewMacroRepository(uow, CreateMacroRepository(duow)); + return new PartialViewMacroRepository(uow); } public virtual IStylesheetRepository CreateStylesheetRepository(IUnitOfWork uow, IDatabaseUnitOfWork db) diff --git a/src/Umbraco.Core/Services/FileService.cs b/src/Umbraco.Core/Services/FileService.cs index 68b695ac1f..56f7d3a07b 100644 --- a/src/Umbraco.Core/Services/FileService.cs +++ b/src/Umbraco.Core/Services/FileService.cs @@ -388,7 +388,7 @@ namespace Umbraco.Core.Services #region Partial Views - internal IEnumerable GetPartialViewSnippetNames(params string[] filterNames) + public IEnumerable GetPartialViewSnippetNames(params string[] filterNames) { var snippetPath = IOHelper.MapPath(string.Format("{0}/PartialViewMacros/Templates/", SystemDirectories.Umbraco)); var files = Directory.GetFiles(snippetPath, "*.cshtml") @@ -404,7 +404,7 @@ namespace Umbraco.Core.Services return empty.Union(files.Except(empty)); } - internal void DeletePartialViewFolder(string folderPath) + public void DeletePartialViewFolder(string folderPath) { var uow = _fileUowProvider.GetUnitOfWork(); using (var repository = _repositoryFactory.CreatePartialViewRepository(uow)) @@ -414,18 +414,17 @@ namespace Umbraco.Core.Services } } - internal void DeletePartialViewMacroFolder(string folderPath) + public void DeletePartialViewMacroFolder(string folderPath) { var uow = _fileUowProvider.GetUnitOfWork(); - var duow = _dataUowProvider.GetUnitOfWork(); - using (var repository = _repositoryFactory.CreatePartialViewMacroRepository(uow, duow)) + using (var repository = _repositoryFactory.CreatePartialViewMacroRepository(uow)) { ((PartialViewMacroRepository)repository).DeleteFolder(folderPath); uow.Commit(); } } - internal PartialView GetPartialView(string path) + public IPartialView GetPartialView(string path) { using (var repository = _repositoryFactory.CreatePartialViewRepository(_fileUowProvider.GetUnitOfWork())) { @@ -433,20 +432,44 @@ namespace Umbraco.Core.Services } } - internal PartialView GetPartialViewMacro(string path) + public IPartialView GetPartialViewMacro(string path) { - using (var repository = _repositoryFactory.CreatePartialViewMacroRepository( - _fileUowProvider.GetUnitOfWork(), - _dataUowProvider.GetUnitOfWork())) + using (var repository = _repositoryFactory.CreatePartialViewMacroRepository(_fileUowProvider.GetUnitOfWork())) { return repository.Get(path); } } - internal Attempt CreatePartialView(PartialView partialView, string snippetName = null, int userId = 0) + public Attempt CreatePartialView(IPartialView partialView, string snippetName = null, int userId = 0) { - if (CreatingPartialView.IsRaisedEventCancelled(new NewEventArgs(partialView, true, partialView.Alias, -1), this)) - return Attempt.Fail(); + return CreatePartialViewMacro(partialView, PartialViewType.PartialView, snippetName, userId); + } + + public Attempt CreatePartialViewMacro(IPartialView partialView, string snippetName = null, int userId = 0) + { + return CreatePartialViewMacro(partialView, PartialViewType.PartialViewMacro, snippetName, userId); + } + + private Attempt CreatePartialViewMacro(IPartialView partialView, PartialViewType partialViewType, string snippetName = null, int userId = 0) + { + if (CreatingPartialView.IsRaisedEventCancelled(new NewEventArgs(partialView, true, partialView.Alias, -1), this)) + return Attempt.Fail(); + + var uow = _fileUowProvider.GetUnitOfWork(); + string partialViewHeader = null; + IPartialViewRepository repository; + switch (partialViewType) + { + case PartialViewType.PartialView: + repository = _repositoryFactory.CreatePartialViewRepository(uow); + partialViewHeader = PartialViewHeader; + break; + case PartialViewType.PartialViewMacro: + default: + repository = _repositoryFactory.CreatePartialViewMacroRepository(uow); + partialViewHeader = PartialViewMacroHeader; + break; + } if (snippetName.IsNullOrWhiteSpace() == false) { @@ -463,213 +486,114 @@ namespace Umbraco.Core.Services //strip the @inherits if it's there snippetContent = StripPartialViewHeader(snippetContent); - - var content = string.Format("{0}{1}{2}", PartialViewHeader, Environment.NewLine, snippetContent); + + var content = string.Format("{0}{1}{2}", + partialViewHeader, + Environment.NewLine, snippetContent); partialView.Content = content; } } - var uow = _fileUowProvider.GetUnitOfWork(); - using (var repository = _repositoryFactory.CreatePartialViewRepository(uow)) + using (repository) { repository.AddOrUpdate(partialView); uow.Commit(); - CreatedPartialView.RaiseEvent(new NewEventArgs(partialView, false, partialView.Alias, -1), this); + CreatedPartialView.RaiseEvent(new NewEventArgs(partialView, false, partialView.Alias, -1), this); } - Audit.Add(AuditTypes.Save, string.Format("Save PartialView performed by user"), userId, -1); + Audit.Add(AuditTypes.Save, string.Format("Save {0} performed by user", partialViewType), userId, -1); - return Attempt.Succeed(partialView); + return Attempt.Succeed(partialView); } - internal Attempt CreatePartialViewMacro(PartialView partialView, bool createMacro, string snippetName = null, int userId = 0) + public bool DeletePartialView(string path, int userId = 0) { - if (CreatingPartialView.IsRaisedEventCancelled(new NewEventArgs(partialView, true, partialView.Alias, -1), this)) - return Attempt.Fail(); - - if (snippetName.IsNullOrWhiteSpace() == false) - { - //create the file - var snippetPathAttempt = TryGetSnippetPath(snippetName); - if (snippetPathAttempt.Success == false) - { - throw new InvalidOperationException("Could not load snippet with name " + snippetName); - } - - using (var snippetFile = new StreamReader(System.IO.File.OpenRead(snippetPathAttempt.Result))) - { - var snippetContent = snippetFile.ReadToEnd().Trim(); - - //strip the @inherits if it's there - snippetContent = StripPartialViewHeader(snippetContent); - - var content = string.Format("{0}{1}{2}", PartialViewMacroHeader, Environment.NewLine, snippetContent); - partialView.Content = content; - } - } - - var uow = _fileUowProvider.GetUnitOfWork(); - var duow = _dataUowProvider.GetUnitOfWork(); - using (var repository = _repositoryFactory.CreatePartialViewMacroRepository(uow, duow)) - { - repository.AddOrUpdate(partialView); - - if (createMacro) - { - var name = Path.GetFileNameWithoutExtension(partialView.Path) - .SplitPascalCasing() - .ToFirstUpperInvariant() - .ToSafeAlias(false); - - //The partial view path to be saved with the macro must be a fully qualified virtual path - var virtualPath = string.Format("{0}/{1}/{2}", SystemDirectories.MvcViews, "MacroPartials", partialView.Path); - - repository.AddOrUpdate(new Macro(name, name) { ScriptPath = virtualPath }); - } - - //commit both - ensure that the macro is created if one was added - uow.Commit(); - duow.Commit(); - - CreatedPartialView.RaiseEvent(new NewEventArgs(partialView, false, partialView.Alias, -1), this); - } - - Audit.Add(AuditTypes.Save, string.Format("Save PartialViewMacro performed by user"), userId, -1); - - return Attempt.Succeed(partialView); + return DeletePartialViewMacro(path, PartialViewType.PartialView, userId); } - internal bool DeletePartialView(string path, int userId = 0) + public bool DeletePartialViewMacro(string path, int userId = 0) + { + return DeletePartialViewMacro(path, PartialViewType.PartialViewMacro, userId); + } + + private bool DeletePartialViewMacro(string path, PartialViewType partialViewType, int userId = 0) { var uow = _fileUowProvider.GetUnitOfWork(); - using (var repository = _repositoryFactory.CreatePartialViewRepository(uow)) + + IPartialViewRepository repository; + switch (partialViewType) + { + case PartialViewType.PartialView: + repository = _repositoryFactory.CreatePartialViewRepository(uow); + break; + case PartialViewType.PartialViewMacro: + default: + repository = _repositoryFactory.CreatePartialViewMacroRepository(uow); + break; + } + + using (repository) { var partialView = repository.Get(path); if (partialView == null) return true; - if (DeletingPartialView.IsRaisedEventCancelled(new DeleteEventArgs(partialView), this)) + if (DeletingPartialView.IsRaisedEventCancelled(new DeleteEventArgs(partialView), this)) return false; repository.Delete(partialView); uow.Commit(); - DeletedPartialView.RaiseEvent(new DeleteEventArgs(partialView, false), this); + DeletedPartialView.RaiseEvent(new DeleteEventArgs(partialView, false), this); - Audit.Add(AuditTypes.Delete, string.Format("Delete PartialView performed by user"), userId, -1); + Audit.Add(AuditTypes.Delete, string.Format("Delete {0} performed by user", partialViewType), userId, -1); } return true; } - internal bool DeletePartialViewMacro(string path, int userId = 0) + public Attempt SavePartialView(IPartialView partialView, int userId = 0) { - var uow = _fileUowProvider.GetUnitOfWork(); - var duow = _dataUowProvider.GetUnitOfWork(); - using (var repository = _repositoryFactory.CreatePartialViewMacroRepository(uow, duow)) - { - var partialView = repository.Get(path); - if (partialView == null) - return true; - - if (DeletingPartialView.IsRaisedEventCancelled(new DeleteEventArgs(partialView), this)) - return false; - - repository.Delete(partialView); - - //commit both (though in the case of deleting, there's no db changes) - uow.Commit(); - duow.Commit(); - - DeletedPartialView.RaiseEvent(new DeleteEventArgs(partialView, false), this); - - Audit.Add(AuditTypes.Delete, string.Format("Delete PartialViewMacro performed by user"), userId, -1); - } - - return true; - + return SavePartialView(partialView, PartialViewType.PartialView, userId); } - internal Attempt SavePartialView(PartialView partialView, int userId = 0) + public Attempt SavePartialViewMacro(IPartialView partialView, int userId = 0) { - if (SavingPartialView.IsRaisedEventCancelled(new SaveEventArgs(partialView), this)) - return Attempt.Fail(); + return SavePartialView(partialView, PartialViewType.PartialViewMacro, userId); + } + + private Attempt SavePartialView(IPartialView partialView, PartialViewType partialViewType, int userId = 0) + { + if (SavingPartialView.IsRaisedEventCancelled(new SaveEventArgs(partialView), this)) + return Attempt.Fail(); var uow = _fileUowProvider.GetUnitOfWork(); - using (var repository = _repositoryFactory.CreatePartialViewRepository(uow)) + + IPartialViewRepository repository; + switch (partialViewType) + { + case PartialViewType.PartialView: + repository = _repositoryFactory.CreatePartialViewRepository(uow); + break; + case PartialViewType.PartialViewMacro: + default: + repository = _repositoryFactory.CreatePartialViewMacroRepository(uow); + break; + } + + using (repository) { repository.AddOrUpdate(partialView); uow.Commit(); - SavedPartialView.RaiseEvent(new SaveEventArgs(partialView, false), this); + SavedPartialView.RaiseEvent(new SaveEventArgs(partialView, false), this); } - Audit.Add(AuditTypes.Save, string.Format("Save PartialView performed by user"), userId, -1); + Audit.Add(AuditTypes.Save, string.Format("Save {0} performed by user", partialViewType), userId, -1); - ////NOTE: I've left the below here just for informational purposes. If we save a file this way, then the UTF8 - //// BOM mucks everything up, strangely, if we use WriteAllText everything is ok! - //// http://issues.umbraco.org/issue/U4-2118 - ////using (var sw = System.IO.File.CreateText(savePath)) - ////{ - //// sw.Write(val); - ////} - - //System.IO.File.WriteAllText(partialView.Path, partialView.Content, Encoding.UTF8); - ////deletes the old file - //if (partialView.FileName != partialView.OldFileName) - //{ - // // Create a new PartialView class so that we can set the FileName of the file that needs deleting - // var deletePartial = partialView; - // deletePartial.FileName = partialView.OldFileName; - // DeletePartialView(deletePartial, userId); - //} - - //SavedPartialView.RaiseEvent(new SaveEventArgs(partialView), this); - - return Attempt.Succeed(partialView); - } - - internal Attempt SavePartialViewMacro(PartialView partialView, int userId = 0) - { - if (SavingPartialView.IsRaisedEventCancelled(new SaveEventArgs(partialView), this)) - return Attempt.Fail(); - - var uow = _fileUowProvider.GetUnitOfWork(); - var duow = _dataUowProvider.GetUnitOfWork(); - using (var repository = _repositoryFactory.CreatePartialViewMacroRepository(uow, duow)) - { - repository.AddOrUpdate(partialView); - - //commit both (though in the case of updating, there's no db changes) - uow.Commit(); - duow.Commit(); - - SavedPartialView.RaiseEvent(new SaveEventArgs(partialView, false), this); - } - - Audit.Add(AuditTypes.Save, string.Format("Save PartialViewMacro performed by user"), userId, -1); - - ////NOTE: I've left the below here just for informational purposes. If we save a file this way, then the UTF8 - //// BOM mucks everything up, strangely, if we use WriteAllText everything is ok! - //// http://issues.umbraco.org/issue/U4-2118 - ////using (var sw = System.IO.File.CreateText(savePath)) - ////{ - //// sw.Write(val); - ////} - - //System.IO.File.WriteAllText(partialView.Path, partialView.Content, Encoding.UTF8); - ////deletes the old file - //if (partialView.FileName != partialView.OldFileName) - //{ - // // Create a new PartialView class so that we can set the FileName of the file that needs deleting - // var deletePartial = partialView; - // deletePartial.FileName = partialView.OldFileName; - // DeletePartialView(deletePartial, userId); - //} - - //SavedPartialView.RaiseEvent(new SaveEventArgs(partialView), this); + SavedPartialView.RaiseEvent(new SaveEventArgs(partialView), this); return Attempt.Succeed(partialView); } @@ -696,7 +620,14 @@ namespace Umbraco.Core.Services return System.IO.File.Exists(snippetPath) ? Attempt.Succeed(snippetPath) : Attempt.Fail(); - } + } + + private enum PartialViewType + { + PartialView, + PartialViewMacro + } + #endregion //TODO Method to change name and/or alias of view/masterpage template @@ -765,32 +696,32 @@ namespace Umbraco.Core.Services /// /// Occurs before Save /// - internal static event TypedEventHandler> SavingPartialView; + public static event TypedEventHandler> SavingPartialView; /// /// Occurs after Save /// - internal static event TypedEventHandler> SavedPartialView; + public static event TypedEventHandler> SavedPartialView; /// /// Occurs before Create /// - internal static event TypedEventHandler> CreatingPartialView; + public static event TypedEventHandler> CreatingPartialView; /// /// Occurs after Create /// - internal static event TypedEventHandler> CreatedPartialView; + public static event TypedEventHandler> CreatedPartialView; /// /// Occurs before Delete /// - internal static event TypedEventHandler> DeletingPartialView; + public static event TypedEventHandler> DeletingPartialView; /// /// Occurs after Delete /// - internal static event TypedEventHandler> DeletedPartialView; + public static event TypedEventHandler> DeletedPartialView; #endregion diff --git a/src/Umbraco.Core/Services/IFileService.cs b/src/Umbraco.Core/Services/IFileService.cs index 9bcce63373..924fb0c093 100644 --- a/src/Umbraco.Core/Services/IFileService.cs +++ b/src/Umbraco.Core/Services/IFileService.cs @@ -8,6 +8,18 @@ namespace Umbraco.Core.Services ///
    public interface IFileService : IService { + IEnumerable GetPartialViewSnippetNames(params string[] filterNames); + void DeletePartialViewFolder(string folderPath); + void DeletePartialViewMacroFolder(string folderPath); + IPartialView GetPartialView(string path); + IPartialView GetPartialViewMacro(string path); + Attempt CreatePartialView(IPartialView partialView, string snippetName = null, int userId = 0); + Attempt CreatePartialViewMacro(IPartialView partialView, string snippetName = null, int userId = 0); + bool DeletePartialView(string path, int userId = 0); + bool DeletePartialViewMacro(string path, int userId = 0); + Attempt SavePartialView(IPartialView partialView, int userId = 0); + Attempt SavePartialViewMacro(IPartialView partialView, int userId = 0); + /// /// Gets a list of all objects /// diff --git a/src/Umbraco.Core/Services/MacroService.cs b/src/Umbraco.Core/Services/MacroService.cs index fcfbe6d87a..2cff1fcf1a 100644 --- a/src/Umbraco.Core/Services/MacroService.cs +++ b/src/Umbraco.Core/Services/MacroService.cs @@ -209,5 +209,7 @@ namespace Umbraco.Core.Services ///
    public static event TypedEventHandler> Saved; #endregion + + } } \ No newline at end of file diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index 7bd9b9ee1a..56a7d3e5b0 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -316,6 +316,7 @@ + @@ -403,7 +404,6 @@ - diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasksBase.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasksBase.cs index 51cff29f25..793a4e3e07 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasksBase.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewTasksBase.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using Umbraco.Core.CodeAnnotations; using Umbraco.Core.Configuration; using Umbraco.Core.IO; @@ -43,9 +44,10 @@ namespace umbraco { fileName += ".cshtml"; } - + var model = new PartialView(fileName); var fileService = (FileService)ApplicationContext.Current.Services.FileService; + var macroService = ApplicationContext.Current.Services.MacroService; if (IsPartialViewMacro == false) { @@ -59,8 +61,15 @@ namespace umbraco return attempt.Success; } else - { - var attempt = fileService.CreatePartialViewMacro(model, ParentID == 1, snippetName, User.Id); + { + + var attempt = fileService.CreatePartialViewMacro(model, /*ParentID == 1,*/ snippetName, User.Id); + if (attempt) + { + //The partial view path to be saved with the macro must be a fully qualified virtual path + var virtualPath = string.Format("{0}/{1}/{2}", SystemDirectories.MvcViews, "MacroPartials", attempt.Result.Path); + macroService.Save(new Macro(attempt.Result.Alias, attempt.Result.Alias) { ScriptPath = virtualPath }); + } //TODO: We currently need to hack this because we are using the same editor for views, partial views, partial view macros and // the editor is using normal UI whereas the partial view repo and these classes are using IFileSystem with relative references @@ -69,13 +78,13 @@ namespace umbraco _returnUrl = string.Format("settings/views/EditView.aspx?treeType=partialViewMacros&file={0}", model.Path.TrimStart('/').EnsureStartsWith("MacroPartials/")); return attempt.Success; } - + } public override bool PerformDelete() { var fileService = (FileService)ApplicationContext.Current.Services.FileService; - + if (IsPartialViewMacro == false) { if (Alias.Contains(".") == false) From 6fcfd49cf0953c5c49b7cf6962de2c0f18742f07 Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 12 Jan 2015 19:43:20 +1100 Subject: [PATCH 301/310] Merge branch 'U4-5658' of https://github.com/leekelleher/Umbraco-CMS into leekelleher-U4-5658 --- .../umbraco.presentation/umbraco/Trees/loadDictionary.cs | 8 +++++--- .../umbraco.presentation/umbraco/Trees/loadLanguages.cs | 4 ---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadDictionary.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadDictionary.cs index ad7a41b51c..78f44a1e9b 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadDictionary.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadDictionary.cs @@ -53,11 +53,13 @@ namespace umbraco public override void RenderJS(ref StringBuilder Javascript) { Javascript.Append( - @" + @" + function openDictionary() { + UmbClientMgr.contentFrame('settings/DictionaryItemList.aspx'); + } function openDictionaryItem(id) { UmbClientMgr.contentFrame('settings/editDictionaryItem.aspx?id=' + id); - } - "); + }"); } public override void Render(ref XmlTree tree) diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadLanguages.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadLanguages.cs index 7dd10e3755..c43edff371 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadLanguages.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadLanguages.cs @@ -46,10 +46,6 @@ namespace umbraco @" function openLanguage(id) { UmbClientMgr.contentFrame('settings/editLanguage.aspx?id=' + id); -} - -function openDictionary() { - UmbClientMgr.contentFrame('settings/DictionaryItemList.aspx'); }"); } From da778e277ff102ccbd71fa2e1fdae94b4109026b Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 12 Jan 2015 21:45:52 +1100 Subject: [PATCH 302/310] Fixes: U4-6093 ContentService.SaveAndPublishDo changes Culture --- src/Umbraco.Core/Security/AuthenticationExtensions.cs | 3 ++- src/Umbraco.Web/NotificationServiceExtensions.cs | 2 +- src/Umbraco.Web/Security/WebSecurity.cs | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Core/Security/AuthenticationExtensions.cs b/src/Umbraco.Core/Security/AuthenticationExtensions.cs index 7c4d2980b1..8511d39125 100644 --- a/src/Umbraco.Core/Security/AuthenticationExtensions.cs +++ b/src/Umbraco.Core/Security/AuthenticationExtensions.cs @@ -78,7 +78,8 @@ namespace Umbraco.Core.Security /// /// /// If set to true and a back office identity is not found and not authenticated, this will attempt to authenticate the - /// request just as is done in the Umbraco module and then set the current identity if it is valid + /// request just as is done in the Umbraco module and then set the current identity if it is valid. + /// Just like in the UmbracoModule, if this is true then the user's culture will be assigned to the request. /// /// /// Returns the current back office identity if an admin is authenticated otherwise null diff --git a/src/Umbraco.Web/NotificationServiceExtensions.cs b/src/Umbraco.Web/NotificationServiceExtensions.cs index 9e10531b78..7beff605f9 100644 --- a/src/Umbraco.Web/NotificationServiceExtensions.cs +++ b/src/Umbraco.Web/NotificationServiceExtensions.cs @@ -50,7 +50,7 @@ namespace Umbraco.Web //if there is no current user, then use the admin if (user == null) { - LogHelper.Warn(typeof(NotificationServiceExtensions), "There is no current Umbraco user logged in, the notifications will be sent from the administrator"); + LogHelper.Debug(typeof(NotificationServiceExtensions), "There is no current Umbraco user logged in, the notifications will be sent from the administrator"); user = applicationContext.Services.UserService.GetUserById(0); if (user == null) { diff --git a/src/Umbraco.Web/Security/WebSecurity.cs b/src/Umbraco.Web/Security/WebSecurity.cs index d8d9c163ac..5239207316 100644 --- a/src/Umbraco.Web/Security/WebSecurity.cs +++ b/src/Umbraco.Web/Security/WebSecurity.cs @@ -286,7 +286,7 @@ namespace Umbraco.Web.Security /// public int GetUserId() { - var identity = _httpContext.GetCurrentIdentity(true); + var identity = _httpContext.GetCurrentIdentity(false); if (identity == null) return -1; return Convert.ToInt32(identity.Id); @@ -298,7 +298,7 @@ namespace Umbraco.Web.Security /// public string GetSessionId() { - var identity = _httpContext.GetCurrentIdentity(true); + var identity = _httpContext.GetCurrentIdentity(false); if (identity == null) return null; return identity.SessionId; From 00895ff7a96e7a90cadb9c8ee38ca6d9c230bd0d Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 12 Jan 2015 22:10:15 +1100 Subject: [PATCH 303/310] Fixes: U4-6096 Links in Translator emails incorrect - germain and danish were still incorrect. --- src/Umbraco.Web.UI/umbraco/config/lang/da.xml | 2 +- src/Umbraco.Web.UI/umbraco/config/lang/de.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index cba2254cc8..ad7737e5be 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -795,7 +795,7 @@ Mange hilsner fra Umbraco robotten Download XML DTD Felter Inkluder undersider - Hej %0%. Dette er en automatisk mail sendt for at informere dig om at dokumentet '%1' har en forespørgsel omkring oversættelse til '%5%' af %2%. Gå til http://%3%/Umbraco/translation/details.aspx?id=%4% for at redigere. Eller log ind i Umbraco for at få en oversigt over dine oversættelsesopgaver: http://%3%/Umbraco Hav en god dag! Mange hilsner Umbraco-robotten + Hej %0%. Dette er en automatisk mail sendt for at informere dig om at dokumentet '%1' har en forespørgsel omkring oversættelse til '%5%' af %2%. Gå til http://%3%/translation/details.aspx?id=%4% for at redigere. Eller log ind i Umbraco for at få en oversigt over dine oversættelsesopgaver: http://%3%/Umbraco Hav en god dag! Mange hilsner Umbraco-robotten [%0%] Oversættelsesopgave for %1% Ingen oversættelsesbrugere er fundet. Opret venligst en oversættelsesbruger før du begynder at sende indhold til oversættelse Opgaver oprettet af dig diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/de.xml b/src/Umbraco.Web.UI/umbraco/config/lang/de.xml index 9e93aa220b..6c7f52b3aa 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/de.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/de.xml @@ -779,7 +779,7 @@ Hallo %0%, das Dokument '%1%' wurde von '%2%' zur Übersetzung in '%5%' freigegeben. -Zum Bearbeiten verwenden Sie bitte diesen Link: http://%3%/Umbraco/translation/details.aspx?id=%4%. +Zum Bearbeiten verwenden Sie bitte diesen Link: http://%3%/translation/details.aspx?id=%4%. Sie können sich auch alle anstehenden Übersetzungen gesammelt im Umbraco-Verwaltungsbereich anzeigen lassen: http://%3%/Umbraco/Umbraco.aspx From f8ed9e60f63673801ff9f6eb77da1e9d23116a5f Mon Sep 17 00:00:00 2001 From: arknu Date: Mon, 12 Jan 2015 22:13:01 +0100 Subject: [PATCH 304/310] U4-6103: Replace style with ng-style (again) --- .../views/propertyeditors/grid/dialogs/layoutconfig.html | 4 ++-- .../src/views/propertyeditors/grid/dialogs/rowconfig.html | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/layoutconfig.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/layoutconfig.html index 2468bde369..5775e007f2 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/layoutconfig.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/layoutconfig.html @@ -19,12 +19,12 @@ ng-class="{last:$last, selected:section==currentSection}" ng-repeat="section in currentLayout.sections" ng-click="configureSection(section, currentLayout)" - style="width:{{ percentage(section.grid) }}%"> + ng-style="{width: percentage(section.grid) +'%'}"> + ng-style="{width: percentage(availableLayoutSpace) + %}"> diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/rowconfig.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/rowconfig.html index 855025dc33..07aa2d2fbd 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/rowconfig.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/rowconfig.html @@ -20,12 +20,12 @@ ng-controller="Umbraco.PropertyEditors.GridPrevalueEditor.RowConfigController"> ng-class="{last:$last, selected:cell==currentCell}" ng-repeat="cell in currentRow.areas" ng-click="configureCell(cell, currentRow)" - style="width:{{ percentage(cell.grid) }}%"> + ng-style="{width: percentage(cell.grid) + '%'}"> + ng-style="{width: percentage(availableRowSpace) + '%'}"> @@ -35,7 +35,7 @@ ng-controller="Umbraco.PropertyEditors.GridPrevalueEditor.RowConfigController">
    -
    +
    From 3663fd9f994913d86267008db441fedd1e07140f Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 13 Jan 2015 19:39:46 +1100 Subject: [PATCH 305/310] Fixes: U4-6106 Threading/Performance issue with MappingResolver and LazyManyObjectsResolverbase/ManyObjectsResolverBase --- .../LazyManyObjectsResolverbase.cs | 79 +++++++++---------- .../ManyObjectsResolverBase.cs | 40 +++++----- .../Persistence/Mappers/BaseMapper.cs | 24 ++++-- .../Persistence/Mappers/DtoMapModel.cs | 6 +- .../Persistence/Mappers/MappingResolver.cs | 28 ++----- .../Querying/ModelToSqlExpressionHelper.cs | 11 ++- 6 files changed, 89 insertions(+), 99 deletions(-) diff --git a/src/Umbraco.Core/ObjectResolution/LazyManyObjectsResolverbase.cs b/src/Umbraco.Core/ObjectResolution/LazyManyObjectsResolverbase.cs index f2223d338e..6aa3cce51c 100644 --- a/src/Umbraco.Core/ObjectResolution/LazyManyObjectsResolverbase.cs +++ b/src/Umbraco.Core/ObjectResolution/LazyManyObjectsResolverbase.cs @@ -23,7 +23,7 @@ namespace Umbraco.Core.ObjectResolution where TResolver : ResolverBase { #region Constructors - + /// /// Initializes a new instance of the class with an empty list of objects, /// with creation of objects based on an HttpRequest lifetime scope. @@ -31,9 +31,11 @@ namespace Umbraco.Core.ObjectResolution /// The lifetime scope of instantiated objects, default is per Application. /// If is per HttpRequest then there must be a current HttpContext. /// is per HttpRequest but the current HttpContext is null. - protected LazyManyObjectsResolverBase(ObjectLifetimeScope scope = ObjectLifetimeScope.Application) - : base(scope) - { } + protected LazyManyObjectsResolverBase(ObjectLifetimeScope scope = ObjectLifetimeScope.Application) + : base(scope) + { + Initialize(); + } /// /// Initializes a new instance of the class with an empty list of objects, @@ -41,9 +43,11 @@ namespace Umbraco.Core.ObjectResolution /// /// The HttpContextBase corresponding to the HttpRequest. /// is null. - protected LazyManyObjectsResolverBase(HttpContextBase httpContext) - : base(httpContext) - { } + protected LazyManyObjectsResolverBase(HttpContextBase httpContext) + : base(httpContext) + { + Initialize(); + } /// /// Initializes a new instance of the class with an initial list @@ -101,23 +105,37 @@ namespace Umbraco.Core.ObjectResolution private readonly List> _lazyTypeList = new List>(); private readonly List>> _typeListProducerList = new List>>(); private readonly List _excludedTypesList = new List(); + private Lazy> _resolvedTypes = null; + + private void Initialize() + { + _resolvedTypes = new Lazy>(() => + { + var resolvedTypes = new List(); + + // get the types by evaluating the lazy & producers + var types = new List(); + types.AddRange(_lazyTypeList.Select(x => x.Value)); + types.AddRange(_typeListProducerList.SelectMany(x => x())); + + // we need to validate each resolved type now since we could + // not do it before evaluating the lazy & producers + foreach (var type in types.Where(x => _excludedTypesList.Contains(x) == false)) + { + AddValidAndNoDuplicate(resolvedTypes, type); + } + + return resolvedTypes; + }); + } - private List _resolvedTypes = null; - private readonly ReaderWriterLockSlim _resolvedTypesLock = new ReaderWriterLockSlim(); - /// /// Gets a value indicating whether the resolver has resolved types to create instances from. /// /// To be used in unit tests. public bool HasResolvedTypes { - get - { - using (new ReadLock(_resolvedTypesLock)) - { - return _resolvedTypes != null; - } - } + get { return _resolvedTypes.IsValueCreated; } } /// @@ -126,32 +144,7 @@ namespace Umbraco.Core.ObjectResolution /// When called, will get the types from the lazy list. protected override IEnumerable InstanceTypes { - get - { - using (var lck = new UpgradeableReadLock(_resolvedTypesLock)) - { - if (_resolvedTypes == null) - { - lck.UpgradeToWriteLock(); - - _resolvedTypes = new List(); - - // get the types by evaluating the lazy & producers - var types = new List(); - types.AddRange(_lazyTypeList.Select(x => x.Value)); - types.AddRange(_typeListProducerList.SelectMany(x => x())); - - // we need to validate each resolved type now since we could - // not do it before evaluating the lazy & producers - foreach (var type in types.Where(x => !_excludedTypesList.Contains(x))) - { - AddValidAndNoDuplicate(_resolvedTypes, type); - } - } - - return _resolvedTypes; - } - } + get { return _resolvedTypes.Value; } } /// diff --git a/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs b/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs index 8bb5995891..95ff923c58 100644 --- a/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs +++ b/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs @@ -15,7 +15,7 @@ namespace Umbraco.Core.ObjectResolution where TResolved : class where TResolver : ResolverBase { - private IEnumerable _applicationInstances = null; + private Lazy> _applicationInstances = null; private readonly ReaderWriterLockSlim _lock = new ReaderWriterLockSlim(); private readonly string _httpContextKey; private readonly List _instanceTypes = new List(); @@ -47,6 +47,8 @@ namespace Umbraco.Core.ObjectResolution if (scope == ObjectLifetimeScope.HttpRequest) _httpContextKey = this.GetType().FullName; _instanceTypes = new List(); + + InitializeAppInstances(); } /// @@ -64,6 +66,8 @@ namespace Umbraco.Core.ObjectResolution _httpContextKey = this.GetType().FullName; CurrentHttpContext = httpContext; _instanceTypes = new List(); + + InitializeAppInstances(); } /// @@ -94,6 +98,11 @@ namespace Umbraco.Core.ObjectResolution } #endregion + private void InitializeAppInstances() + { + _applicationInstances = new Lazy>(() => CreateInstances().ToArray()); + } + /// /// Gets or sets a value indicating whether the resolver can resolve objects before resolution is frozen. /// @@ -178,30 +187,17 @@ namespace Umbraco.Core.ObjectResolution switch (LifetimeScope) { case ObjectLifetimeScope.HttpRequest: - // create new instances per HttpContext - using (var l = new UpgradeableReadLock(_lock)) - { - // create if not already there - if (CurrentHttpContext.Items[_httpContextKey] == null) - { - l.UpgradeToWriteLock(); - CurrentHttpContext.Items[_httpContextKey] = CreateInstances().ToArray(); - } - return (TResolved[])CurrentHttpContext.Items[_httpContextKey]; - } - case ObjectLifetimeScope.Application: - // create new instances per application - using (var l = new UpgradeableReadLock(_lock)) + // create new instances per HttpContext + if (CurrentHttpContext.Items[_httpContextKey] == null) { - // create if not already there - if (_applicationInstances == null) - { - l.UpgradeToWriteLock(); - _applicationInstances = CreateInstances().ToArray(); - } - return _applicationInstances; + CurrentHttpContext.Items[_httpContextKey] = CreateInstances().ToArray(); } + return (TResolved[])CurrentHttpContext.Items[_httpContextKey]; + + case ObjectLifetimeScope.Application: + + return _applicationInstances.Value; case ObjectLifetimeScope.Transient: default: diff --git a/src/Umbraco.Core/Persistence/Mappers/BaseMapper.cs b/src/Umbraco.Core/Persistence/Mappers/BaseMapper.cs index 006821e2b3..ea7c8ab8f9 100644 --- a/src/Umbraco.Core/Persistence/Mappers/BaseMapper.cs +++ b/src/Umbraco.Core/Persistence/Mappers/BaseMapper.cs @@ -13,12 +13,21 @@ namespace Umbraco.Core.Persistence.Mappers internal abstract void BuildMap(); - internal string Map(string propertyName) + internal string Map(string propertyName, bool throws = false) { DtoMapModel dtoTypeProperty; - return PropertyInfoCache.TryGetValue(propertyName, out dtoTypeProperty) - ? GetColumnName(dtoTypeProperty.Type, dtoTypeProperty.PropertyInfo) - : string.Empty; + if (PropertyInfoCache.TryGetValue(propertyName, out dtoTypeProperty)) + { + return GetColumnName(dtoTypeProperty.Type, dtoTypeProperty.PropertyInfo); + } + else + { + if (throws) + { + throw new InvalidOperationException("Could not get the value with the key " + propertyName + " from the property info cache, keys available: " + string.Join(", ", PropertyInfoCache.Keys)); + } + return string.Empty; + } } internal void CacheMap(Expression> sourceMember, Expression> destinationMember) @@ -30,7 +39,12 @@ namespace Umbraco.Core.Persistence.Mappers internal DtoMapModel ResolveMapping(Expression> sourceMember, Expression> destinationMember) { var source = ExpressionHelper.FindProperty(sourceMember); - var destination = ExpressionHelper.FindProperty(destinationMember) as PropertyInfo; + var destination = (PropertyInfo)ExpressionHelper.FindProperty(destinationMember); + + if (destination == null) + { + throw new InvalidOperationException("The 'destination' returned was null, cannot resolve the mapping"); + } return new DtoMapModel(typeof(TDestination), destination, source.Name); } diff --git a/src/Umbraco.Core/Persistence/Mappers/DtoMapModel.cs b/src/Umbraco.Core/Persistence/Mappers/DtoMapModel.cs index b897e53895..d351b8abb3 100644 --- a/src/Umbraco.Core/Persistence/Mappers/DtoMapModel.cs +++ b/src/Umbraco.Core/Persistence/Mappers/DtoMapModel.cs @@ -12,8 +12,8 @@ namespace Umbraco.Core.Persistence.Mappers SourcePropertyName = sourcePropertyName; } - public string SourcePropertyName { get; set; } - public Type Type { get; set; } - public PropertyInfo PropertyInfo { get; set; } + public string SourcePropertyName { get; private set; } + public Type Type { get; private set; } + public PropertyInfo PropertyInfo { get; private set; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/Mappers/MappingResolver.cs b/src/Umbraco.Core/Persistence/Mappers/MappingResolver.cs index 4b6b513bf2..007ddbd014 100644 --- a/src/Umbraco.Core/Persistence/Mappers/MappingResolver.cs +++ b/src/Umbraco.Core/Persistence/Mappers/MappingResolver.cs @@ -41,11 +41,6 @@ namespace Umbraco.Core.Persistence.Mappers { return byAttribute.Result; } - - //static mapper registration if not using attributes, could be something like this: - //if (type == typeof (UserType)) - // return new UserTypeMapper(); - throw new Exception("Invalid Type: A Mapper could not be resolved based on the passed in Type"); }); } @@ -56,31 +51,18 @@ namespace Umbraco.Core.Persistence.Mappers /// /// private Attempt TryGetMapperByAttribute(Type entityType) - { - //get all BaseMapper types that have a MapperFor attribute: - var assignedMapperTypes = InstanceTypes; - + { //check if any of the mappers are assigned to this type - var mapper = assignedMapperTypes.FirstOrDefault( - x => x.GetCustomAttributes(false) + var mapper = Values.FirstOrDefault( + x => x.GetType().GetCustomAttributes(false) .Any(m => m.EntityType == entityType)); if (mapper == null) { return Attempt.Fail(); } - try - { - var instance = Activator.CreateInstance(mapper) as BaseMapper; - return instance != null - ? Attempt.Succeed(instance) - : Attempt.Fail(); - } - catch (Exception ex) - { - LogHelper.Error(typeof(MappingResolver), "Could not instantiate mapper of type " + mapper, ex); - return Attempt.Fail(ex); - } + + return Attempt.Succeed(mapper); } internal string GetMapping(Type type, string propertyName) diff --git a/src/Umbraco.Core/Persistence/Querying/ModelToSqlExpressionHelper.cs b/src/Umbraco.Core/Persistence/Querying/ModelToSqlExpressionHelper.cs index 1a561b7bf4..a0ccfaa070 100644 --- a/src/Umbraco.Core/Persistence/Querying/ModelToSqlExpressionHelper.cs +++ b/src/Umbraco.Core/Persistence/Querying/ModelToSqlExpressionHelper.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.Diagnostics; using System.Globalization; using System.Linq; using System.Linq.Expressions; @@ -26,13 +27,17 @@ namespace Umbraco.Core.Persistence.Querying m.Expression.NodeType == ExpressionType.Parameter && m.Expression.Type == typeof(T)) { - var field = _mapper.Map(m.Member.Name); - return field; + var field = _mapper.Map(m.Member.Name, true); + if (field.IsNullOrWhiteSpace()) + throw new InvalidOperationException("The mapper returned an empty field for the member name: " + m.Member.Name); + return field; } if (m.Expression != null && m.Expression.NodeType == ExpressionType.Convert) { - var field = _mapper.Map(m.Member.Name); + var field = _mapper.Map(m.Member.Name, true); + if (field.IsNullOrWhiteSpace()) + throw new InvalidOperationException("The mapper returned an empty field for the member name: " + m.Member.Name); return field; } From f8c1cc684bbda8c8ce08d209d5091974b4dd1b92 Mon Sep 17 00:00:00 2001 From: Niels Hartvig Date: Tue, 13 Jan 2015 17:13:55 +0100 Subject: [PATCH 306/310] U4-6115 Add which user installs/uninstalls packages to the audit trail --- .../Editors/PackageInstallController.cs | 14 +++++++---- .../Controllers/InstallPackageController.cs | 10 ++++---- .../developer/Packages/LoadNitros.ascx.cs | 2 +- .../Packages/installedPackage.aspx.cs | 4 ++-- .../developer/Packages/installer.aspx.cs | 5 ++-- .../businesslogic/Packager/Installer.cs | 23 +++++++++++++++++++ .../PackageInstance/InstalledPackage.cs | 6 +++++ .../Packager/Repositories/Repository.cs | 12 ++++++++++ 8 files changed, 61 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web/Editors/PackageInstallController.cs b/src/Umbraco.Web/Editors/PackageInstallController.cs index 50b612b453..c96a078fe0 100644 --- a/src/Umbraco.Web/Editors/PackageInstallController.cs +++ b/src/Umbraco.Web/Editors/PackageInstallController.cs @@ -10,6 +10,8 @@ using System.Threading.Tasks; using System.Web.Http; using System.Xml; using System.Xml.Linq; +using Umbraco.Core.Auditing; +using umbraco.BusinessLogic; using umbraco.cms.businesslogic.packager.repositories; using Umbraco.Core.IO; using Umbraco.Core.Packaging.Models; @@ -35,7 +37,7 @@ namespace Umbraco.Web.Editors //our repo guid using (var our = Repository.getByGuid("65194810-1f85-11dd-bd0b-0800200c9a66")) { - path = our.fetch(packageGuid); + path = our.fetch(packageGuid, Security.CurrentUser.Id); } } @@ -44,22 +46,24 @@ namespace Umbraco.Web.Editors p.RepositoryGuid = Guid.Parse("65194810-1f85-11dd-bd0b-0800200c9a66"); p.ZipFilePath = path; //p.ZipFilePath = Path.Combine("temp", "package.umb"); + return p; } [HttpPost] public PackageInstallModel Import(PackageInstallModel model) { - var ins = new global::umbraco.cms.businesslogic.packager.Installer(); + var ins = new global::umbraco.cms.businesslogic.packager.Installer(Security.CurrentUser.Id); model.TemporaryDirectoryPath = Path.Combine(SystemDirectories.Data, ins.Import(model.ZipFilePath)); model.Id = ins.CreateManifest( IOHelper.MapPath(model.TemporaryDirectoryPath), model.PackageGuid.ToString(), model.RepositoryGuid.ToString()); + return model; } [HttpPost] public PackageInstallModel InstallFiles(PackageInstallModel model) { - var ins = new global::umbraco.cms.businesslogic.packager.Installer(); + var ins = new global::umbraco.cms.businesslogic.packager.Installer(Security.CurrentUser.Id); ins.LoadConfig(IOHelper.MapPath(model.TemporaryDirectoryPath)); ins.InstallFiles(model.Id, IOHelper.MapPath(model.TemporaryDirectoryPath)); return model; @@ -69,7 +73,7 @@ namespace Umbraco.Web.Editors [HttpPost] public PackageInstallModel InstallData(PackageInstallModel model) { - var ins = new global::umbraco.cms.businesslogic.packager.Installer(); + var ins = new global::umbraco.cms.businesslogic.packager.Installer(Security.CurrentUser.Id); ins.LoadConfig(IOHelper.MapPath(model.TemporaryDirectoryPath)); ins.InstallBusinessLogic(model.Id, IOHelper.MapPath(model.TemporaryDirectoryPath)); return model; @@ -79,7 +83,7 @@ namespace Umbraco.Web.Editors [HttpPost] public PackageInstallModel CleanUp(PackageInstallModel model) { - var ins = new global::umbraco.cms.businesslogic.packager.Installer(); + var ins = new global::umbraco.cms.businesslogic.packager.Installer(Security.CurrentUser.Id); ins.LoadConfig(IOHelper.MapPath(model.TemporaryDirectoryPath)); ins.InstallCleanUp(model.Id, IOHelper.MapPath(model.TemporaryDirectoryPath)); diff --git a/src/Umbraco.Web/Install/Controllers/InstallPackageController.cs b/src/Umbraco.Web/Install/Controllers/InstallPackageController.cs index 08507af2b8..fc4a8962b8 100644 --- a/src/Umbraco.Web/Install/Controllers/InstallPackageController.cs +++ b/src/Umbraco.Web/Install/Controllers/InstallPackageController.cs @@ -71,9 +71,9 @@ namespace Umbraco.Web.Install.Controllers new { success = false, error = "cannot_connect" }, HttpStatusCode.OK); } - var installer = new global::umbraco.cms.businesslogic.packager.Installer(); + var installer = new global::umbraco.cms.businesslogic.packager.Installer(UmbracoContext.Current.Security.CurrentUser.Id); - var tempFile = installer.Import(repo.fetch(model.KitGuid.ToString())); + var tempFile = installer.Import(repo.fetch(model.KitGuid.ToString(), UmbracoContext.Current.Security.CurrentUser.Id)); installer.LoadConfig(tempFile); var pId = installer.CreateManifest(tempFile, model.KitGuid.ToString(), RepoGuid); return Json(new @@ -94,7 +94,7 @@ namespace Umbraco.Web.Install.Controllers public HttpResponseMessage InstallPackageFiles(InstallPackageModel model) { model.PackageFile = HttpUtility.UrlDecode(model.PackageFile); - var installer = new global::umbraco.cms.businesslogic.packager.Installer(); + var installer = new global::umbraco.cms.businesslogic.packager.Installer(UmbracoContext.Current.Security.CurrentUser.Id); installer.LoadConfig(model.PackageFile); installer.InstallFiles(model.ManifestId, model.PackageFile); return Json(new @@ -150,7 +150,7 @@ namespace Umbraco.Web.Install.Controllers public HttpResponseMessage InstallBusinessLogic(InstallPackageModel model) { model.PackageFile = HttpUtility.UrlDecode(model.PackageFile); - var installer = new global::umbraco.cms.businesslogic.packager.Installer(); + var installer = new global::umbraco.cms.businesslogic.packager.Installer(UmbracoContext.Current.Security.CurrentUser.Id); installer.LoadConfig(model.PackageFile); installer.InstallBusinessLogic(model.ManifestId, model.PackageFile); return Json(new @@ -171,7 +171,7 @@ namespace Umbraco.Web.Install.Controllers public HttpResponseMessage CleanupInstallation(InstallPackageModel model) { model.PackageFile = HttpUtility.UrlDecode(model.PackageFile); - var installer = new global::umbraco.cms.businesslogic.packager.Installer(); + var installer = new global::umbraco.cms.businesslogic.packager.Installer(UmbracoContext.Current.Security.CurrentUser.Id); installer.LoadConfig(model.PackageFile); installer.InstallCleanUp(model.ManifestId, model.PackageFile); diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/LoadNitros.ascx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/LoadNitros.ascx.cs index f258ecf323..78bde7b98c 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/LoadNitros.ascx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/LoadNitros.ascx.cs @@ -26,7 +26,7 @@ namespace umbraco.presentation.developer.packages { string repoGuid = "65194810-1f85-11dd-bd0b-0800200c9a66"; //Hardcoded official package repo key. - var p = new cms.businesslogic.packager.Installer(); + var p = new cms.businesslogic.packager.Installer(Umbraco.Web.UmbracoContext.Current.Security.CurrentUser.Id); var repo = cms.businesslogic.packager.repositories.Repository.getByGuid(repoGuid); if (repo == null) diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installedPackage.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installedPackage.aspx.cs index ed88c2de73..6146590293 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installedPackage.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installedPackage.aspx.cs @@ -362,7 +362,7 @@ namespace umbraco.presentation.developer.packages protected void delPack(object sender, EventArgs e) { - _pack.Delete(); + _pack.Delete(UmbracoUser.Id); pane_uninstalled.Visible = true; pane_uninstall.Visible = false; } @@ -545,7 +545,7 @@ namespace umbraco.presentation.developer.packages } } _pack.Save(); - _pack.Delete(); + _pack.Delete(UmbracoUser.Id); pane_uninstalled.Visible = true; pane_uninstall.Visible = false; diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installer.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installer.aspx.cs index a78e2293f0..351015ddd8 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installer.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/installer.aspx.cs @@ -30,11 +30,12 @@ namespace umbraco.presentation.developer.packages public Installer() { CurrentApp = DefaultApps.developer.ToString(); + _installer = new cms.businesslogic.packager.Installer(UmbracoUser.Id); } private Control _configControl; private cms.businesslogic.packager.repositories.Repository _repo; - private readonly cms.businesslogic.packager.Installer _installer = new cms.businesslogic.packager.Installer(); + private readonly cms.businesslogic.packager.Installer _installer = null; private string _tempFileName = ""; protected string RefreshQueryString { get; set; } @@ -81,7 +82,7 @@ namespace umbraco.presentation.developer.packages if (!pack.Protected) { //if it isn't then go straigt to the accept licens screen - tempFile.Value = _installer.Import(_repo.fetch(Request.GetItemAsString("guid"))); + tempFile.Value = _installer.Import(_repo.fetch(Request.GetItemAsString("guid"), UmbracoUser.Id)); UpdateSettings(); } diff --git a/src/umbraco.cms/businesslogic/Packager/Installer.cs b/src/umbraco.cms/businesslogic/Packager/Installer.cs index dfb76d1f7c..0a6fbe2124 100644 --- a/src/umbraco.cms/businesslogic/Packager/Installer.cs +++ b/src/umbraco.cms/businesslogic/Packager/Installer.cs @@ -6,6 +6,7 @@ using System.Xml; using System.Linq; using ICSharpCode.SharpZipLib.Zip; using Umbraco.Core; +using Umbraco.Core.Auditing; using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Packaging; @@ -42,6 +43,8 @@ namespace umbraco.cms.businesslogic.packager private readonly Dictionary _conflictingStyleSheetNames = new Dictionary(); private readonly List _binaryFileErrors = new List(); + private int _currentUserId = -1; + public string Name { get; private set; } public string Version { get; private set; } @@ -93,6 +96,17 @@ namespace umbraco.cms.businesslogic.packager /// Constructor /// public Installer() + { + initialize(); + } + + public Installer(int currentUserId) + { + initialize(); + _currentUserId = currentUserId; + } + + private void initialize() { ContainsBinaryFileErrors = false; ContainsTemplateConflicts = false; @@ -253,6 +267,7 @@ namespace umbraco.cms.businesslogic.packager //PPH log file install insPack.Data.Files.Add(XmlHelper.GetNodeValue(n.SelectSingleNode("orgPath")) + "/" + XmlHelper.GetNodeValue(n.SelectSingleNode("orgName"))); + } catch (Exception ex) { @@ -260,6 +275,14 @@ namespace umbraco.cms.businesslogic.packager } } + // log that a user has install files + if (_currentUserId > -1) + { + Audit.Add(AuditTypes.PackagerInstall, + string.Format("Package '{0}' files in installed. Package guid: {1}", insPack.Data.Name, insPack.Data.PackageGuid), + _currentUserId, -1); + } + insPack.Save(); diff --git a/src/umbraco.cms/businesslogic/Packager/PackageInstance/InstalledPackage.cs b/src/umbraco.cms/businesslogic/Packager/PackageInstance/InstalledPackage.cs index 5351bda083..83b86cc771 100644 --- a/src/umbraco.cms/businesslogic/Packager/PackageInstance/InstalledPackage.cs +++ b/src/umbraco.cms/businesslogic/Packager/PackageInstance/InstalledPackage.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Umbraco.Core.Auditing; using Umbraco.Core.Logging; using Umbraco.Core.IO; @@ -59,6 +60,11 @@ namespace umbraco.cms.businesslogic.packager { set { m_data = value; } } + public void Delete(int userId) + { + Audit.Add(AuditTypes.PackagerUninstall, string.Format("Package '{0}' files in installed. Package guid: {1}", Data.Name, Data.PackageGuid), userId, -1); + Delete(); + } public void Delete() { this.FireBeforeDelete(EventArgs.Empty); diff --git a/src/umbraco.cms/businesslogic/Packager/Repositories/Repository.cs b/src/umbraco.cms/businesslogic/Packager/Repositories/Repository.cs index 67dc7ace19..3ffa0e9054 100644 --- a/src/umbraco.cms/businesslogic/Packager/Repositories/Repository.cs +++ b/src/umbraco.cms/businesslogic/Packager/Repositories/Repository.cs @@ -6,6 +6,7 @@ using System.Xml; using System.IO; using System.Net; using Umbraco.Core; +using Umbraco.Core.Auditing; using Umbraco.Core.Configuration; using Umbraco.Core.Logging; using Umbraco.Core.IO; @@ -148,6 +149,15 @@ namespace umbraco.cms.businesslogic.packager.repositories } + public string fetch(string packageGuid, int userId) + { + // log + Audit.Add(AuditTypes.PackagerInstall, + string.Format("Package {0} fetched from {1}", packageGuid, this.Guid), + userId, -1); + return fetch(packageGuid); + } + public bool HasConnection() { @@ -223,6 +233,8 @@ namespace umbraco.cms.businesslogic.packager.repositories } } + // log + return ""; } From cea002fd611674cdf37e93ef3a8d260cc575a141 Mon Sep 17 00:00:00 2001 From: Niels Hartvig Date: Tue, 13 Jan 2015 17:19:11 +0100 Subject: [PATCH 307/310] Typos in regards to previous commit (U4-6115) --- src/umbraco.cms/businesslogic/Packager/Installer.cs | 2 +- .../businesslogic/Packager/PackageInstance/InstalledPackage.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/umbraco.cms/businesslogic/Packager/Installer.cs b/src/umbraco.cms/businesslogic/Packager/Installer.cs index 0a6fbe2124..e1ea379117 100644 --- a/src/umbraco.cms/businesslogic/Packager/Installer.cs +++ b/src/umbraco.cms/businesslogic/Packager/Installer.cs @@ -279,7 +279,7 @@ namespace umbraco.cms.businesslogic.packager if (_currentUserId > -1) { Audit.Add(AuditTypes.PackagerInstall, - string.Format("Package '{0}' files in installed. Package guid: {1}", insPack.Data.Name, insPack.Data.PackageGuid), + string.Format("Package '{0}' files installed. Package guid: {1}", insPack.Data.Name, insPack.Data.PackageGuid), _currentUserId, -1); } diff --git a/src/umbraco.cms/businesslogic/Packager/PackageInstance/InstalledPackage.cs b/src/umbraco.cms/businesslogic/Packager/PackageInstance/InstalledPackage.cs index 83b86cc771..974f398ca7 100644 --- a/src/umbraco.cms/businesslogic/Packager/PackageInstance/InstalledPackage.cs +++ b/src/umbraco.cms/businesslogic/Packager/PackageInstance/InstalledPackage.cs @@ -62,7 +62,7 @@ namespace umbraco.cms.businesslogic.packager { public void Delete(int userId) { - Audit.Add(AuditTypes.PackagerUninstall, string.Format("Package '{0}' files in installed. Package guid: {1}", Data.Name, Data.PackageGuid), userId, -1); + Audit.Add(AuditTypes.PackagerUninstall, string.Format("Package '{0}' uninstalled. Package guid: {1}", Data.Name, Data.PackageGuid), userId, -1); Delete(); } From 59aa28bf3bfe56ce4764286e2905b58673925997 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Tue, 13 Jan 2015 17:34:40 +0100 Subject: [PATCH 308/310] Update Installer.cs --- src/umbraco.cms/businesslogic/Packager/Installer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/umbraco.cms/businesslogic/Packager/Installer.cs b/src/umbraco.cms/businesslogic/Packager/Installer.cs index e1ea379117..09e2dc28a5 100644 --- a/src/umbraco.cms/businesslogic/Packager/Installer.cs +++ b/src/umbraco.cms/businesslogic/Packager/Installer.cs @@ -279,7 +279,7 @@ namespace umbraco.cms.businesslogic.packager if (_currentUserId > -1) { Audit.Add(AuditTypes.PackagerInstall, - string.Format("Package '{0}' files installed. Package guid: {1}", insPack.Data.Name, insPack.Data.PackageGuid), + string.Format("Package '{0}' installed. Package guid: {1}", insPack.Data.Name, insPack.Data.PackageGuid), _currentUserId, -1); } From 778d8e0afaaeb3de2d76c6009437a67a22ebf9e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Riis-Knudsen?= Date: Wed, 14 Jan 2015 09:00:12 +0100 Subject: [PATCH 309/310] Added missing apostrophes --- .../src/views/propertyeditors/grid/dialogs/layoutconfig.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/layoutconfig.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/layoutconfig.html index 5775e007f2..de17dcf638 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/layoutconfig.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/dialogs/layoutconfig.html @@ -24,7 +24,7 @@ + ng-style="{width: percentage(availableLayoutSpace) + '%'}"> @@ -113,4 +113,4 @@
    -
    \ No newline at end of file + From 7a644b668168869c54d1a8d6f81382fd8c18447b Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Thu, 15 Jan 2015 10:37:54 +0100 Subject: [PATCH 310/310] U4-6133 Update builtin razor snippets to follow Query Builder conventions #U4-6133 Fixed --- .../Templates/Breadcrumb.cshtml | 12 ++-- .../Templates/Gallery.cshtml | 61 ++++++++++++------- .../ListAncestorsFromCurrentPage.cshtml | 20 ++++-- .../ListChildPagesFromChangeableSource.cshtml | 34 +++++++---- .../ListChildPagesFromCurrentPage.cshtml | 12 ++-- .../ListChildPagesOrderedByDate.cshtml | 11 ++-- .../ListChildPagesOrderedByName.cshtml | 11 ++-- .../ListChildPagesOrderedByProperty.cshtml | 32 ++++++---- .../ListChildPagesWithDoctype.cshtml | 41 ++++++------- .../ListDescendantsFromCurrentPage.cshtml | 55 +++++++++-------- .../ListImagesFromMediaFolder.cshtml | 30 ++++++--- .../Templates/MultinodeTree-picker.cshtml | 25 ++++---- .../Templates/Navigation.cshtml | 17 +++--- .../Templates/SiteMap.cshtml | 24 +++++--- 14 files changed, 229 insertions(+), 156 deletions(-) diff --git a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Breadcrumb.cshtml b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Breadcrumb.cshtml index 721abfb63b..ff63081996 100644 --- a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Breadcrumb.cshtml +++ b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Breadcrumb.cshtml @@ -1,19 +1,21 @@ @inherits Umbraco.Web.Macros.PartialViewMacroPage @* - This snippet makes a breadcrumb of parents using an unordred html list. + This snippet makes a breadcrumb of parents using an unordered html list. How it works: - - It uses the Ancestors() method to get all parents and then generates links so the visitor get go back + - It uses the Ancestors() method to get all parents and then generates links so the visitor can go back - Finally it outputs the name of the current page (without a link) *@ -@if (CurrentPage.Ancestors().Any()) +@{ var selection = CurrentPage.Ancestors(); } + +@if (selection.Any()) {