diff --git a/src/Orchard.Tests.Modules/Conditions/ConditionEvaluationTests.cs b/src/Orchard.Tests.Modules/Conditions/ConditionEvaluationTests.cs new file mode 100644 index 000000000..76ececaea --- /dev/null +++ b/src/Orchard.Tests.Modules/Conditions/ConditionEvaluationTests.cs @@ -0,0 +1,57 @@ +using System; +using Autofac; +using NUnit.Framework; +using Orchard.Caching; +using Orchard.Conditions.Services; +using Orchard.Scripting; +using Orchard.Tests.Stubs; + +namespace Orchard.Tests.Modules.Conditions { + [TestFixture] + public class ConditionEvaluationTests { + private IContainer _container; + private IConditionManager _conditionManager; + + [SetUp] + public void Init() { + var builder = new ContainerBuilder(); + builder.RegisterType().As(); + builder.RegisterType().As(); + builder.RegisterType().As(); + builder.RegisterType().As(); + + _container = builder.Build(); + _conditionManager = _container.Resolve(); + } + + [Test] + public void ProviderGetsCalledForExpression() { + var result = _conditionManager.Matches("hello"); + Assert.IsTrue(result); + } + + [Test] + public void RubyExpressionIsEvaluated() { + var result = _conditionManager.Matches("not hello"); + Assert.IsFalse(result); + } + + [Test] + public void ArgumentsArePassedCorrectly() { + var result = _conditionManager.Matches("add(2, 3) == 5"); + Assert.IsTrue(result); + } + } + + public class AlwaysTrueCondition : IConditionProvider { + public void Evaluate(ConditionEvaluationContext evaluationContext) { + if (evaluationContext.FunctionName == "add") { + evaluationContext.Result = Convert.ToInt32(evaluationContext.Arguments[0]) + Convert.ToInt32(evaluationContext.Arguments[1]); + return; + } + + evaluationContext.Result = true; + } + } +} + diff --git a/src/Orchard.Tests.Modules/Widgets/RuleEngine/UrlRuleProviderTest.cs b/src/Orchard.Tests.Modules/Conditions/Providers/UrlRuleConditionTest.cs similarity index 62% rename from src/Orchard.Tests.Modules/Widgets/RuleEngine/UrlRuleProviderTest.cs rename to src/Orchard.Tests.Modules/Conditions/Providers/UrlRuleConditionTest.cs index f70dd00b6..f77b7e790 100644 --- a/src/Orchard.Tests.Modules/Widgets/RuleEngine/UrlRuleProviderTest.cs +++ b/src/Orchard.Tests.Modules/Conditions/Providers/UrlRuleConditionTest.cs @@ -1,87 +1,87 @@ -using System; -using Autofac; -using NUnit.Framework; -using Orchard.Environment.Configuration; -using Orchard.Mvc; -using Orchard.Tests.Stubs; -using Orchard.Widgets.RuleEngine; -using Orchard.Widgets.Services; - -namespace Orchard.Tests.Modules.Widgets.RuleEngine { - [TestFixture] - public class UrlRuleProviderTest { - private IContainer _container; - private IRuleProvider _urlRuleProvider; - private StubHttpContextAccessor _stubContextAccessor; - private ShellSettings _shellSettings; - - [SetUp] - public void Init() { - var builder = new ContainerBuilder(); - _shellSettings = new ShellSettings { RequestUrlPrefix = String.Empty }; - builder.RegisterType().As(); - builder.RegisterInstance(_shellSettings); - _stubContextAccessor = new StubHttpContextAccessor(); - builder.RegisterInstance(_stubContextAccessor).As(); - _container = builder.Build(); - _urlRuleProvider = _container.Resolve(); - } - - [Test] - public void UrlForHomePageMatchesHomePagePath() { - _stubContextAccessor.Set(new StubHttpContext("~/")); - var context = new RuleContext { FunctionName = "url", Arguments = new[] { "~/" } }; - _urlRuleProvider.Process(context); - Assert.That(context.Result, Is.True); - } - - [Test] - public void UrlForAboutPageMatchesAboutPagePath() { - _stubContextAccessor.Set(new StubHttpContext("~/about")); - var context = new RuleContext { FunctionName = "url", Arguments = new[] { "~/about" } }; - _urlRuleProvider.Process(context); - Assert.That(context.Result, Is.True); - } - - [Test] - public void UrlForBlogWithEndingWildcardMatchesBlogPostPageInSaidBlog() { - _stubContextAccessor.Set(new StubHttpContext("~/my-blog/my-blog-post")); - var context = new RuleContext { FunctionName = "url", Arguments = new[] { "~/my-blog/*" } }; - _urlRuleProvider.Process(context); - Assert.That(context.Result, Is.True); - } - - [Test] - public void UrlForHomePageDoesNotMatchAboutPagePath() { - _stubContextAccessor.Set(new StubHttpContext("~/about")); - var context = new RuleContext { FunctionName = "url", Arguments = new[] { "~/" } }; - _urlRuleProvider.Process(context); - Assert.That(context.Result, Is.False); - } - - [Test] - public void UrlForAboutPageMatchesDifferentCasedAboutPagePath() { - _stubContextAccessor.Set(new StubHttpContext("~/About")); - var context = new RuleContext { FunctionName = "url", Arguments = new[] { "~/about" } }; - _urlRuleProvider.Process(context); - Assert.That(context.Result, Is.True); - } - - [Test] - public void UrlForAboutPageWithEndingSlashMatchesAboutPagePath() { - _stubContextAccessor.Set(new StubHttpContext("~/About/")); - var context = new RuleContext { FunctionName = "url", Arguments = new[] { "~/about" } }; - _urlRuleProvider.Process(context); - Assert.That(context.Result, Is.True); - } - - [Test] - public void UrlForHomePageMatchesHomePagePathWithUrlPrefix() { - _stubContextAccessor.Set(new StubHttpContext("~/site1")); - _shellSettings.RequestUrlPrefix = "site1"; - var context = new RuleContext { FunctionName = "url", Arguments = new[] { "~/" } }; - _urlRuleProvider.Process(context); - Assert.That(context.Result, Is.True); - } - } +using System; +using Autofac; +using NUnit.Framework; +using Orchard.Conditions.Services; +using Orchard.Environment.Configuration; +using Orchard.Mvc; +using Orchard.Tests.Stubs; +using Orchard.Widgets.RuleEngine; + +namespace Orchard.Tests.Modules.Conditions.Providers { + [TestFixture] + public class UrlRuleConditionTest { + private IContainer _container; + private IConditionProvider _urlCondition; + private StubHttpContextAccessor _stubContextAccessor; + private ShellSettings _shellSettings; + + [SetUp] + public void Init() { + var builder = new ContainerBuilder(); + _shellSettings = new ShellSettings { RequestUrlPrefix = String.Empty }; + builder.RegisterType().As(); + builder.RegisterInstance(_shellSettings); + _stubContextAccessor = new StubHttpContextAccessor(); + builder.RegisterInstance(_stubContextAccessor).As(); + _container = builder.Build(); + _urlCondition = _container.Resolve(); + } + + [Test] + public void UrlForHomePageMatchesHomePagePath() { + _stubContextAccessor.Set(new StubHttpContext("~/")); + var context = new ConditionEvaluationContext { FunctionName = "url", Arguments = new[] { "~/" } }; + _urlCondition.Evaluate(context); + Assert.That(context.Result, Is.True); + } + + [Test] + public void UrlForAboutPageMatchesAboutPagePath() { + _stubContextAccessor.Set(new StubHttpContext("~/about")); + var context = new ConditionEvaluationContext { FunctionName = "url", Arguments = new[] { "~/about" } }; + _urlCondition.Evaluate(context); + Assert.That(context.Result, Is.True); + } + + [Test] + public void UrlForBlogWithEndingWildcardMatchesBlogPostPageInSaidBlog() { + _stubContextAccessor.Set(new StubHttpContext("~/my-blog/my-blog-post")); + var context = new ConditionEvaluationContext { FunctionName = "url", Arguments = new[] { "~/my-blog/*" } }; + _urlCondition.Evaluate(context); + Assert.That(context.Result, Is.True); + } + + [Test] + public void UrlForHomePageDoesNotMatchAboutPagePath() { + _stubContextAccessor.Set(new StubHttpContext("~/about")); + var context = new ConditionEvaluationContext { FunctionName = "url", Arguments = new[] { "~/" } }; + _urlCondition.Evaluate(context); + Assert.That(context.Result, Is.False); + } + + [Test] + public void UrlForAboutPageMatchesDifferentCasedAboutPagePath() { + _stubContextAccessor.Set(new StubHttpContext("~/About")); + var context = new ConditionEvaluationContext { FunctionName = "url", Arguments = new[] { "~/about" } }; + _urlCondition.Evaluate(context); + Assert.That(context.Result, Is.True); + } + + [Test] + public void UrlForAboutPageWithEndingSlashMatchesAboutPagePath() { + _stubContextAccessor.Set(new StubHttpContext("~/About/")); + var context = new ConditionEvaluationContext { FunctionName = "url", Arguments = new[] { "~/about" } }; + _urlCondition.Evaluate(context); + Assert.That(context.Result, Is.True); + } + + [Test] + public void UrlForHomePageMatchesHomePagePathWithUrlPrefix() { + _stubContextAccessor.Set(new StubHttpContext("~/site1")); + _shellSettings.RequestUrlPrefix = "site1"; + var context = new ConditionEvaluationContext { FunctionName = "url", Arguments = new[] { "~/" } }; + _urlCondition.Evaluate(context); + Assert.That(context.Result, Is.True); + } + } } \ No newline at end of file diff --git a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj index 103e102d1..3c30725bd 100644 --- a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj +++ b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj @@ -190,9 +190,9 @@ - + - + @@ -225,6 +225,10 @@ {14C049FD-B35B-415A-A824-87F26B26E7FD} Orchard.Comments + + {98251eae-a41b-47b2-aa91-e28b8482da70} + Orchard.Conditions + {4A4595EF-6C37-4F99-96ED-4AE0B9E438D3} Orchard.DesignerTools diff --git a/src/Orchard.Tests.Modules/Widgets/WidgetsTests.cs b/src/Orchard.Tests.Modules/Widgets/WidgetsTests.cs deleted file mode 100644 index 4b34a09df..000000000 --- a/src/Orchard.Tests.Modules/Widgets/WidgetsTests.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using Autofac; -using NUnit.Framework; -using Orchard.Scripting; -using Orchard.Caching; -using Orchard.Tests.Stubs; -using Orchard.Widgets.RuleEngine; -using Orchard.Widgets.Services; - -namespace Orchard.Tests.Modules.Widgets { - [TestFixture] - public class WidgetsTests { - private IContainer _container; - private IRuleManager _ruleManager; - - [SetUp] - public void Init() { - var builder = new ContainerBuilder(); - builder.RegisterType().As(); - builder.RegisterType().As(); - builder.RegisterType().As(); - builder.RegisterType().As(); - - _container = builder.Build(); - _ruleManager = _container.Resolve(); - } - - [Test] - public void ProviderGetsCalledForExpression() { - bool result = _ruleManager.Matches("hello"); - Assert.IsTrue(result); - } - - [Test] - public void RubyExpressionIsEvaluated() { - bool result = _ruleManager.Matches("not hello"); - Assert.IsFalse(result); - } - - [Test] - public void ArgumentsArePassedCorrectly() { - bool result = _ruleManager.Matches("add(2, 3) == 5"); - Assert.IsTrue(result); - } - } - - public class AlwaysTrueRuleProvider : IRuleProvider { - public void Process(RuleContext ruleContext) { - if (ruleContext.FunctionName == "add") { - ruleContext.Result = Convert.ToInt32(ruleContext.Arguments[0]) + Convert.ToInt32(ruleContext.Arguments[1]); - return; - } - - ruleContext.Result = true; - } - } -} - diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/DiffGramAnalyzer.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/DiffGramAnalyzer.cs index 42c51c62e..d9e4ad708 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/DiffGramAnalyzer.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/DiffGramAnalyzer.cs @@ -66,7 +66,6 @@ namespace Orchard.AuditTrail.Services { var originalContent = currentElement.Value; var currentContent = reader.ReadElementContentAsString(); - stack.Pop(); readNext = false; yield return new DiffNode { diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Module.txt b/src/Orchard.Web/Modules/Orchard.Conditions/Module.txt new file mode 100644 index 000000000..2c60ad94a --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Module.txt @@ -0,0 +1,13 @@ +Name: Conditions +AntiForgery: enabled +Author: The Orchard Team +Website: http://orchardproject.net +Version: 1.0 +OrchardVersion: 1.9 +Description: Provides a rules API that evaluate to true or false. +Features: + Orchard.Conditions: + Name: Conditions + Description: Provides a rules API that evaluate to true or false. + Category: Scripting + Dependencies: Orchard.Scripting \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Orchard.Conditions.csproj b/src/Orchard.Web/Modules/Orchard.Conditions/Orchard.Conditions.csproj new file mode 100644 index 000000000..a243ac54b --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Orchard.Conditions.csproj @@ -0,0 +1,144 @@ + + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {98251EAE-A41B-47B2-AA91-E28B8482DA70} + {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + Orchard.Conditions + Orchard.Conditions + v4.5.1 + false + + + 4.0 + + + false + + + + + + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + ..\..\..\OrchardBasicCorrectness.ruleset + false + + + pdbonly + true + bin\ + TRACE + prompt + 4 + AllRules.ruleset + false + + + + + + + 3.5 + + + + False + ..\..\..\..\lib\aspnetmvc\System.Web.Mvc.dll + + + + + + + + + + + + + + + + + {2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6} + Orchard.Framework + false + + + {9916839C-39FC-4CEB-A5AF-89CA7E87119F} + Orchard.Core + false + + + {99002b65-86f7-415e-bf4a-381aa8ab9ccc} + Orchard.Scripting + + + + + + + + + + + + + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + + + + + $(ProjectDir)\..\Manifests + + + + + + + + + + + + False + True + 45979 + / + + + False + True + http://orchard.codeplex.com + False + + + + + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Properties/AssemblyInfo.cs b/src/Orchard.Web/Modules/Orchard.Conditions/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..fb44458d9 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Properties/AssemblyInfo.cs @@ -0,0 +1,37 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Orchard.Conditions")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyProduct("Orchard")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("1c288740-10c0-4fa9-a051-501d259e4fc0")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] + diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Providers/AuthenticatedCondition.cs b/src/Orchard.Web/Modules/Orchard.Conditions/Providers/AuthenticatedCondition.cs new file mode 100644 index 000000000..cfbc6d4a4 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Providers/AuthenticatedCondition.cs @@ -0,0 +1,26 @@ +using System; +using Orchard.Conditions.Services; +using Orchard.Security; + +namespace Orchard.Conditions.Providers { + public class AuthenticatedCondition : IConditionProvider { + private readonly IAuthenticationService _authenticationService; + + public AuthenticatedCondition(IAuthenticationService authenticationService) { + _authenticationService = authenticationService; + } + + public void Evaluate(ConditionEvaluationContext evaluationContext) { + if (!String.Equals(evaluationContext.FunctionName, "authenticated", StringComparison.OrdinalIgnoreCase)) { + return; + } + + if (_authenticationService.GetAuthenticatedUser() != null) { + evaluationContext.Result = true; + return; + } + + evaluationContext.Result = false; + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Providers/BuiltinCondition.cs b/src/Orchard.Web/Modules/Orchard.Conditions/Providers/BuiltinCondition.cs new file mode 100644 index 000000000..5d8436652 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Providers/BuiltinCondition.cs @@ -0,0 +1,18 @@ +using System; +using Orchard.Conditions.Services; + +namespace Orchard.Conditions.Providers { + public class BuiltinCondition : IConditionProvider { + private readonly IWorkContextAccessor _workContextAccessor; + + public BuiltinCondition(IWorkContextAccessor workContextAccessor) { + _workContextAccessor = workContextAccessor; + } + + public void Evaluate(ConditionEvaluationContext evaluationContext) { + if (string.Equals(evaluationContext.FunctionName, "WorkContext", StringComparison.OrdinalIgnoreCase)) { + evaluationContext.Result = _workContextAccessor.GetContext(); + } + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/UrlRuleProvider.cs b/src/Orchard.Web/Modules/Orchard.Conditions/Providers/UrlCondition.cs similarity index 72% rename from src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/UrlRuleProvider.cs rename to src/Orchard.Web/Modules/Orchard.Conditions/Providers/UrlCondition.cs index 76a6cec48..e861fc3f2 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/UrlRuleProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Providers/UrlCondition.cs @@ -1,47 +1,47 @@ -using System; -using System.Web; -using Orchard.Environment.Configuration; -using Orchard.Mvc; -using Orchard.Widgets.Services; - -namespace Orchard.Widgets.RuleEngine { - public class UrlRuleProvider : IRuleProvider { - private readonly IHttpContextAccessor _httpContextAccessor; - private readonly ShellSettings _shellSettings; - - public UrlRuleProvider(IHttpContextAccessor httpContextAccessor, ShellSettings shellSettings) { - _httpContextAccessor = httpContextAccessor; - _shellSettings = shellSettings; - } - - public void Process(RuleContext ruleContext) { - if (!String.Equals(ruleContext.FunctionName, "url", StringComparison.OrdinalIgnoreCase)) - return; - - var context = _httpContextAccessor.Current(); - var url = Convert.ToString(ruleContext.Arguments[0]); - if (url.StartsWith("~/")) { - url = url.Substring(2); - var appPath = context.Request.ApplicationPath; - if (appPath == "/") - appPath = ""; - - if(!String.IsNullOrEmpty(_shellSettings.RequestUrlPrefix)) - appPath = String.Concat(appPath, "/", _shellSettings.RequestUrlPrefix); - - url = String.Concat(appPath, "/", url); - } - - if (!url.Contains("?")) - url = url.TrimEnd('/'); - - var requestPath = context.Request.Path; - if (!requestPath.Contains("?")) - requestPath = requestPath.TrimEnd('/'); - - ruleContext.Result = url.EndsWith("*") - ? requestPath.StartsWith(url.TrimEnd('*'), StringComparison.OrdinalIgnoreCase) - : string.Equals(requestPath, url, StringComparison.OrdinalIgnoreCase); - } - } +using System; +using System.Web; +using Orchard.Conditions.Services; +using Orchard.Environment.Configuration; +using Orchard.Mvc; + +namespace Orchard.Widgets.RuleEngine { + public class UrlCondition : IConditionProvider { + private readonly IHttpContextAccessor _httpContextAccessor; + private readonly ShellSettings _shellSettings; + + public UrlCondition(IHttpContextAccessor httpContextAccessor, ShellSettings shellSettings) { + _httpContextAccessor = httpContextAccessor; + _shellSettings = shellSettings; + } + + public void Evaluate(ConditionEvaluationContext evaluationContext) { + if (!String.Equals(evaluationContext.FunctionName, "url", StringComparison.OrdinalIgnoreCase)) + return; + + var context = _httpContextAccessor.Current(); + var url = Convert.ToString(evaluationContext.Arguments[0]); + if (url.StartsWith("~/")) { + url = url.Substring(2); + var appPath = context.Request.ApplicationPath; + if (appPath == "/") + appPath = ""; + + if(!String.IsNullOrEmpty(_shellSettings.RequestUrlPrefix)) + appPath = String.Concat(appPath, "/", _shellSettings.RequestUrlPrefix); + + url = String.Concat(appPath, "/", url); + } + + if (!url.Contains("?")) + url = url.TrimEnd('/'); + + var requestPath = context.Request.Path; + if (!requestPath.Contains("?")) + requestPath = requestPath.TrimEnd('/'); + + evaluationContext.Result = url.EndsWith("*") + ? requestPath.StartsWith(url.TrimEnd('*'), StringComparison.OrdinalIgnoreCase) + : string.Equals(requestPath, url, StringComparison.OrdinalIgnoreCase); + } + } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Services/ConditionEvaluationContext.cs b/src/Orchard.Web/Modules/Orchard.Conditions/Services/ConditionEvaluationContext.cs new file mode 100644 index 000000000..fb69855a8 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Services/ConditionEvaluationContext.cs @@ -0,0 +1,7 @@ +namespace Orchard.Conditions.Services { + public class ConditionEvaluationContext { + public string FunctionName { get; set; } + public object[] Arguments { get; set; } + public object Result { get; set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Services/ConditionManager.cs b/src/Orchard.Web/Modules/Orchard.Conditions/Services/ConditionManager.cs new file mode 100644 index 000000000..e0738d238 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Services/ConditionManager.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using System.Linq; +using Orchard.Localization; +using Orchard.Scripting; + +namespace Orchard.Conditions.Services { + public class ConditionManager : IConditionManager { + private readonly IConditionProvider _conditions; + private readonly IEnumerable _evaluators; + + public ConditionManager(IConditionProvider conditions, IEnumerable evaluators) { + _conditions = conditions; + _evaluators = evaluators; + T = NullLocalizer.Instance; + } + + public Localizer T { get; set; } + + public bool Matches(string expression) { + var evaluator = _evaluators.FirstOrDefault(); + if (evaluator == null) { + throw new OrchardException(T("There are currently no scripting engines enabled")); + } + + var result = evaluator.Evaluate(expression, new List { new GlobalMethodProvider(this) }); + if (!(result is bool)) { + throw new OrchardException(T("Expression is not a boolean value")); + } + return (bool)result; + } + + private class GlobalMethodProvider : IGlobalMethodProvider { + private readonly ConditionManager _conditionManager; + + public GlobalMethodProvider(ConditionManager conditionManager) { + _conditionManager = conditionManager; + } + + public void Process(GlobalMethodContext context) { + var ruleContext = new ConditionEvaluationContext { + FunctionName = context.FunctionName, + Arguments = context.Arguments.ToArray(), + Result = context.Result + }; + + _conditionManager._conditions.Evaluate(ruleContext); + + context.Result = ruleContext.Result; + } + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Services/IConditionManager.cs b/src/Orchard.Web/Modules/Orchard.Conditions/Services/IConditionManager.cs new file mode 100644 index 000000000..5d2482f46 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Services/IConditionManager.cs @@ -0,0 +1,5 @@ +namespace Orchard.Conditions.Services { + public interface IConditionManager : IDependency { + bool Matches(string expression); + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Services/IConditionProvider.cs b/src/Orchard.Web/Modules/Orchard.Conditions/Services/IConditionProvider.cs new file mode 100644 index 000000000..01e27fa3b --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Services/IConditionProvider.cs @@ -0,0 +1,7 @@ +using Orchard.Events; + +namespace Orchard.Conditions.Services { + public interface IConditionProvider : IEventHandler { + void Evaluate(ConditionEvaluationContext evaluationContext); + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Web.config b/src/Orchard.Web/Modules/Orchard.Conditions/Web.config new file mode 100644 index 000000000..82da01f41 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Web.config @@ -0,0 +1,43 @@ + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/Handlers/ClientValidationRegistrationCoordinator.cs b/src/Orchard.Web/Modules/Orchard.DynamicForms/Handlers/ClientValidationRegistrationCoordinator.cs index 3f874b676..7cc14e7d1 100644 --- a/src/Orchard.Web/Modules/Orchard.DynamicForms/Handlers/ClientValidationRegistrationCoordinator.cs +++ b/src/Orchard.Web/Modules/Orchard.DynamicForms/Handlers/ClientValidationRegistrationCoordinator.cs @@ -1,9 +1,11 @@ +using System; using System.Linq; using Orchard.DynamicForms.Elements; using Orchard.DynamicForms.Services; using Orchard.DynamicForms.Services.Models; using Orchard.Layouts.Framework.Display; using Orchard.Layouts.Framework.Drivers; +using Orchard.Layouts.Framework.Elements; using Orchard.Layouts.Services; namespace Orchard.DynamicForms.Handlers { @@ -46,11 +48,18 @@ namespace Orchard.DynamicForms.Handlers { } void IElementEventHandler.CreatingDisplay(ElementCreatingDisplayShapeContext context) { } - void IElementEventHandler.Displayed(ElementDisplayedContext context) {} + void IElementEventHandler.Displayed(ElementDisplayedContext context) { } void IFormElementEventHandler.GetElementValue(FormElement element, ReadElementValuesContext context) { } - void IElementEventHandler.Creating(ElementCreatingContext context) {} - void IElementEventHandler.Created(ElementCreatedContext context) {} - void IElementEventHandler.BuildEditor(ElementEditorContext context) {} - void IElementEventHandler.UpdateEditor(ElementEditorContext context) {} + void IElementEventHandler.Creating(ElementCreatingContext context) { } + void IElementEventHandler.Created(ElementCreatedContext context) { } + void IElementEventHandler.BuildEditor(ElementEditorContext context) { } + void IElementEventHandler.UpdateEditor(ElementEditorContext context) { } + void IElementEventHandler.Removing(ElementRemovingContext context) { } + void IElementEventHandler.LayoutSaving(ElementSavingContext context) { } + void IElementEventHandler.Exporting(ExportElementContext context) { } + void IElementEventHandler.Exported(ExportElementContext context) { } + void IElementEventHandler.Importing(ImportElementContext context) { } + void IElementEventHandler.Imported(ImportElementContext context) { } + void IElementEventHandler.ImportCompleted(ImportElementContext context) { } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Assets.json b/src/Orchard.Web/Modules/Orchard.Layouts/Assets.json index 6a7f2175c..9aab5a7cc 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Assets.json +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Assets.json @@ -53,6 +53,7 @@ "inputs": [ "Assets/JavaScript/Models/Helpers.js", "Assets/JavaScript/Models/Editor.js", + "Assets/JavaScript/Models/RecycleBin.js", "Assets/JavaScript/Models/Element.js", "Assets/JavaScript/Models/Container.js", "Assets/JavaScript/Models/Canvas.js", diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Assets/JavaScript/Models/Container.js b/src/Orchard.Web/Modules/Orchard.Layouts/Assets/JavaScript/Models/Container.js index 336b73b6e..1825ba5f0 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Assets/JavaScript/Models/Container.js +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Assets/JavaScript/Models/Container.js @@ -46,6 +46,7 @@ var index = _(this.children).indexOf(child); if (index >= 0) { this.children.splice(index, 1); + this.editor.recycleBin.add(child); if (child.getIsActive()) this.editor.activeElement = null; if (child.getIsFocused()) { diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Assets/JavaScript/Models/Editor.js b/src/Orchard.Web/Modules/Orchard.Layouts/Assets/JavaScript/Models/Editor.js index 86b664804..30cdb4916 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Assets/JavaScript/Models/Editor.js +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Assets/JavaScript/Models/Editor.js @@ -10,6 +10,7 @@ this.dropTargetElement = null; this.isDragging = false; this.isResizing = false; + this.recycleBin = new LayoutEditor.RecycleBin(); this.resetToolboxElements = function () { this.toolboxElements = [ diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Assets/JavaScript/Models/RecycleBin.js b/src/Orchard.Web/Modules/Orchard.Layouts/Assets/JavaScript/Models/RecycleBin.js new file mode 100644 index 000000000..c5318455c --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Assets/JavaScript/Models/RecycleBin.js @@ -0,0 +1,27 @@ +var LayoutEditor; +(function (LayoutEditor) { + + LayoutEditor.RecycleBin = function () { + this.elements = []; + + this.add = function(element) { + this.elements.push(element); + }; + + this.toObject = function () { + var result = { + type: "RecycleBin", + children: [] + }; + + for (var i = 0; i < this.elements.length; i++) { + var element = this.elements[i]; + var dto = element.toObject(); + result.children.push(dto); + } + + return result; + }; + }; + +})(LayoutEditor || (LayoutEditor = {})); diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Drivers/LayoutPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Drivers/LayoutPartDriver.cs index 5d827a037..61b0cd668 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Drivers/LayoutPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Drivers/LayoutPartDriver.cs @@ -5,6 +5,7 @@ using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; using Orchard.ContentManagement.Handlers; using Orchard.DisplayManagement; +using Orchard.Layouts.Elements; using Orchard.Layouts.Framework.Display; using Orchard.Layouts.Framework.Drivers; using Orchard.Layouts.Framework.Elements; @@ -112,12 +113,12 @@ namespace Orchard.Layouts.Drivers { updater.TryUpdateModel(viewModel, Prefix, null, new[] { "Part", "Templates" }); var describeContext = new DescribeElementsContext { Content = part }; var elementInstances = _mapper.ToLayoutModel(viewModel.LayoutEditor.Data, describeContext).ToArray(); - var removedElementInstances = _serializer.Deserialize(viewModel.LayoutEditor.Trash, describeContext).ToArray(); + var recycleBin = (RecycleBin)_mapper.ToLayoutModel(viewModel.LayoutEditor.RecycleBin, describeContext).SingleOrDefault(); var context = new LayoutSavingContext { Content = part, Updater = updater, Elements = elementInstances, - RemovedElements = removedElementInstances + RemovedElements = recycleBin != null ? recycleBin.Elements : Enumerable.Empty() }; _elementManager.Saving(context); diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Elements/PlaceableContentItem.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Elements/PlaceableContentItem.cs new file mode 100644 index 000000000..441ed697e --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Elements/PlaceableContentItem.cs @@ -0,0 +1,23 @@ +using Orchard.Layouts.Framework.Elements; +using Orchard.Layouts.Helpers; + +namespace Orchard.Layouts.Elements { + public class PlaceableContentItem : Element { + public override string Category { + get { return "Content Items"; } + } + + public override bool IsSystemElement { + get { return true; } + } + + public override bool HasEditor { + get { return false; } + } + + public int? ContentItemId { + get { return this.Retrieve(x => x.ContentItemId); } + set { this.Store(x => x.ContentItemId, value); } + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Elements/RecycleBin.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Elements/RecycleBin.cs new file mode 100644 index 000000000..10b509e2d --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Elements/RecycleBin.cs @@ -0,0 +1,8 @@ +using Orchard.Layouts.Framework.Elements; + +namespace Orchard.Layouts.Elements { + public class RecycleBin : Container { + public override string Category { get { return null; } } + public override bool IsSystemElement { get { return true; } } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Drivers/ExportElementContext.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Drivers/ExportElementContext.cs index c00032302..be60f48e1 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Drivers/ExportElementContext.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Drivers/ExportElementContext.cs @@ -3,12 +3,14 @@ using Orchard.Layouts.Models; namespace Orchard.Layouts.Framework.Drivers { public class ExportElementContext { - public ExportElementContext() { - ExportableData = new ElementDataDictionary(); + public ExportElementContext(Element element, ILayoutAspect layout, ElementDataDictionary exportableData) { + Element = element; + Layout = layout; + ExportableData = exportableData; } - public ILayoutAspect Layout { get; set; } - public Element Element { get; set; } - public ElementDataDictionary ExportableData { get; set; } + public ILayoutAspect Layout { get; private set; } + public Element Element { get; private set; } + public ElementDataDictionary ExportableData { get; private set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Drivers/ImportElementContext.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Drivers/ImportElementContext.cs index 51d5c3146..7b6e7cb24 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Drivers/ImportElementContext.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Drivers/ImportElementContext.cs @@ -3,13 +3,16 @@ using Orchard.Layouts.Models; namespace Orchard.Layouts.Framework.Drivers { public class ImportElementContext { - public ImportElementContext() { - ExportableData = new ElementDataDictionary(); + public ImportElementContext(Element element, ILayoutAspect layout, ElementDataDictionary exportableData, IContentImportSession session) { + Element = element; + Layout = layout; + ExportableData = exportableData; + Session = session; } - public ILayoutAspect Layout { get; set; } - public Element Element { get; set; } - public ElementDataDictionary ExportableData { get; set; } - public IContentImportSession Session { get; set; } + public ILayoutAspect Layout { get; private set; } + public Element Element { get; private set; } + public ElementDataDictionary ExportableData { get; private set; } + public IContentImportSession Session { get; private set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementDescriptor.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementDescriptor.cs index 4de7a1889..dc8b606f6 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementDescriptor.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementDescriptor.cs @@ -15,9 +15,16 @@ namespace Orchard.Layouts.Framework.Elements { Category = category; GetDrivers = Enumerable.Empty; CreatingDisplay = context => { }; - Displaying = context => {}; + Displaying = context => { }; Editor = context => { }; UpdateEditor = context => { }; + LayoutSaving = context => { }; + Removing = context => { }; + Exporting = context => { }; + Exported = context => { }; + Importing = context => { }; + Imported = context => { }; + ImportCompleted = context => { }; StateBag = new Dictionary(); } @@ -33,6 +40,13 @@ namespace Orchard.Layouts.Framework.Elements { public Action Displayed { get; set; } public Action Editor { get; set; } public Action UpdateEditor { get; set; } + public Action LayoutSaving { get; set; } + public Action Removing { get; set; } + public Action Exporting { get; set; } + public Action Exported { get; set; } + public Action Importing { get; set; } + public Action Imported { get; set; } + public Action ImportCompleted { get; set; } public bool IsSystemElement { get; set; } public bool EnableEditorDialog { get; set; } public IDictionary StateBag { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementRemovingContext.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementRemovingContext.cs index 753971b54..a1c6b61f3 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementRemovingContext.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementRemovingContext.cs @@ -1,11 +1,20 @@ -namespace Orchard.Layouts.Framework.Elements { - public class ElementRemovingContext : LayoutSavingContext { - public ElementRemovingContext(LayoutSavingContext stub) { - Content = stub.Content; - RemovedElements = stub.RemovedElements; - Updater = stub.Updater; - Elements = stub.Elements; +using System.Collections.Generic; +using Orchard.ContentManagement; + +namespace Orchard.Layouts.Framework.Elements { + public class ElementRemovingContext { + public ElementRemovingContext(Element element, IEnumerable elements, IEnumerable removedElements, IContent content) { + Element = element; + Elements = elements; + RemovedElements = removedElements; + Content = content; } - public Element Element { get; set; } + + public IContent Content { get; private set; } + // All the other elements on the canvas. + public IEnumerable Elements { get; set; } + // All the other removed elements from the canvas (including the current element). + public IEnumerable RemovedElements { get; set; } + public Element Element { get; private set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementSavingContext.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementSavingContext.cs index 46e31754f..d8aeeb13c 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementSavingContext.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Framework/Elements/ElementSavingContext.cs @@ -1,10 +1,11 @@ namespace Orchard.Layouts.Framework.Elements { public class ElementSavingContext : LayoutSavingContext { - public ElementSavingContext(LayoutSavingContext stub) { + public ElementSavingContext(Element element, LayoutSavingContext stub) { + Element = element; Content = stub.Content; Updater = stub.Updater; Elements = stub.Elements; } - public Element Element { get; set; } + public Element Element { get; private set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/ElementDriversCoordinator.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/ElementDriversCoordinator.cs index 904dd08c7..542f51207 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/ElementDriversCoordinator.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/ElementDriversCoordinator.cs @@ -1,5 +1,6 @@ using System; using Orchard.Layouts.Framework.Drivers; +using Orchard.Layouts.Framework.Elements; using Orchard.Layouts.Services; namespace Orchard.Layouts.Handlers { @@ -17,6 +18,34 @@ namespace Orchard.Layouts.Handlers { BuildEditorInternal(context, driver => driver.UpdateEditor(context)); } + public override void LayoutSaving(ElementSavingContext context) { + InvokeDrivers(context.Element, driver => driver.LayoutSaving(context)); + } + + public override void Removing(ElementRemovingContext context) { + InvokeDrivers(context.Element, driver => driver.Removing(context)); + } + + public override void Exporting(ExportElementContext context) { + InvokeDrivers(context.Element, driver => driver.Exporting(context)); + } + + public override void Exported(ExportElementContext context) { + InvokeDrivers(context.Element, driver => driver.Exported(context)); + } + + public override void Importing(ImportElementContext context) { + InvokeDrivers(context.Element, driver => driver.Importing(context)); + } + + public override void Imported(ImportElementContext context) { + InvokeDrivers(context.Element, driver => driver.Imported(context)); + } + + public override void ImportCompleted(ImportElementContext context) { + InvokeDrivers(context.Element, driver => driver.ImportCompleted(context)); + } + private void BuildEditorInternal(ElementEditorContext context, Func action) { var descriptor = context.Element.Descriptor; var drivers = _elementManager.GetDrivers(descriptor); @@ -36,5 +65,10 @@ namespace Orchard.Layouts.Handlers { } } } + + private void InvokeDrivers(Element element, Action action) { + var drivers = _elementManager.GetDrivers(element.Descriptor); + drivers.Invoke(action, Logger); + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/ElementRuleCoordinator.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/ElementRuleCoordinator.cs index 05ace83fd..ad5fd9989 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/ElementRuleCoordinator.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/ElementRuleCoordinator.cs @@ -1,16 +1,16 @@ using System; using System.Collections.Generic; +using Orchard.Conditions.Services; using Orchard.Layouts.Framework.Display; using Orchard.Layouts.Services; -using Orchard.Widgets.Services; namespace Orchard.Layouts.Handlers { public class ElementRuleCoordinator : ElementEventHandlerBase { - private readonly IRuleManager _ruleManager; + private readonly IConditionManager _conditionManager; private readonly Dictionary _evaluations = new Dictionary(); - public ElementRuleCoordinator(IRuleManager ruleManager) { - _ruleManager = ruleManager; + public ElementRuleCoordinator(IConditionManager conditionManager) { + _conditionManager = conditionManager; } public override void CreatingDisplay(ElementCreatingDisplayShapeContext context) { @@ -27,7 +27,7 @@ namespace Orchard.Layouts.Handlers { if (_evaluations.ContainsKey(rule)) return _evaluations[rule]; - var result = _ruleManager.Matches(rule); + var result = _conditionManager.Matches(rule); _evaluations[rule] = result; return result; } diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/LayoutPartHandler.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/LayoutPartHandler.cs index 0e2c3b37a..a61e5e301 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/LayoutPartHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Handlers/LayoutPartHandler.cs @@ -1,10 +1,13 @@ using System; +using System.Collections.Generic; +using System.Linq; using Orchard.Alias; using Orchard.Autoroute.Models; using Orchard.ContentManagement; using Orchard.ContentManagement.Handlers; using Orchard.Data; using Orchard.DisplayManagement; +using Orchard.Layouts.Framework.Elements; using Orchard.Layouts.Models; using Orchard.Layouts.Services; using Orchard.Utility.Extensions; @@ -17,13 +20,15 @@ namespace Orchard.Layouts.Handlers { private readonly IShapeDisplay _shapeDisplay; private readonly ILayoutSerializer _serializer; private readonly IAliasService _aliasService; + private readonly IElementManager _elementManager; public LayoutPartHandler( - IRepository repository, - ILayoutManager layoutManager, - IContentManager contentManager, - IContentPartDisplay contentPartDisplay, - IShapeDisplay shapeDisplay, + IRepository repository, + ILayoutManager layoutManager, + IElementManager elementManager, + IContentManager contentManager, + IContentPartDisplay contentPartDisplay, + IShapeDisplay shapeDisplay, ILayoutSerializer serializer, IAliasService aliasService) { @@ -33,10 +38,12 @@ namespace Orchard.Layouts.Handlers { _shapeDisplay = shapeDisplay; _serializer = serializer; _aliasService = aliasService; + _elementManager = elementManager; Filters.Add(StorageFilter.For(repository)); OnPublished(UpdateTemplateClients); OnIndexing(IndexLayout); + OnRemoved(RemoveElements); } private void IndexLayout(IndexContentContext context, LayoutPart part) { @@ -87,6 +94,16 @@ namespace Orchard.Layouts.Handlers { } } + private void RemoveElements(RemoveContentContext context, LayoutPart part) { + var elements = _layoutManager.LoadElements(part).ToList(); + var savingContext = new LayoutSavingContext { + Content = part, + Elements = new List(), + RemovedElements = elements + }; + _elementManager.Removing(savingContext); + } + private bool IsHomePage(IContent content) { var homepage = _aliasService.Get(String.Empty); var displayRouteValues = _contentManager.GetItemMetadata(content).DisplayRouteValues; diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Helpers/MetaDataExtensions.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Helpers/MetaDataExtensions.cs index 0464c6644..aebdde50e 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Helpers/MetaDataExtensions.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Helpers/MetaDataExtensions.cs @@ -5,5 +5,9 @@ namespace Orchard.Layouts.Helpers { public static ContentPartDefinitionBuilder Placeable(this ContentPartDefinitionBuilder builder, bool placeable = true) { return builder.WithSetting("ContentPartLayoutSettings.Placeable", placeable.ToString()); } + + public static ContentTypeDefinitionBuilder Placeable(this ContentTypeDefinitionBuilder builder, bool placeable = true) { + return builder.WithSetting("ContentTypeLayoutSettings.Placeable", placeable.ToString()); + } } } diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Helpers/PlaceableContentExtensions.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Helpers/PlaceableContentExtensions.cs new file mode 100644 index 000000000..498db8c34 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Helpers/PlaceableContentExtensions.cs @@ -0,0 +1,14 @@ +using Orchard.ContentManagement; +using Orchard.ContentManagement.FieldStorage.InfosetStorage; + +namespace Orchard.Layouts.Helpers { + public static class PlaceableContentExtensions { + public static bool IsPlaceableContent(this IContent content) { + return content.As().Retrieve("PlacedAsElement"); + } + + public static void IsPlaceableContent(this IContent content, bool value) { + content.As().Store("PlacedAsElement", value); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Module.txt b/src/Orchard.Web/Modules/Orchard.Layouts/Module.txt index 4f21508df..55e7dd8b7 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Module.txt +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Module.txt @@ -10,7 +10,7 @@ Features: Orchard.Layouts: Name: Layouts Description: Provides tools to create layouts. - Dependencies: Common, Orchard.jQuery, Orchard.Forms, Orchard.Tokens, Orchard.MediaLibrary, Orchard.Widgets + Dependencies: Common, Orchard.jQuery, Orchard.Forms, Orchard.Tokens, Orchard.MediaLibrary, Orchard.Conditions Category: Layout Orchard.Layouts.Snippets: Name: Layout Snippets diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj b/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj index 8771e0175..c379d3a19 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj @@ -79,15 +79,13 @@ + - - - @@ -292,6 +290,10 @@ {66fccd76-2761-47e3-8d11-b45d0001ddaa} Orchard.Autoroute + + {98251eae-a41b-47b2-aa91-e28b8482da70} + Orchard.Conditions + {642a49d7-8752-4177-80d6-bfbbcfad3de0} Orchard.Forms @@ -313,10 +315,6 @@ {6f759635-13d7-4e94-bcc9-80445d63f117} Orchard.Tokens - - {194d3ccc-1153-474d-8176-fde8d7d0d0bd} - Orchard.Widgets - @@ -338,6 +336,7 @@ + @@ -360,6 +359,7 @@ + @@ -368,6 +368,9 @@ + + + @@ -393,6 +396,8 @@ + + @@ -429,9 +434,9 @@ - + - + @@ -591,6 +596,18 @@ + + + + + + + + + + + + 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Providers/PlaceableContentElementHarvester.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Providers/PlaceableContentElementHarvester.cs new file mode 100644 index 000000000..3a7d37ab8 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Providers/PlaceableContentElementHarvester.cs @@ -0,0 +1,174 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Orchard.ContentManagement; +using Orchard.ContentManagement.Aspects; +using Orchard.ContentManagement.MetaData.Models; +using Orchard.Core.Contents.Settings; +using Orchard.Environment; +using Orchard.Layouts.Elements; +using Orchard.Layouts.Framework.Display; +using Orchard.Layouts.Framework.Drivers; +using Orchard.Layouts.Framework.Elements; +using Orchard.Layouts.Framework.Harvesters; +using Orchard.Layouts.Helpers; +using Orchard.Layouts.Settings; +using Orchard.Layouts.ViewModels; +using ContentItem = Orchard.ContentManagement.ContentItem; + +namespace Orchard.Layouts.Providers { + public class PlaceableContentElementHarvester : Component, IElementHarvester { + private readonly Work _contentManager; + + public PlaceableContentElementHarvester(Work contentManager) { + _contentManager = contentManager; + } + + public IEnumerable HarvestElements(HarvestElementsContext context) { + var contentTypeDefinitions = GetPlaceableContentTypeDefinitions(); + + return contentTypeDefinitions.Select(contentTypeDefinition => { + var settings = contentTypeDefinition.Settings; + var description = settings.ContainsKey("Description") ? settings["Description"] : contentTypeDefinition.DisplayName; + return new ElementDescriptor(typeof (PlaceableContentItem), contentTypeDefinition.Name, T(contentTypeDefinition.DisplayName), T(description), category: "Content Items") { + Displaying = Displaying, + Editor = Editor, + UpdateEditor = UpdateEditor, + ToolboxIcon = "\uf1b2", + EnableEditorDialog = true, + Removing = RemoveContentItem, + Exporting = ExportElement, + Importing = ImportElement, + StateBag = new Dictionary { + { "ContentTypeName", contentTypeDefinition.Name } + } + }; + }); + } + + private void Displaying(ElementDisplayingContext context) { + var contentTypeName = (string)context.Element.Descriptor.StateBag["ContentTypeName"]; + var element = (PlaceableContentItem)context.Element; + var contentItemId = element.ContentItemId; + var versionOptions = context.DisplayType == "Design" ? VersionOptions.Latest : VersionOptions.Published; + var contentItem = contentItemId != null + ? _contentManager.Value.Get(contentItemId.Value, versionOptions) + : _contentManager.Value.New(contentTypeName); + + var contentShape = contentItem != null ? _contentManager.Value.BuildDisplay(contentItem) : default(dynamic); + context.ElementShape.ContentItem = contentItem; + context.ElementShape.ContentShape = contentShape; + } + + private void Editor(ElementEditorContext context) { + UpdateEditor(context); + } + + private void UpdateEditor(ElementEditorContext context) { + var contentTypeName = (string)context.Element.Descriptor.StateBag["ContentTypeName"]; + var element = (PlaceableContentItem) context.Element; + var elementViewModel = new PlaceableContentItemViewModel { + ContentItemId = element.ContentItemId + }; + + if (context.Updater != null) { + context.Updater.TryUpdateModel(elementViewModel, context.Prefix, null, null); + } + + var contentItemId = elementViewModel.ContentItemId; + var contentItem = contentItemId != null + ? _contentManager.Value.Get(contentItemId.Value, VersionOptions.Latest) + : _contentManager.Value.New(contentTypeName); + + dynamic contentEditorShape; + + if (context.Updater != null) { + if (contentItem.Id == 0) { + _contentManager.Value.Create(contentItem, VersionOptions.Draft); + } + else { + var isDraftable = contentItem.TypeDefinition.Settings.GetModel().Draftable; + var versionOptions = isDraftable ? VersionOptions.DraftRequired : VersionOptions.Latest; + contentItem = _contentManager.Value.Get(contentItem.Id, versionOptions); + } + + element.ContentItemId = contentItem.Id; + + // If the placed content item has the CommonPart attached, set its Container property to the Content (if any). + // This helps preventing widget types from appearing as orphans. + var commonPart = contentItem.As(); + if (commonPart != null) + commonPart.Container = context.Content; + + contentItem.IsPlaceableContent(true); + contentEditorShape = _contentManager.Value.UpdateEditor(contentItem, context.Updater); + + _contentManager.Value.Publish(contentItem); + } + else { + contentEditorShape = _contentManager.Value.BuildEditor(contentItem); + } + + var elementEditorShape = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.PlaceableContentItem", Model: elementViewModel, Prefix: context.Prefix); + + elementEditorShape.Metadata.Position = "Properties:0"; + contentEditorShape.Metadata.Position = "Properties:0"; + context.EditorResult.Add(elementEditorShape); + context.EditorResult.Add(contentEditorShape); + } + + private void RemoveContentItem(ElementRemovingContext context) { + var element = (PlaceableContentItem) context.Element; + var contentItemId = element.ContentItemId; + + // Only remove the content item if no other elements are referencing this one. + // This can happen if the user cut an element and then pasted it back. + // That will delete the initial element and create a copy. + var placeableElements = + from e in context.Elements.Flatten() + let p = e as PlaceableContentItem + where p != null && p.ContentItemId == contentItemId + select p; + + if (placeableElements.Any()) + return; + + var contentItem = contentItemId != null ? _contentManager.Value.Get(contentItemId.Value, VersionOptions.Latest) : default(ContentItem); + + if(contentItem != null) + _contentManager.Value.Remove(contentItem); + } + + private void ExportElement(ExportElementContext context) { + var element = (PlaceableContentItem)context.Element; + var contentItemId = element.ContentItemId; + var contentItem = contentItemId != null ? _contentManager.Value.Get(contentItemId.Value, VersionOptions.Latest) : default(ContentItem); + var contentItemIdentity = contentItem != null ? _contentManager.Value.GetItemMetadata(contentItem).Identity.ToString() : default(string); + + if (contentItemIdentity != null) + context.ExportableData["ContentItemId"] = contentItemIdentity; + } + + private void ImportElement(ImportElementContext context) { + var contentItemIdentity = context.ExportableData.Get("ContentItemId"); + + if (String.IsNullOrWhiteSpace(contentItemIdentity)) + return; + + var contentItem = context.Session.GetItemFromSession(contentItemIdentity); + var element = (PlaceableContentItem)context.Element; + + element.ContentItemId = contentItem != null ? contentItem.Id : default(int?); + } + + private IEnumerable GetPlaceableContentTypeDefinitions() { + // Select all types that have either "Placeable" set to true. + var contentTypeDefinitionsQuery = + from contentTypeDefinition in _contentManager.Value.GetContentTypeDefinitions() + where contentTypeDefinition.Settings.GetModel().Placeable + select contentTypeDefinition; + + return contentTypeDefinitionsQuery.ToList(); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/DemoConfig.js b/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/DemoConfig.js deleted file mode 100644 index 75b2f50e6..000000000 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/DemoConfig.js +++ /dev/null @@ -1,50 +0,0 @@ -var demoConfig = { - "createContentUrl": "/Modules/Orchard.Layouts/Controller/Create/{contentTypeId}", - "editContentUrl": "/Modules/Orchard.Layouts/Controller/Edit/{contentTypeId}", - "categories": [ - { - "name": "Content", - "contentTypes": [ - { "label": "Content Item", "id": "Orchard.Layouts.Elements.ContentItem" }, - { "label": "Html", "id": "Orchard.Layouts.Elements.Html" }, - { "label": "Paragraph", "id": "Orchard.Layouts.Elements.Paragraph" }, - { "label": "Text", "id": "Orchard.Layouts.Elements.Text" } - ] - }, - { - "name": "Media", - "contentTypes": [ - { "label": "Image", "id": "Orchard.Layouts.Elements.Image" }, - { "label": "Media Item", "id": "Orchard.Layouts.Elements.MediaItem" }, - { "label": "Vector Image", "id": "Orchard.Layouts.Elements.VectorImage" } - ] - }, - { - "name": "Parts", - "contentTypes": [ - { "label": "CommonPart", "id": "CommonPart" }, - { "label": "TitlePart", "id": "TitlePart" } - ] - }, - { - "name": "Forms", - "contentTypes": [ - { "label": "Button", "id": "Orchard.DynamicForms.Elements.Button" }, - { "label": "Check Box", "id": "Orchard.DynamicForms.Elements.CheckBox" }, - { "label": "Email Field", "id": "Orchard.DynamicForms.Elements.EmailField" }, - { "label": "Enumeration", "id": "Orchard.DynamicForms.Elements.Enumeration" }, - { "label": "Form", "id": "Orchard.DynamicForms.Elements.Form" }, - { "label": "Hidden Field", "id": "Orchard.DynamicForms.Elements.HiddenField" }, - { "label": "Ip Address Field", "id": "Orchard.DynamicForms.Elements.IpAddressField" }, - { "label": "Label", "id": "Orchard.DynamicForms.Elements.Label" }, - { "label": "Password Field", "id": "Orchard.DynamicForms.Elements.PasswordField" }, - { "label": "Radio Button", "id": "Orchard.DynamicForms.Elements.RadioButton" }, - { "label": "Text Area", "id": "Orchard.DynamicForms.Elements.TextArea" }, - { "label": "Text Field", "id": "Orchard.DynamicForms.Elements.TextField" }, - { "label": "User Name Field", "id": "Orchard.DynamicForms.Elements.UserNameField" }, - { "label": "Validation Message", "id": "Orchard.DynamicForms.Elements.ValidationMessage" }, - { "label": "Validation Summary", "id": "Orchard.DynamicForms.Elements.ValidationSummary" } - ] - } - ] -}; diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/DemoData.js b/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/DemoData.js deleted file mode 100644 index 27f15d98e..000000000 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/DemoData.js +++ /dev/null @@ -1,261 +0,0 @@ -var demoData = { - "type": "Canvas", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "children": [ - { - "type": "Grid", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "children": [ - { - "type": "Row", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "children": [ - { - "type": "Column", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "width": 4, - "offset": 0, - "children": [ - { - "type": "Content", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "contentType": "Image", - "html": "" - } - ] - }, - { - "type": "Column", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "width": 8, - "offset": 0, - "children": [ - { - "type": "Content", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "contentType": "HTML", - "html": "

Who are we?

" - }, - { - "type": "Content", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "contentType": "Vector Image", - "html": "" - }, - { - "type": "Content", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "contentType": "HTML", - "html": "

IDeliverable is a company of like-minded individuals with a true passion for .NET based software development and cloud computing.

" - } - ] - } - ] - }, - { - "type": "Row", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "children": [ - { - "type": "Column", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "width": 12, - "offset": 0, - "children": [ - { - "type": "Content", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "contentType": "HTML", - "html": "

What do we do?

We provide software development, consulting and training within our three areas of focus.

" - } - ] - } - ] - }, - { - "type": "Row", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "children": [ - { - "type": "Column", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "width": 4, - "offset": 0, - "children": [ - { - "type": "Content", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "contentType": "HTML", - "html": "

.NET software development

Microsoft .NET is at the core of everything we do. We have worked with .NET since its inception back in 2000 and are exceptionally proficient in all aspects of the platform, including its languages, frameworks, services and tools. Whether it’s the latest ASP.NET technologies with HTML5, CSS3 and modern JavaScript frameworks, Windows Phone and Windows Store apps with XAML, or more enterprise oriented Windows Forms or WPF rich client apps with WCF based service back ends, we’ve done it all for years and feel right at home.

" - } - ] - }, - { - "type": "Column", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "width": 4, - "offset": 0, - "children": [ - { - "type": "Content", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "contentType": "HTML", - "html": "

Microsoft Azure

We are true believers in cloud computing, and as far as hosting goes, we believe there’s no better home for .NET based applications than Microsoft Azure. And so we have worked hard in the past few years to become experts in every nook and cranny of this platform. Our expertise includes architecting and designing applications for Microsoft Azure, adapting and migrating existing applications to Microsoft Azure, automating Microsoft Azure deployment and building hybrid solutions involving both on-premises components and Microsoft Azure.

" - } - ] - }, - { - "type": "Column", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "width": 4, - "offset": 0, - "children": [ - { - "type": "Content", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "contentType": "HTML", - "html": "

Orchard CMS

" - }, - { - "type": "Grid", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "children": [ - { - "type": "Row", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "children": [ - { - "type": "Column", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "width": 4, - "offset": 0, - "children": [ - { - "type": "Content", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "contentType": "HTML", - "html": "

When it comes to web site development, the Orchard CMS is our framework of choice.

" - } - ] - }, - { - "type": "Column", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "width": 4, - "offset": 0, - "children": [ - { - "type": "Content", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "contentType": "HTML", - "html": "

We have worked with Orchard for almost three years and have built a wide array of web sites, large and small, using it. We have two developers who participate actively in the development of Orchard and who have commit rights in the official Orchard source code repository.

" - } - ] - }, - { - "type": "Column", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "width": 4, - "offset": 0, - "children": [ - { - "type": "Content", - "data": null, - "htmlId": null, - "htmlClass": null, - "htmlStyle": null, - "contentType": "HTML", - "html": "

One of them is even on the Orchard steering committee, so it’s fair to say we have our ears to the ground when it comes to what’s happening in the Orchard community.

" - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] -} diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/LayoutDesignerHost.js b/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/LayoutDesignerHost.js index 2ac119d0a..b4a68a445 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/LayoutDesignerHost.js +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/LayoutDesignerHost.js @@ -4,7 +4,6 @@ this.element = element; this.element.data("layout-designer-host", this); this.editor = window.layoutEditor; - this.isFormSubmitting = false; this.settings = { antiForgeryToken: self.element.data("anti-forgery-token"), editorDialogTitleFormat: self.element.data("editor-dialog-title-format"), @@ -62,6 +61,11 @@ return JSON.stringify(layoutData, null, "\t"); }; + var serializeRecycleBin = function () { + var recycleBinData = self.editor.recycleBin.toObject(); + return JSON.stringify(recycleBinData, null, "\t"); + }; + var applyTemplate = function (templateId) { var layoutData = serializeCanvas(); @@ -79,21 +83,23 @@ }); }; - var monitorForm = function() { - var layoutDesigner = self.element; - var form = layoutDesigner.closest("form"); - + var monitorForm = function () { + var form = $(".zone-content form:first"); + form.on("submit", function (e) { - self.isFormSubmitting = true; + form.attr("isSubmitting", true); serializeLayout(); }); }; var serializeLayout = function () { var layoutDataField = self.element.find(".layout-data-field"); + var recycleBinDataField = self.element.find(".recycle-bin-data-field"); var layoutDataDataJson = serializeCanvas(); + var recycleBinDataJson = serializeRecycleBin(); layoutDataField.val(layoutDataDataJson); + recycleBinDataField.val(recycleBinDataJson); }; this.element.on("change", ".template-picker select", function (e) { @@ -103,7 +109,10 @@ }); $(window).on("beforeunload", function () { - if (!self.isFormSubmitting && self.editor.isDirty()) + + var form = $(".zone-content form:first"); + var isFormSubmitting = form.attr("isSubmitting"); + if (!isFormSubmitting && self.editor.isDirty()) return "You have unsaved changes."; return undefined; @@ -118,7 +127,7 @@ window.Orchard.Layouts.LayoutEditorHost = window.Orchard.Layouts.LayoutEditorHost || {}; $(function () { - var host = new LayoutDesignerHost($(".layout-designer")); + window.layoutDesignerHost = new LayoutDesignerHost($(".layout-designer")); $(".layout-designer").each(function (e) { var designer = $(this); var dialog = designer.find(".layout-editor-help-dialog"); diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/Models.js b/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/Models.js index 9e2971ba2..0299e2362 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/Models.js +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/Models.js @@ -58,6 +58,7 @@ var LayoutEditor; this.dropTargetElement = null; this.isDragging = false; this.isResizing = false; + this.recycleBin = new LayoutEditor.RecycleBin(); this.resetToolboxElements = function () { this.toolboxElements = [ @@ -78,6 +79,34 @@ var LayoutEditor; })(LayoutEditor || (LayoutEditor = {})); +var LayoutEditor; +(function (LayoutEditor) { + + LayoutEditor.RecycleBin = function () { + this.elements = []; + + this.add = function(element) { + this.elements.push(element); + }; + + this.toObject = function () { + var result = { + type: "RecycleBin", + children: [] + }; + + for (var i = 0; i < this.elements.length; i++) { + var element = this.elements[i]; + var dto = element.toObject(); + result.children.push(dto); + } + + return result; + }; + }; + +})(LayoutEditor || (LayoutEditor = {})); + var LayoutEditor; (function (LayoutEditor) { @@ -154,9 +183,9 @@ var LayoutEditor; this.setIsFocused = function () { if (!this.editor) - return; + return; if (!this.children && this.isTemplated) - return; + return; if (this.editor.isDragging || this.editor.isResizing) return; @@ -208,7 +237,7 @@ var LayoutEditor; this.delete = function () { if (!this.canDelete()) return; - this.parent.deleteChild(this); + this.parent.deleteChild(this); }; this.canMoveUp = function () { @@ -220,7 +249,7 @@ var LayoutEditor; this.moveUp = function () { if (!this.canMoveUp()) return; - this.parent.moveChildUp(this); + this.parent.moveChildUp(this); }; this.canMoveDown = function () { @@ -232,7 +261,7 @@ var LayoutEditor; this.moveDown = function () { if (!this.canMoveDown()) return; - this.parent.moveChildDown(this); + this.parent.moveChildDown(this); }; this.elementToObject = function () { @@ -262,8 +291,8 @@ var LayoutEditor; this.cut = function (clipboardData) { if (this.canDelete()) { - this.copy(clipboardData); - this.delete(); + this.copy(clipboardData); + this.delete(); } }; @@ -322,6 +351,7 @@ var LayoutEditor; var index = _(this.children).indexOf(child); if (index >= 0) { this.children.splice(index, 1); + this.editor.recycleBin.add(child); if (child.getIsActive()) this.editor.activeElement = null; if (child.getIsFocused()) { @@ -431,7 +461,7 @@ var LayoutEditor; result.children = this.childrenToObject(); return result; }; - }; + }; LayoutEditor.Canvas.from = function (value) { var result = new LayoutEditor.Canvas( diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/contentpart-layouts-settings.js b/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/contentpart-layouts-settings.js deleted file mode 100644 index 99f4e8704..000000000 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/contentpart-layouts-settings.js +++ /dev/null @@ -1,19 +0,0 @@ -(function ($) { - var placeable = $("input[name=\"ContentPartLayoutSettings.Placeable\"]"); - - $(placeable).on("change", function (e) { - syncEnableEditorInput(); - }); - - $(function () { - syncEnableEditorInput(); - }); - - var syncEnableEditorInput = function () { - var enableEditorDialog = $("input[name=\"ContentPartLayoutSettings.EnableEditorDialog\"]"); - var isPlaceable = placeable.is(":checked"); - - enableEditorDialog.prop("disabled", !isPlaceable); - }; - -})(jQuery); \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/dialog.js b/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/dialog.js index c2843396f..d7c4bd15e 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/dialog.js +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Scripts/dialog.js @@ -76,8 +76,6 @@ $(document).off("keyup", onKeyUp); closedDialogs.push(self); - - }; this.load = function (url, data, method) { @@ -135,8 +133,8 @@ if (self.frame == null) return; - self.frame.element.height($(window).height() * .75); - self.frame.element.width($(window).width() * .75); + self.frame.element.height($(window).height() * .80); + self.frame.element.width($(window).width() * .87); }; var resizeView = function () { diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Services/DefaultModelMaps.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Services/DefaultModelMaps.cs index 51391b64a..d463892ee 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Services/DefaultModelMaps.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Services/DefaultModelMaps.cs @@ -45,7 +45,7 @@ namespace Orchard.Layouts.Services { element.HtmlClass = (string)node["htmlClass"]; element.HtmlStyle = (string)node["htmlStyle"]; element.IsTemplated = (bool)(node["isTemplated"] ?? false); - element.Rule = (string) node["rule"]; + element.Rule = (string)node["rule"]; } protected bool? ReadBoolean(JToken node) { @@ -113,7 +113,7 @@ namespace Orchard.Layouts.Services { element.HtmlClass = (string)node["htmlClass"]; element.HtmlStyle = (string)node["htmlStyle"]; element.IsTemplated = (bool)(node["isTemplated"] ?? false); - element.Rule = (string) node["rule"]; + element.Rule = (string)node["rule"]; return element; } @@ -125,7 +125,7 @@ namespace Orchard.Layouts.Services { node["htmlStyle"] = element.HtmlStyle; node["rule"] = element.Rule; node["isTemplated"] = element.IsTemplated; - node["hasEditor"] = element.HasEditor; + node["hasEditor"] = element.Descriptor.EnableEditorDialog; node["contentType"] = element.Descriptor.TypeName; node["contentTypeLabel"] = element.Descriptor.DisplayText.Text; node["contentTypeClass"] = element.DisplayText.Text.HtmlClassify(); @@ -161,4 +161,19 @@ namespace Orchard.Layouts.Services { return element; } } + + public class RecycleBinModelMap : ILayoutModelMap { + public int Priority { get { return 0; } } + public string LayoutElementType { get { return "RecycleBin"; } } + public bool CanMap(Element element) { + return element.Type == "RecycleBin"; + } + + public Element ToElement(IElementManager elementManager, DescribeElementsContext describeContext, JToken node) { + return new RecycleBin(); + } + + public void FromElement(Element element, DescribeElementsContext describeContext, JToken node) { + } + } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Services/ElementEventHandlerBase.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Services/ElementEventHandlerBase.cs index b84fb2049..1a612824d 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Services/ElementEventHandlerBase.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Services/ElementEventHandlerBase.cs @@ -1,14 +1,22 @@ using Orchard.Layouts.Framework.Display; using Orchard.Layouts.Framework.Drivers; +using Orchard.Layouts.Framework.Elements; namespace Orchard.Layouts.Services { public abstract class ElementEventHandlerBase : Component, IElementEventHandler { public virtual void Creating(ElementCreatingContext context) { } public virtual void Created(ElementCreatedContext context) { } - public virtual void CreatingDisplay(ElementCreatingDisplayShapeContext context) {} + public virtual void CreatingDisplay(ElementCreatingDisplayShapeContext context) { } public virtual void Displaying(ElementDisplayingContext context) { } public virtual void Displayed(ElementDisplayedContext context) { } public virtual void BuildEditor(ElementEditorContext context) { } public virtual void UpdateEditor(ElementEditorContext context) { } + public virtual void LayoutSaving(ElementSavingContext context) { } + public virtual void Removing(ElementRemovingContext context) { } + public virtual void Exporting(ExportElementContext context) { } + public virtual void Exported(ExportElementContext context) { } + public virtual void Importing(ImportElementContext context) { } + public virtual void Imported(ImportElementContext context) { } + public virtual void ImportCompleted(ImportElementContext context) { } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Services/ElementManager.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Services/ElementManager.cs index c48d5b502..863672541 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Services/ElementManager.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Services/ElementManager.cs @@ -55,21 +55,21 @@ namespace Orchard.Layouts.Services { public IEnumerable GetCategories(DescribeElementsContext context) { var contentType = context.Content != null ? context.Content.ContentItem.ContentType : default(string); - return _cacheManager.Get(String.Format("ElementCategories-{0}-{1}", contentType ?? "AnyType", context.CacheVaryParam), true, acquireContext => { - var elements = DescribeElements(context); + return _cacheManager.Get(String.Format("ElementCategories-{0}-{1}", contentType ?? "AnyType", context.CacheVaryParam), acquireContext => { + var elementDescriptors = DescribeElements(context); var categoryDictionary = GetCategories(); var categoryDescriptorDictionary = new Dictionary(); - foreach (var element in elements) { - var category = categoryDictionary.ContainsKey(element.Category) - ? categoryDictionary[element.Category] - : new Category(element.Category, T(element.Category), position: int.MaxValue); + foreach (var elementDescriptor in elementDescriptors) { + var category = categoryDictionary.ContainsKey(elementDescriptor.Category) + ? categoryDictionary[elementDescriptor.Category] + : new Category(elementDescriptor.Category, T(elementDescriptor.Category), position: int.MaxValue); - var descriptor = categoryDescriptorDictionary.ContainsKey(element.Category) - ? categoryDescriptorDictionary[element.Category] - : categoryDescriptorDictionary[element.Category] = new CategoryDescriptor(category.Name, category.DisplayName, category.Description, category.Position); + var descriptor = categoryDescriptorDictionary.ContainsKey(elementDescriptor.Category) + ? categoryDescriptorDictionary[elementDescriptor.Category] + : categoryDescriptorDictionary[elementDescriptor.Category] = new CategoryDescriptor(category.Name, category.DisplayName, category.Description, category.Position); - descriptor.Elements.Add(element); + descriptor.Elements.Add(elementDescriptor); } acquireContext.Monitor(_signals.When(Signals.ElementDescriptors)); @@ -141,76 +141,68 @@ namespace Orchard.Layouts.Services { public void Saving(LayoutSavingContext context) { var elements = context.Elements.Flatten(); - InvokeDriver(elements, (driver, element) => driver.LayoutSaving(new ElementSavingContext(context) { - Element = element - })); + + foreach (var element in elements) { + var savingContext = new ElementSavingContext(element, context); + _elementEventHandler.LayoutSaving(savingContext); + element.Descriptor.LayoutSaving(savingContext); + } } public void Removing(LayoutSavingContext context) { - var elementInstances = context.RemovedElements.Flatten(); - InvokeDriver(elementInstances, (driver, elementInstance) => driver.Removing(new ElementRemovingContext(context) { - Element = elementInstance - })); + var elements = context.RemovedElements.Flatten().ToList(); + + foreach (var element in elements) { + var removingContext = new ElementRemovingContext(element, context.Elements, context.RemovedElements, context.Content); + _elementEventHandler.Removing(removingContext); + element.Descriptor.Removing(removingContext); + } } public void Exporting(IEnumerable elements, ExportLayoutContext context) { - InvokeDriver(elements, (driver, element) => { - var exportElementContext = new ExportElementContext { - Layout = context.Layout, - Element = element, - ExportableData = element.ExportableData - }; - driver.Exporting(exportElementContext); - element.ExportableData = new ElementDataDictionary(exportElementContext.ExportableData); - }); + foreach (var element in elements) { + var exportingContext = new ExportElementContext(element, context.Layout, element.ExportableData ?? new ElementDataDictionary()); + _elementEventHandler.Exporting(exportingContext); + element.Descriptor.Exporting(exportingContext); + + // Update potentially modified ExportableData. + element.ExportableData = new ElementDataDictionary(exportingContext.ExportableData); + } } public void Exported(IEnumerable elements, ExportLayoutContext context) { - InvokeDriver(elements, (driver, element) => { - var exportElementContext = new ExportElementContext { - Layout = context.Layout, - Element = element, - ExportableData = element.ExportableData - }; - driver.Exported(exportElementContext); - element.ExportableData = new ElementDataDictionary(exportElementContext.ExportableData); - }); + foreach (var element in elements) { + var exportingContext = new ExportElementContext(element, context.Layout, element.ExportableData ?? new ElementDataDictionary()); + _elementEventHandler.Exported(exportingContext); + element.Descriptor.Exported(exportingContext); + + // Update potentially modified ExportableData. + element.ExportableData = new ElementDataDictionary(exportingContext.ExportableData); + } } public void Importing(IEnumerable elements, ImportLayoutContext context) { - InvokeDriver(elements, (driver, element) => { - var importElementContext = new ImportElementContext { - Layout = context.Layout, - Element = element, - ExportableData = element.ExportableData, - Session = context.Session - }; - driver.Importing(importElementContext); - }); + foreach (var element in elements) { + var importingContext = new ImportElementContext(element, context.Layout, element.ExportableData ?? new ElementDataDictionary(), context.Session); + _elementEventHandler.Importing(importingContext); + element.Descriptor.Importing(importingContext); + } } public void Imported(IEnumerable elements, ImportLayoutContext context) { - InvokeDriver(elements, (driver, element) => { - var importElementContext = new ImportElementContext { - Layout = context.Layout, - Element = element, - ExportableData = element.ExportableData, - Session = context.Session - }; - driver.Imported(importElementContext); - }); + foreach (var element in elements) { + var importingContext = new ImportElementContext(element, context.Layout, element.ExportableData ?? new ElementDataDictionary(), context.Session); + _elementEventHandler.Imported(importingContext); + element.Descriptor.Imported(importingContext); + } } public void ImportCompleted(IEnumerable elements, ImportLayoutContext context) { - InvokeDriver(elements, (driver, element) => { - var importElementContext = new ImportElementContext { - Layout = context.Layout, - Element = element, - ExportableData = element.ExportableData, - Session = context.Session - }; - driver.ImportCompleted(importElementContext); - }); + foreach (var element in elements) { + var importingContext = new ImportElementContext(element, context.Layout, element.ExportableData ?? new ElementDataDictionary(), context.Session); + _elementEventHandler.ImportCompleted(importingContext); + element.Descriptor.ImportCompleted(importingContext); + } } private IDictionary GetCategories() { @@ -225,15 +217,6 @@ namespace Orchard.Layouts.Services { return dictionary; } - private void InvokeDriver(IEnumerable elements, Action driverAction) { - foreach (var element in elements) { - var drivers = GetDrivers(element.Descriptor); - foreach (var driver in drivers) { - driverAction(driver, element); - } - } - } - private static bool IsElementType(IElementDriver elementDriver, Type elementType) { var driverType = elementDriver.GetType(); var driverElementType = driverType.BaseType.GenericTypeArguments[0]; diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Services/IElementEventHandler.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Services/IElementEventHandler.cs index 6ba089a94..578530c07 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Services/IElementEventHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Services/IElementEventHandler.cs @@ -1,6 +1,7 @@ using Orchard.Events; using Orchard.Layouts.Framework.Display; using Orchard.Layouts.Framework.Drivers; +using Orchard.Layouts.Framework.Elements; namespace Orchard.Layouts.Services { public interface IElementEventHandler : IEventHandler { @@ -11,5 +12,12 @@ namespace Orchard.Layouts.Services { void Displayed(ElementDisplayedContext context); void BuildEditor(ElementEditorContext context); void UpdateEditor(ElementEditorContext context); + void LayoutSaving(ElementSavingContext context); + void Removing(ElementRemovingContext context); + void Exporting(ExportElementContext context); + void Exported(ExportElementContext context); + void Importing(ImportElementContext context); + void Imported(ImportElementContext context); + void ImportCompleted(ImportElementContext context); } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Services/LayoutEditorFactory.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Services/LayoutEditorFactory.cs index 56849f50d..bcf039627 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Services/LayoutEditorFactory.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Services/LayoutEditorFactory.cs @@ -76,7 +76,7 @@ namespace Orchard.Layouts.Services { icon = descriptor.ToolboxIcon, hasEditor = descriptor.EnableEditorDialog, - // If the element has no editor then the toolbox will add the element straight to to designer when being dragged & dropped, + // If the element has no editor then the toolbox will add the element straight to the designer when being dragged & dropped, // so we'll want to present the user with a prerendered element. html = descriptor.EnableEditorDialog ? "" : RenderElement(element, new DescribeElementsContext { Content = content }) }; diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentPartLayoutSettings.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentPartLayoutSettings.cs index 7cd2f622d..de763b862 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentPartLayoutSettings.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentPartLayoutSettings.cs @@ -1,7 +1,7 @@ namespace Orchard.Layouts.Settings { public class ContentPartLayoutSettings { /// - /// This setting is used to configure a part to be placeable on a layout. + /// This setting is used to configure a content part to be placeable on a layout. /// public bool Placeable { get; set; } } diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentPartSettingsHooks.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentPartLayoutSettingsHooks.cs similarity index 91% rename from src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentPartSettingsHooks.cs rename to src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentPartLayoutSettingsHooks.cs index 440f7e5d7..e63cbebc2 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentPartSettingsHooks.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentPartLayoutSettingsHooks.cs @@ -7,7 +7,7 @@ using Orchard.ContentManagement.ViewModels; using Orchard.Layouts.Helpers; namespace Orchard.Layouts.Settings { - public class ContentPartSettingsHooks : ContentDefinitionEditorEventsBase { + public class ContentPartLayoutSettingsHooks : ContentDefinitionEditorEventsBase { public override IEnumerable PartEditor(ContentPartDefinition definition) { var model = definition.Settings.GetModel(); diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentTypeLayoutSettings.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentTypeLayoutSettings.cs new file mode 100644 index 000000000..bf4acc405 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentTypeLayoutSettings.cs @@ -0,0 +1,8 @@ +namespace Orchard.Layouts.Settings { + public class ContentTypeLayoutSettings { + /// + /// This setting is used to configure a content type to be placeable on a layout. + /// + public bool Placeable { get; set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentTypeLayoutSettingsHooks.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentTypeLayoutSettingsHooks.cs new file mode 100644 index 000000000..d408c675d --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Settings/ContentTypeLayoutSettingsHooks.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; +using Orchard.ContentManagement; +using Orchard.ContentManagement.MetaData; +using Orchard.ContentManagement.MetaData.Builders; +using Orchard.ContentManagement.MetaData.Models; +using Orchard.ContentManagement.ViewModels; +using Orchard.Layouts.Helpers; + +namespace Orchard.Layouts.Settings { + public class ContentTypeLayoutSettingsHooks : ContentDefinitionEditorEventsBase { + public override IEnumerable TypeEditor(ContentTypeDefinition definition) { + var model = definition.Settings.GetModel(); + yield return DefinitionTemplate(model); + } + + public override IEnumerable TypeEditorUpdate(ContentTypeDefinitionBuilder builder, IUpdateModel updateModel) { + var model = new ContentTypeLayoutSettings(); + updateModel.TryUpdateModel(model, "ContentTypeLayoutSettings", null, null); + builder.Placeable(model.Placeable); + yield return DefinitionTemplate(model); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Settings/LayoutSettingsHooks.cs b/src/Orchard.Web/Modules/Orchard.Layouts/Settings/LayoutTypePartSettingsHooks.cs similarity index 89% rename from src/Orchard.Web/Modules/Orchard.Layouts/Settings/LayoutSettingsHooks.cs rename to src/Orchard.Web/Modules/Orchard.Layouts/Settings/LayoutTypePartSettingsHooks.cs index c39e4fe42..3af598e6a 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Settings/LayoutSettingsHooks.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Settings/LayoutTypePartSettingsHooks.cs @@ -8,11 +8,11 @@ using Orchard.ContentManagement.ViewModels; using Orchard.Layouts.Services; namespace Orchard.Layouts.Settings { - public class LayoutSettingsHooks : ContentDefinitionEditorEventsBase { + public class LayoutTypePartSettingsHooks : ContentDefinitionEditorEventsBase { private readonly ILayoutSerializer _serializer; private readonly ILayoutManager _layoutManager; - public LayoutSettingsHooks(ILayoutSerializer serializer, ILayoutManager layoutManager) { + public LayoutTypePartSettingsHooks(ILayoutSerializer serializer, ILayoutManager layoutManager) { _serializer = serializer; _layoutManager = layoutManager; } diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Styles/Lib.css b/src/Orchard.Web/Modules/Orchard.Layouts/Styles/Lib.css index f8d1d0be3..2280d7b76 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Styles/Lib.css +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Styles/Lib.css @@ -2614,4 +2614,4 @@ content: "\f23a"; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxpYi5jc3MiLCJib290c3RyYXAubGVzcyIsIm1peGlucy92ZW5kb3ItcHJlZml4ZXMubGVzcyIsInNjYWZmb2xkaW5nLmxlc3MiLCJtaXhpbnMvdGFiLWZvY3VzLmxlc3MiLCJtaXhpbnMvaW1hZ2UubGVzcyIsIm1peGlucy9ncmlkLmxlc3MiLCJncmlkLmxlc3MiLCJtaXhpbnMvZ3JpZC1mcmFtZXdvcmsubGVzcyIsIm1peGlucy9jbGVhcmZpeC5sZXNzIiwidXRpbGl0aWVzLmxlc3MiLCJtaXhpbnMvY2VudGVyLWJsb2NrLmxlc3MiLCJtaXhpbnMvaGlkZS10ZXh0Lmxlc3MiLCJwYXRoLmxlc3MiLCJjb3JlLmxlc3MiLCJsYXJnZXIubGVzcyIsImZpeGVkLXdpZHRoLmxlc3MiLCJsaXN0Lmxlc3MiLCJib3JkZXJlZC1wdWxsZWQubGVzcyIsImFuaW1hdGVkLmxlc3MiLCJyb3RhdGVkLWZsaXBwZWQubGVzcyIsIm1peGlucy5sZXNzIiwic3RhY2tlZC5sZXNzIiwiaWNvbnMubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQUNBQTtFQ3VFVSx1QkFBQTtDRnhFVDtBQ0NEOztFQ3VFVSx1QkFBQTtDRmxFVDtBQ0xEO0VFaUJFLGdCQUFBO0VBQ0EsOENBQUE7Q0hURDtBQ1REO0VFc0JFLDREQUFBO0VBQ0EsZ0JBQUE7RUFDQSx3QkFBQTtFQUNBLGVBQUE7RUFDQSx1QkFBQTtDSFZEO0FDaEJEOzs7O0VFa0NFLHFCQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQkFBQTtDSFpEO0FDeEJEO0VFMkNFLGVBQUE7RUFDQSxzQkFBQTtDSGhCRDtBR2tCQzs7RUFFRSxlQUFBO0VBQ0EsMkJBQUE7Q0hoQkg7QUdtQkM7RUNyREEscUJBQUE7RUFFQSwyQ0FBQTtFQUNBLHFCQUFBO0NKb0NEO0FDdENEO0VFZ0VFLFVBQUE7Q0h2QkQ7QUN6Q0Q7RUV1RUUsdUJBQUE7Q0gzQkQ7QUM1Q0Q7RUlJRSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxhQUFBO0NMMkNEO0FDakREO0VFaUZFLG1CQUFBO0NIN0JEO0FDcEREO0VFd0ZFLGFBQUE7RUFDQSx3QkFBQTtFQUNBLHVCQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFRCtGUSxpQ0FBQTtFR3ZMUixzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYUFBQTtDTDJERDtBQ2pFRDtFRXFHRSxtQkFBQTtDSGpDRDtBQ3BFRDtFRTRHRSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0EsVUFBQTtFQUNBLDhCQUFBO0NIckNEO0FDMUVEO0VFd0hFLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7RUFDQSxVQUFBO0NIM0NEO0FHbURDOztFQUVFLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0NIakRIO0FDN0ZEO0VLQ0UsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7Q04rRkQ7QU96RkM7RUFxRUY7SUF2RUksYUFBQTtHUCtGRDtDQUNGO0FPM0ZDO0VBa0VGO0lBcEVJLGFBQUE7R1BpR0Q7Q0FDRjtBTzdGRDtFQStEQTtJQWpFSSxjQUFBO0dQbUdEO0NBQ0Y7QUNsSEQ7RUtDRSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtDTm9IRDtBQ3hIRDtFS1VFLG1CQUFBO0VBQ0Esb0JBQUE7Q05pSEQ7QUM1SEQ7RU9ZTSxtQkFBQTtFQUVBLGdCQUFBO0VBRUEsbUJBQUE7RUFDQSxvQkFBQTtDUmlITDtBQ2xJRDtFT2tDTSxZQUFBO0NSbUdMO0FDcklEO0VPMENJLFlBQUE7Q1I4Rkg7QUN4SUQ7RU8wQ0ksb0JBQUE7Q1JpR0g7QUMzSUQ7RU8wQ0ksb0JBQUE7Q1JvR0g7QUM5SUQ7RU8wQ0ksV0FBQTtDUnVHSDtBQ2pKRDtFTzBDSSxvQkFBQTtDUjBHSDtBQ3BKRDtFTzBDSSxvQkFBQTtDUjZHSDtBQ3ZKRDtFTzBDSSxXQUFBO0NSZ0hIO0FDMUpEO0VPMENJLG9CQUFBO0NSbUhIO0FDN0pEO0VPMENJLG9CQUFBO0NSc0hIO0FDaEtEO0VPMENJLFdBQUE7Q1J5SEg7QUNuS0Q7RU8wQ0ksb0JBQUE7Q1I0SEg7QUN0S0Q7RU8wQ0ksbUJBQUE7Q1IrSEg7QUN6S0Q7RU95REksWUFBQTtDUm1ISDtBQzVLRDtFT3lESSxvQkFBQTtDUnNISDtBQy9LRDtFT3lESSxvQkFBQTtDUnlISDtBQ2xMRDtFT3lESSxXQUFBO0NSNEhIO0FDckxEO0VPeURJLG9CQUFBO0NSK0hIO0FDeExEO0VPeURJLG9CQUFBO0NSa0lIO0FDM0xEO0VPeURJLFdBQUE7Q1JxSUg7QUM5TEQ7RU95REksb0JBQUE7Q1J3SUg7QUNqTUQ7RU95REksb0JBQUE7Q1IySUg7QUNwTUQ7RU95REksV0FBQTtDUjhJSDtBQ3ZNRDtFT3lESSxvQkFBQTtDUmlKSDtBQzFNRDtFT3lESSxtQkFBQTtDUm9KSDtBQzdNRDtFTzhESSxZQUFBO0NSa0pIO0FDaE5EO0VPK0NJLFdBQUE7Q1JvS0g7QUNuTkQ7RU8rQ0ksbUJBQUE7Q1J1S0g7QUN0TkQ7RU8rQ0ksbUJBQUE7Q1IwS0g7QUN6TkQ7RU8rQ0ksVUFBQTtDUjZLSDtBQzVORDtFTytDSSxtQkFBQTtDUmdMSDtBQy9ORDtFTytDSSxtQkFBQTtDUm1MSDtBQ2xPRDtFTytDSSxVQUFBO0NSc0xIO0FDck9EO0VPK0NJLG1CQUFBO0NSeUxIO0FDeE9EO0VPK0NJLG1CQUFBO0NSNExIO0FDM09EO0VPK0NJLFVBQUE7Q1IrTEg7QUM5T0Q7RU8rQ0ksbUJBQUE7Q1JrTUg7QUNqUEQ7RU8rQ0ksa0JBQUE7Q1JxTUg7QUNwUEQ7RU9vREksV0FBQTtDUm1NSDtBQ3ZQRDtFT21FSSxrQkFBQTtDUnVMSDtBQzFQRDtFT21FSSwwQkFBQTtDUjBMSDtBQzdQRDtFT21FSSwwQkFBQTtDUjZMSDtBQ2hRRDtFT21FSSxpQkFBQTtDUmdNSDtBQ25RRDtFT21FSSwwQkFBQTtDUm1NSDtBQ3RRRDtFT21FSSwwQkFBQTtDUnNNSDtBQ3pRRDtFT21FSSxpQkFBQTtDUnlNSDtBQzVRRDtFT21FSSwwQkFBQTtDUjRNSDtBQy9RRDtFT21FSSwwQkFBQTtDUitNSDtBQ2xSRDtFT21FSSxpQkFBQTtDUmtOSDtBQ3JSRDtFT21FSSwwQkFBQTtDUnFOSDtBQ3hSRDtFT21FSSx5QkFBQTtDUndOSDtBQzNSRDtFT21FSSxnQkFBQTtDUjJOSDtBTzNORDtFQVlBO0lDN0NNLFlBQUE7R1JnUUg7RU9uTkg7SUNyQ0ksWUFBQTtHUjJQRDtFT3ROSDtJQ3JDSSxvQkFBQTtHUjhQRDtFT3pOSDtJQ3JDSSxvQkFBQTtHUmlRRDtFTzVOSDtJQ3JDSSxXQUFBO0dSb1FEO0VPL05IO0lDckNJLG9CQUFBO0dSdVFEO0VPbE9IO0lDckNJLG9CQUFBO0dSMFFEO0VPck9IO0lDckNJLFdBQUE7R1I2UUQ7RU94T0g7SUNyQ0ksb0JBQUE7R1JnUkQ7RU8zT0g7SUNyQ0ksb0JBQUE7R1JtUkQ7RU85T0g7SUNyQ0ksV0FBQTtHUnNSRDtFT2pQSDtJQ3JDSSxvQkFBQTtHUnlSRDtFT3BQSDtJQ3JDSSxtQkFBQTtHUjRSRDtFT3ZQSDtJQ3RCSSxZQUFBO0dSZ1JEO0VPMVBIO0lDdEJJLG9CQUFBO0dSbVJEO0VPN1BIO0lDdEJJLG9CQUFBO0dSc1JEO0VPaFFIO0lDdEJJLFdBQUE7R1J5UkQ7RU9uUUg7SUN0Qkksb0JBQUE7R1I0UkQ7RU90UUg7SUN0Qkksb0JBQUE7R1IrUkQ7RU96UUg7SUN0QkksV0FBQTtHUmtTRDtFTzVRSDtJQ3RCSSxvQkFBQTtHUnFTRDtFTy9RSDtJQ3RCSSxvQkFBQTtHUndTRDtFT2xSSDtJQ3RCSSxXQUFBO0dSMlNEO0VPclJIO0lDdEJJLG9CQUFBO0dSOFNEO0VPeFJIO0lDdEJJLG1CQUFBO0dSaVREO0VPM1JIO0lDakJJLFlBQUE7R1IrU0Q7RU85Ukg7SUNoQ0ksV0FBQTtHUmlVRDtFT2pTSDtJQ2hDSSxtQkFBQTtHUm9VRDtFT3BTSDtJQ2hDSSxtQkFBQTtHUnVVRDtFT3ZTSDtJQ2hDSSxVQUFBO0dSMFVEO0VPMVNIO0lDaENJLG1CQUFBO0dSNlVEO0VPN1NIO0lDaENJLG1CQUFBO0dSZ1ZEO0VPaFRIO0lDaENJLFVBQUE7R1JtVkQ7RU9uVEg7SUNoQ0ksbUJBQUE7R1JzVkQ7RU90VEg7SUNoQ0ksbUJBQUE7R1J5VkQ7RU96VEg7SUNoQ0ksVUFBQTtHUjRWRDtFTzVUSDtJQ2hDSSxtQkFBQTtHUitWRDtFTy9USDtJQ2hDSSxrQkFBQTtHUmtXRDtFT2xVSDtJQzNCSSxXQUFBO0dSZ1dEO0VPclVIO0lDWkksa0JBQUE7R1JvVkQ7RU94VUg7SUNaSSwwQkFBQTtHUnVWRDtFTzNVSDtJQ1pJLDBCQUFBO0dSMFZEO0VPOVVIO0lDWkksaUJBQUE7R1I2VkQ7RU9qVkg7SUNaSSwwQkFBQTtHUmdXRDtFT3BWSDtJQ1pJLDBCQUFBO0dSbVdEO0VPdlZIO0lDWkksaUJBQUE7R1JzV0Q7RU8xVkg7SUNaSSwwQkFBQTtHUnlXRDtFTzdWSDtJQ1pJLDBCQUFBO0dSNFdEO0VPaFdIO0lDWkksaUJBQUE7R1IrV0Q7RU9uV0g7SUNaSSwwQkFBQTtHUmtYRDtFT3RXSDtJQ1pJLHlCQUFBO0dScVhEO0VPeldIO0lDWkksZ0JBQUE7R1J3WEQ7Q0FDRjtBT2hYRDtFQUdBO0lDN0NNLFlBQUE7R1I4Wkg7RU9qWEg7SUNyQ0ksWUFBQTtHUnlaRDtFT3BYSDtJQ3JDSSxvQkFBQTtHUjRaRDtFT3ZYSDtJQ3JDSSxvQkFBQTtHUitaRDtFTzFYSDtJQ3JDSSxXQUFBO0dSa2FEO0VPN1hIO0lDckNJLG9CQUFBO0dScWFEO0VPaFlIO0lDckNJLG9CQUFBO0dSd2FEO0VPbllIO0lDckNJLFdBQUE7R1IyYUQ7RU90WUg7SUNyQ0ksb0JBQUE7R1I4YUQ7RU96WUg7SUNyQ0ksb0JBQUE7R1JpYkQ7RU81WUg7SUNyQ0ksV0FBQTtHUm9iRDtFTy9ZSDtJQ3JDSSxvQkFBQTtHUnViRDtFT2xaSDtJQ3JDSSxtQkFBQTtHUjBiRDtFT3JaSDtJQ3RCSSxZQUFBO0dSOGFEO0VPeFpIO0lDdEJJLG9CQUFBO0dSaWJEO0VPM1pIO0lDdEJJLG9CQUFBO0dSb2JEO0VPOVpIO0lDdEJJLFdBQUE7R1J1YkQ7RU9qYUg7SUN0Qkksb0JBQUE7R1IwYkQ7RU9wYUg7SUN0Qkksb0JBQUE7R1I2YkQ7RU92YUg7SUN0QkksV0FBQTtHUmdjRDtFTzFhSDtJQ3RCSSxvQkFBQTtHUm1jRDtFTzdhSDtJQ3RCSSxvQkFBQTtHUnNjRDtFT2hiSDtJQ3RCSSxXQUFBO0dSeWNEO0VPbmJIO0lDdEJJLG9CQUFBO0dSNGNEO0VPdGJIO0lDdEJJLG1CQUFBO0dSK2NEO0VPemJIO0lDakJJLFlBQUE7R1I2Y0Q7RU81Ykg7SUNoQ0ksV0FBQTtHUitkRDtFTy9iSDtJQ2hDSSxtQkFBQTtHUmtlRDtFT2xjSDtJQ2hDSSxtQkFBQTtHUnFlRDtFT3JjSDtJQ2hDSSxVQUFBO0dSd2VEO0VPeGNIO0lDaENJLG1CQUFBO0dSMmVEO0VPM2NIO0lDaENJLG1CQUFBO0dSOGVEO0VPOWNIO0lDaENJLFVBQUE7R1JpZkQ7RU9qZEg7SUNoQ0ksbUJBQUE7R1JvZkQ7RU9wZEg7SUNoQ0ksbUJBQUE7R1J1ZkQ7RU92ZEg7SUNoQ0ksVUFBQTtHUjBmRDtFTzFkSDtJQ2hDSSxtQkFBQTtHUjZmRDtFTzdkSDtJQ2hDSSxrQkFBQTtHUmdnQkQ7RU9oZUg7SUMzQkksV0FBQTtHUjhmRDtFT25lSDtJQ1pJLGtCQUFBO0dSa2ZEO0VPdGVIO0lDWkksMEJBQUE7R1JxZkQ7RU96ZUg7SUNaSSwwQkFBQTtHUndmRDtFTzVlSDtJQ1pJLGlCQUFBO0dSMmZEO0VPL2VIO0lDWkksMEJBQUE7R1I4ZkQ7RU9sZkg7SUNaSSwwQkFBQTtHUmlnQkQ7RU9yZkg7SUNaSSxpQkFBQTtHUm9nQkQ7RU94Zkg7SUNaSSwwQkFBQTtHUnVnQkQ7RU8zZkg7SUNaSSwwQkFBQTtHUjBnQkQ7RU85Zkg7SUNaSSxpQkFBQTtHUjZnQkQ7RU9qZ0JIO0lDWkksMEJBQUE7R1JnaEJEO0VPcGdCSDtJQ1pJLHlCQUFBO0dSbWhCRDtFT3ZnQkg7SUNaSSxnQkFBQTtHUnNoQkQ7Q0FDRjtBTzNnQkQ7RUFBQTtJQzdDTSxZQUFBO0dSNGpCSDtFTy9nQkg7SUNyQ0ksWUFBQTtHUnVqQkQ7RU9saEJIO0lDckNJLG9CQUFBO0dSMGpCRDtFT3JoQkg7SUNyQ0ksb0JBQUE7R1I2akJEO0VPeGhCSDtJQ3JDSSxXQUFBO0dSZ2tCRDtFTzNoQkg7SUNyQ0ksb0JBQUE7R1Jta0JEO0VPOWhCSDtJQ3JDSSxvQkFBQTtHUnNrQkQ7RU9qaUJIO0lDckNJLFdBQUE7R1J5a0JEO0VPcGlCSDtJQ3JDSSxvQkFBQTtHUjRrQkQ7RU92aUJIO0lDckNJLG9CQUFBO0dSK2tCRDtFTzFpQkg7SUNyQ0ksV0FBQTtHUmtsQkQ7RU83aUJIO0lDckNJLG9CQUFBO0dScWxCRDtFT2hqQkg7SUNyQ0ksbUJBQUE7R1J3bEJEO0VPbmpCSDtJQ3RCSSxZQUFBO0dSNGtCRDtFT3RqQkg7SUN0Qkksb0JBQUE7R1Ira0JEO0VPempCSDtJQ3RCSSxvQkFBQTtHUmtsQkQ7RU81akJIO0lDdEJJLFdBQUE7R1JxbEJEO0VPL2pCSDtJQ3RCSSxvQkFBQTtHUndsQkQ7RU9sa0JIO0lDdEJJLG9CQUFBO0dSMmxCRDtFT3JrQkg7SUN0QkksV0FBQTtHUjhsQkQ7RU94a0JIO0lDdEJJLG9CQUFBO0dSaW1CRDtFTzNrQkg7SUN0Qkksb0JBQUE7R1JvbUJEO0VPOWtCSDtJQ3RCSSxXQUFBO0dSdW1CRDtFT2psQkg7SUN0Qkksb0JBQUE7R1IwbUJEO0VPcGxCSDtJQ3RCSSxtQkFBQTtHUjZtQkQ7RU92bEJIO0lDakJJLFlBQUE7R1IybUJEO0VPMWxCSDtJQ2hDSSxXQUFBO0dSNm5CRDtFTzdsQkg7SUNoQ0ksbUJBQUE7R1Jnb0JEO0VPaG1CSDtJQ2hDSSxtQkFBQTtHUm1vQkQ7RU9ubUJIO0lDaENJLFVBQUE7R1Jzb0JEO0VPdG1CSDtJQ2hDSSxtQkFBQTtHUnlvQkQ7RU96bUJIO0lDaENJLG1CQUFBO0dSNG9CRDtFTzVtQkg7SUNoQ0ksVUFBQTtHUitvQkQ7RU8vbUJIO0lDaENJLG1CQUFBO0dSa3BCRDtFT2xuQkg7SUNoQ0ksbUJBQUE7R1JxcEJEO0VPcm5CSDtJQ2hDSSxVQUFBO0dSd3BCRDtFT3huQkg7SUNoQ0ksbUJBQUE7R1IycEJEO0VPM25CSDtJQ2hDSSxrQkFBQTtHUjhwQkQ7RU85bkJIO0lDM0JJLFdBQUE7R1I0cEJEO0VPam9CSDtJQ1pJLGtCQUFBO0dSZ3BCRDtFT3BvQkg7SUNaSSwwQkFBQTtHUm1wQkQ7RU92b0JIO0lDWkksMEJBQUE7R1JzcEJEO0VPMW9CSDtJQ1pJLGlCQUFBO0dSeXBCRDtFTzdvQkg7SUNaSSwwQkFBQTtHUjRwQkQ7RU9ocEJIO0lDWkksMEJBQUE7R1IrcEJEO0VPbnBCSDtJQ1pJLGlCQUFBO0dSa3FCRDtFT3RwQkg7SUNaSSwwQkFBQTtHUnFxQkQ7RU96cEJIO0lDWkksMEJBQUE7R1J3cUJEO0VPNXBCSDtJQ1pJLGlCQUFBO0dSMnFCRDtFTy9wQkg7SUNaSSwwQkFBQTtHUjhxQkQ7RU9scUJIO0lDWkkseUJBQUE7R1JpckJEO0VPcnFCSDtJQ1pJLGdCQUFBO0dSb3JCRDtDQUNGO0FTaHZCQzs7Ozs7Ozs7RUFFRSxhQUFBO0VBQ0EsZUFBQTtDVHd2Qkg7QVN0dkJDOzs7O0VBQ0UsWUFBQTtDVDJ2Qkg7QVVud0JEO0VDUkUsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7Q1g4d0JEO0FVcndCRDtFQUNFLHdCQUFBO0NWdXdCRDtBVXJ3QkQ7RUFDRSx1QkFBQTtDVnV3QkQ7QVUvdkJEO0VBQ0UseUJBQUE7Q1Zpd0JEO0FVL3ZCRDtFQUNFLDBCQUFBO0NWaXdCRDtBVS92QkQ7RUFDRSxtQkFBQTtDVml3QkQ7QVUvdkJEO0VFekJFLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsOEJBQUE7RUFDQSxVQUFBO0NaMnhCRDtBVTd2QkQ7RUFDRSx5QkFBQTtFQUNBLDhCQUFBO0NWK3ZCRDtBVXh2QkQ7RUFDRSxnQkFBQTtDVjB2QkQ7O0FBRUQ7OztHQUdHO0FBQ0g7Z0NBQ2dDO0FhcHpCaEM7RUFDRSwyQkFBQTtFQUNBLGtEQUFBO0VBQ0EsbVdBQUE7RUFNQSxvQkFBQTtFQUNBLG1CQUFBO0NiaXpCRDtBYzN6QkQ7RUFDRSxzQkFBQTtFQUNBLDhDQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLG9DQUFBO0VBQ0EsbUNBQUE7RUFDQSxtQ0FBQTtVQUFBLDJCQUFBO0NkNnpCRDtBQUNELDhEQUE4RDtBZXAwQjlEO0VBQ0Usd0JBQUE7RUFDQSxvQkFBQTtFQUNBLHFCQUFBO0NmczBCRDtBZXAwQkQ7RUFBdUIsZUFBQTtDZnUwQnRCO0FldDBCRDtFQUF1QixlQUFBO0NmeTBCdEI7QWV4MEJEO0VBQXVCLGVBQUE7Q2YyMEJ0QjtBZTEwQkQ7RUFBdUIsZUFBQTtDZjYwQnRCO0FnQnYxQkQ7RUFDRSxvQkFBQTtFQUNBLG1CQUFBO0NoQnkxQkQ7QWlCMTFCRDtFQUNFLGdCQUFBO0VBQ0EsMEJBQUE7RUFDQSxzQkFBQTtDakI0MUJEO0FpQi8xQkQ7RUFJUyxtQkFBQTtDakI4MUJSO0FpQjUxQkQ7RUFDRSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0NqQjgxQkQ7QWlCNzFCQztFQUNFLG9CQUFBO0NqQisxQkg7QWtCNTJCRDtFQUNFLDBCQUFBO0VBQ0EsMEJBQUE7RUFDQSxvQkFBQTtDbEI4MkJEO0FrQjMyQkQ7RUFBYyxhQUFBO0NsQjgyQmI7QWtCNzJCRDtFQUFhLFlBQUE7Q2xCZzNCWjtBa0I3MkJDO0VBQWMsbUJBQUE7Q2xCZzNCZjtBa0IvMkJDO0VBQWUsa0JBQUE7Q2xCazNCaEI7QW1CNzNCRDtFQUNFLDhDQUFBO0VBQ1Esc0NBQUE7Q25CKzNCVDtBbUI1M0JEO0VBQ0UsZ0RBQUE7RUFDUSx3Q0FBQTtDbkI4M0JUO0FtQjMzQkQ7RUFDRTtJQUNFLGdDQUFBO0lBQ1Esd0JBQUE7R25CNjNCVDtFbUIzM0JEO0lBQ0Usa0NBQUE7SUFDUSwwQkFBQTtHbkI2M0JUO0NBQ0Y7QW1CMTNCRDtFQUNFO0lBQ0UsZ0NBQUE7SUFDUSx3QkFBQTtHbkI0M0JUO0VtQjEzQkQ7SUFDRSxrQ0FBQTtJQUNRLDBCQUFBO0duQjQzQlQ7Q0FDRjtBb0J6NUJEO0VDWUUsaUVBQUE7RUFDQSxpQ0FBQTtFQUVRLHlCQUFBO0NyQmc1QlQ7QW9COTVCRDtFQ1dFLGlFQUFBO0VBQ0Esa0NBQUE7RUFFUSwwQkFBQTtDckJzNUJUO0FvQm42QkQ7RUNVRSxpRUFBQTtFQUNBLGtDQUFBO0VBRVEsMEJBQUE7Q3JCNDVCVDtBb0J2NkJEO0VDZUUsMkVBQUE7RUFDQSxnQ0FBQTtFQUVRLHdCQUFBO0NyQjI1QlQ7QW9CNTZCRDtFQ2NFLDJFQUFBO0VBQ0EsZ0NBQUE7RUFFUSx3QkFBQTtDckJpNkJUO0FvQjc2QkQ7Ozs7O0VBS0UscUJBQUE7VUFBQSxhQUFBO0NwQis2QkQ7QXNCOTdCRDtFQUNFLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7Q3RCZzhCRDtBc0I5N0JEOztFQUNFLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtDdEJpOEJEO0FzQi83QkQ7RUFBNkIscUJBQUE7Q3RCazhCNUI7QXNCajhCRDtFQUE2QixlQUFBO0N0Qm84QjVCO0FzQm44QkQ7RUFBNEIsWUFBQTtDdEJzOEIzQjtBQUNEO29FQUNvRTtBdUJ4OUJwRTtFQUFpQyxpQkFBQTtDdkIyOUJoQztBdUIxOUJEO0VBQWlDLGlCQUFBO0N2QjY5QmhDO0F1QjU5QkQ7RUFBa0MsaUJBQUE7Q3ZCKzlCakM7QXVCOTlCRDtFQUFzQyxpQkFBQTtDdkJpK0JyQztBdUJoK0JEO0VBQWlDLGlCQUFBO0N2Qm0rQmhDO0F1QmwrQkQ7RUFBZ0MsaUJBQUE7Q3ZCcStCL0I7QXVCcCtCRDtFQUFrQyxpQkFBQTtDdkJ1K0JqQztBdUJ0K0JEO0VBQWdDLGlCQUFBO0N2QnkrQi9CO0F1QngrQkQ7RUFBZ0MsaUJBQUE7Q3ZCMitCL0I7QXVCMStCRDtFQUFvQyxpQkFBQTtDdkI2K0JuQztBdUI1K0JEO0VBQThCLGlCQUFBO0N2QisrQjdCO0F1QjkrQkQ7RUFBbUMsaUJBQUE7Q3ZCaS9CbEM7QXVCaC9CRDtFQUFpQyxpQkFBQTtDdkJtL0JoQztBdUJsL0JEOzs7RUFFaUMsaUJBQUE7Q3ZCcS9CaEM7QXVCcC9CRDtFQUF1QyxpQkFBQTtDdkJ1L0J0QztBdUJ0L0JEO0VBQXdDLGlCQUFBO0N2QnkvQnZDO0F1QngvQkQ7RUFBcUMsaUJBQUE7Q3ZCMi9CcEM7QXVCMS9CRDtFQUFrQyxpQkFBQTtDdkI2L0JqQztBdUI1L0JEOztFQUMrQixpQkFBQTtDdkIrL0I5QjtBdUI5L0JEO0VBQW1DLGlCQUFBO0N2QmlnQ2xDO0F1QmhnQ0Q7RUFBZ0MsaUJBQUE7Q3ZCbWdDL0I7QXVCbGdDRDtFQUFrQyxpQkFBQTtDdkJxZ0NqQztBdUJwZ0NEO0VBQW1DLGlCQUFBO0N2QnVnQ2xDO0F1QnRnQ0Q7RUFBZ0MsaUJBQUE7Q3ZCeWdDL0I7QXVCeGdDRDtFQUFvQyxpQkFBQTtDdkIyZ0NuQztBdUIxZ0NEO0VBQStDLGlCQUFBO0N2QjZnQzlDO0F1QjVnQ0Q7RUFBNkMsaUJBQUE7Q3ZCK2dDNUM7QXVCOWdDRDtFQUFpQyxpQkFBQTtDdkJpaENoQztBdUJoaENEO0VBQXlDLGlCQUFBO0N2Qm1oQ3hDO0F1QmxoQ0Q7O0VBQ2tDLGlCQUFBO0N2QnFoQ2pDO0F1QnBoQ0Q7RUFBbUMsaUJBQUE7Q3ZCdWhDbEM7QXVCdGhDRDtFQUFvQyxpQkFBQTtDdkJ5aENuQztBdUJ4aENEO0VBQWdDLGlCQUFBO0N2QjJoQy9CO0F1QjFoQ0Q7RUFBZ0MsaUJBQUE7Q3ZCNmhDL0I7QXVCNWhDRDtFQUFzQyxpQkFBQTtDdkIraENyQztBdUI5aENEO0VBQXNDLGlCQUFBO0N2QmlpQ3JDO0F1QmhpQ0Q7RUFBdUMsaUJBQUE7Q3ZCbWlDdEM7QXVCbGlDRDtFQUFxQyxpQkFBQTtDdkJxaUNwQztBdUJwaUNEO0VBQWtDLGlCQUFBO0N2QnVpQ2pDO0F1QnRpQ0Q7RUFBbUMsaUJBQUE7Q3ZCeWlDbEM7QXVCeGlDRDtFQUErQixpQkFBQTtDdkIyaUM5QjtBdUIxaUNEO0VBQWdDLGlCQUFBO0N2QjZpQy9CO0F1QjVpQ0Q7RUFBZ0MsaUJBQUE7Q3ZCK2lDL0I7QXVCOWlDRDtFQUFvQyxpQkFBQTtDdkJpakNuQztBdUJoakNEO0VBQWlDLGlCQUFBO0N2Qm1qQ2hDO0F1QmxqQ0Q7RUFBa0MsaUJBQUE7Q3ZCcWpDakM7QXVCcGpDRDtFQUFnQyxpQkFBQTtDdkJ1akMvQjtBdUJ0akNEO0VBQWdDLGlCQUFBO0N2QnlqQy9CO0F1QnhqQ0Q7RUFBa0MsaUJBQUE7Q3ZCMmpDakM7QXVCMWpDRDtFQUF1QyxpQkFBQTtDdkI2akN0QztBdUI1akNEO0VBQXNDLGlCQUFBO0N2QitqQ3JDO0F1QjlqQ0Q7RUFBc0MsaUJBQUE7Q3ZCaWtDckM7QXVCaGtDRDtFQUF3QyxpQkFBQTtDdkJta0N2QztBdUJsa0NEO0VBQXVDLGlCQUFBO0N2QnFrQ3RDO0F1QnBrQ0Q7RUFBeUMsaUJBQUE7Q3ZCdWtDeEM7QXVCdGtDRDtFQUFnQyxpQkFBQTtDdkJ5a0MvQjtBdUJ4a0NEOztFQUNtQyxpQkFBQTtDdkIya0NsQztBdUIxa0NEO0VBQWtDLGlCQUFBO0N2QjZrQ2pDO0F1QjVrQ0Q7RUFBd0MsaUJBQUE7Q3ZCK2tDdkM7QXVCOWtDRDs7O0VBRXFDLGlCQUFBO0N2QmlsQ3BDO0F1QmhsQ0Q7RUFBa0MsaUJBQUE7Q3ZCbWxDakM7QXVCbGxDRDtFQUFzQyxpQkFBQTtDdkJxbENyQztBdUJwbENEO0VBQWtDLGlCQUFBO0N2QnVsQ2pDO0F1QnRsQ0Q7RUFBZ0MsaUJBQUE7Q3ZCeWxDL0I7QXVCeGxDRDs7RUFDMkMsaUJBQUE7Q3ZCMmxDMUM7QXVCMWxDRDtFQUEwQyxpQkFBQTtDdkI2bEN6QztBdUI1bENEO0VBQTBDLGlCQUFBO0N2QitsQ3pDO0F1QjlsQ0Q7RUFBa0MsaUJBQUE7Q3ZCaW1DakM7QXVCaG1DRDtFQUF5QyxpQkFBQTtDdkJtbUN4QztBdUJsbUNEO0VBQXlDLGlCQUFBO0N2QnFtQ3hDO0F1QnBtQ0Q7RUFBb0MsaUJBQUE7Q3ZCdW1DbkM7QXVCdG1DRDtFQUFnQyxpQkFBQTtDdkJ5bUMvQjtBdUJ4bUNEO0VBQWlDLGlCQUFBO0N2QjJtQ2hDO0F1QjFtQ0Q7RUFBZ0MsaUJBQUE7Q3ZCNm1DL0I7QXVCNW1DRDtFQUFtQyxpQkFBQTtDdkIrbUNsQztBdUI5bUNEO0VBQXdDLGlCQUFBO0N2QmluQ3ZDO0F1QmhuQ0Q7RUFBd0MsaUJBQUE7Q3ZCbW5DdkM7QXVCbG5DRDtFQUFpQyxpQkFBQTtDdkJxbkNoQztBdUJwbkNEO0VBQXdDLGlCQUFBO0N2QnVuQ3ZDO0F1QnRuQ0Q7RUFBeUMsaUJBQUE7Q3ZCeW5DeEM7QXVCeG5DRDtFQUF1QyxpQkFBQTtDdkIybkN0QztBdUIxbkNEO0VBQXdDLGlCQUFBO0N2QjZuQ3ZDO0F1QjVuQ0Q7RUFBd0MsaUJBQUE7Q3ZCK25DdkM7QXVCOW5DRDtFQUF3QyxpQkFBQTtDdkJpb0N2QztBdUJob0NEO0VBQTJDLGlCQUFBO0N2Qm1vQzFDO0F1QmxvQ0Q7RUFBdUMsaUJBQUE7Q3ZCcW9DdEM7QXVCcG9DRDtFQUFzQyxpQkFBQTtDdkJ1b0NyQztBdUJ0b0NEO0VBQTBDLGlCQUFBO0N2QnlvQ3pDO0F1QnhvQ0Q7RUFBMEMsaUJBQUE7Q3ZCMm9DekM7QXVCMW9DRDtFQUErQixpQkFBQTtDdkI2b0M5QjtBdUI1b0NEO0VBQXNDLGlCQUFBO0N2QitvQ3JDO0F1QjlvQ0Q7RUFBdUMsaUJBQUE7Q3ZCaXBDdEM7QXVCaHBDRDtFQUFvQyxpQkFBQTtDdkJtcENuQztBdUJscENEO0VBQXNDLGlCQUFBO0N2QnFwQ3JDO0F1QnBwQ0Q7O0VBQ2lDLGlCQUFBO0N2QnVwQ2hDO0F1QnRwQ0Q7RUFBa0MsaUJBQUE7Q3ZCeXBDakM7QXVCeHBDRDtFQUFvQyxpQkFBQTtDdkIycENuQztBdUIxcENEO0VBQWdDLGlCQUFBO0N2QjZwQy9CO0F1QjVwQ0Q7RUFBaUMsaUJBQUE7Q3ZCK3BDaEM7QXVCOXBDRDtFQUFvQyxpQkFBQTtDdkJpcUNuQztBdUJocUNEO0VBQThDLGlCQUFBO0N2Qm1xQzdDO0F1QmxxQ0Q7RUFBZ0MsaUJBQUE7Q3ZCcXFDL0I7QXVCcHFDRDtFQUFnQyxpQkFBQTtDdkJ1cUMvQjtBdUJ0cUNEO0VBQWdDLGlCQUFBO0N2QnlxQy9CO0F1QnhxQ0Q7RUFBK0IsaUJBQUE7Q3ZCMnFDOUI7QXVCMXFDRDtFQUFxQyxpQkFBQTtDdkI2cUNwQztBdUI1cUNEOztFQUNnRCxpQkFBQTtDdkIrcUMvQztBdUI5cUNEO0VBQWlDLGlCQUFBO0N2QmlyQ2hDO0F1QmhyQ0Q7RUFBb0MsaUJBQUE7Q3ZCbXJDbkM7QXVCbHJDRDtFQUFrQyxpQkFBQTtDdkJxckNqQztBdUJwckNEO0VBQW1DLGlCQUFBO0N2QnVyQ2xDO0F1QnRyQ0Q7RUFBa0MsaUJBQUE7Q3ZCeXJDakM7QXVCeHJDRDtFQUFzQyxpQkFBQTtDdkIyckNyQztBdUIxckNEO0VBQXdDLGlCQUFBO0N2QjZyQ3ZDO0F1QjVyQ0Q7RUFBbUMsaUJBQUE7Q3ZCK3JDbEM7QXVCOXJDRDtFQUF5QyxpQkFBQTtDdkJpc0N4QztBdUJoc0NEO0VBQWtDLGlCQUFBO0N2Qm1zQ2pDO0F1QmxzQ0Q7RUFBdUMsaUJBQUE7Q3ZCcXNDdEM7QXVCcHNDRDtFQUFvQyxpQkFBQTtDdkJ1c0NuQztBdUJ0c0NEO0VBQW9DLGlCQUFBO0N2QnlzQ25DO0F1QnhzQ0Q7O0VBQ3FDLGlCQUFBO0N2QjJzQ3BDO0F1QjFzQ0Q7RUFBMEMsaUJBQUE7Q3ZCNnNDekM7QXVCNXNDRDtFQUEyQyxpQkFBQTtDdkIrc0MxQztBdUI5c0NEO0VBQXdDLGlCQUFBO0N2Qml0Q3ZDO0F1Qmh0Q0Q7RUFBK0IsaUJBQUE7Q3ZCbXRDOUI7QXVCbHRDRDs7RUFDZ0MsaUJBQUE7Q3ZCcXRDL0I7QXVCcHRDRDtFQUFvQyxpQkFBQTtDdkJ1dENuQztBdUJ0dENEO0VBQXVDLGlCQUFBO0N2Qnl0Q3RDO0F1Qnh0Q0Q7RUFBeUMsaUJBQUE7Q3ZCMnRDeEM7QXVCMXRDRDtFQUFxQyxpQkFBQTtDdkI2dENwQztBdUI1dENEO0VBQW1DLGlCQUFBO0N2Qit0Q2xDO0F1Qjl0Q0Q7RUFBb0MsaUJBQUE7Q3ZCaXVDbkM7QXVCaHVDRDtFQUEyQyxpQkFBQTtDdkJtdUMxQztBdUJsdUNEO0VBQXNDLGlCQUFBO0N2QnF1Q3JDO0F1QnB1Q0Q7RUFBeUMsaUJBQUE7Q3ZCdXVDeEM7QXVCdHVDRDtFQUFtQyxpQkFBQTtDdkJ5dUNsQztBdUJ4dUNEO0VBQWtDLGlCQUFBO0N2QjJ1Q2pDO0F1QjF1Q0Q7RUFBeUMsaUJBQUE7Q3ZCNnVDeEM7QXVCNXVDRDtFQUFrQyxpQkFBQTtDdkIrdUNqQztBdUI5dUNEO0VBQW1DLGlCQUFBO0N2Qml2Q2xDO0F1Qmh2Q0Q7RUFBaUMsaUJBQUE7Q3ZCbXZDaEM7QXVCbHZDRDtFQUFvQyxpQkFBQTtDdkJxdkNuQztBdUJwdkNEO0VBQXNDLGlCQUFBO0N2QnV2Q3JDO0F1QnR2Q0Q7RUFBd0MsaUJBQUE7Q3ZCeXZDdkM7QXVCeHZDRDtFQUFtQyxpQkFBQTtDdkIydkNsQztBdUIxdkNEOztFQUNvQyxpQkFBQTtDdkI2dkNuQztBdUI1dkNEO0VBQWtDLGlCQUFBO0N2Qit2Q2pDO0F1Qjl2Q0Q7RUFBa0MsaUJBQUE7Q3ZCaXdDakM7QXVCaHdDRDtFQUF1QyxpQkFBQTtDdkJtd0N0QztBdUJsd0NEO0VBQStCLGlCQUFBO0N2QnF3QzlCO0F1QnB3Q0Q7RUFBaUMsaUJBQUE7Q3ZCdXdDaEM7QXVCdHdDRDtFQUFvQyxpQkFBQTtDdkJ5d0NuQztBdUJ4d0NEO0VBQWdDLGlCQUFBO0N2QjJ3Qy9CO0F1QjF3Q0Q7RUFBdUMsaUJBQUE7Q3ZCNndDdEM7QXVCNXdDRDtFQUF3QyxpQkFBQTtDdkIrd0N2QztBdUI5d0NEO0VBQXVDLGlCQUFBO0N2Qml4Q3RDO0F1Qmh4Q0Q7RUFBcUMsaUJBQUE7Q3ZCbXhDcEM7QXVCbHhDRDtFQUF1QyxpQkFBQTtDdkJxeEN0QztBdUJweENEO0VBQTZDLGlCQUFBO0N2QnV4QzVDO0F1QnR4Q0Q7RUFBOEMsaUJBQUE7Q3ZCeXhDN0M7QXVCeHhDRDtFQUEyQyxpQkFBQTtDdkIyeEMxQztBdUIxeENEO0VBQTZDLGlCQUFBO0N2QjZ4QzVDO0F1QjV4Q0Q7RUFBaUMsaUJBQUE7Q3ZCK3hDaEM7QXVCOXhDRDtFQUFrQyxpQkFBQTtDdkJpeUNqQztBdUJoeUNEO0VBQWlDLGlCQUFBO0N2Qm15Q2hDO0F1Qmx5Q0Q7RUFBa0MsaUJBQUE7Q3ZCcXlDakM7QXVCcHlDRDtFQUFxQyxpQkFBQTtDdkJ1eUNwQztBdUJ0eUNEO0VBQXNDLGlCQUFBO0N2Qnl5Q3JDO0F1Qnh5Q0Q7O0VBQ2lDLGlCQUFBO0N2QjJ5Q2hDO0F1QjF5Q0Q7O0VBQ2dDLGlCQUFBO0N2QjZ5Qy9CO0F1QjV5Q0Q7RUFBaUMsaUJBQUE7Q3ZCK3lDaEM7QXVCOXlDRDtFQUFpQyxpQkFBQTtDdkJpekNoQztBdUJoekNEOztFQUNvQyxpQkFBQTtDdkJtekNuQztBdUJsekNEOztFQUNtQyxpQkFBQTtDdkJxekNsQztBdUJwekNEO0VBQXFDLGlCQUFBO0N2QnV6Q3BDO0F1QnR6Q0Q7O0VBQ29DLGlCQUFBO0N2Qnl6Q25DO0F1Qnh6Q0Q7RUFBa0MsaUJBQUE7Q3ZCMnpDakM7QXVCMXpDRDs7O0VBRWdDLGlCQUFBO0N2QjZ6Qy9CO0F1QjV6Q0Q7RUFBbUMsaUJBQUE7Q3ZCK3pDbEM7QXVCOXpDRDtFQUFtQyxpQkFBQTtDdkJpMENsQztBdUJoMENEO0VBQXlDLGlCQUFBO0N2Qm0wQ3hDO0F1QmwwQ0Q7RUFBcUMsaUJBQUE7Q3ZCcTBDcEM7QXVCcDBDRDtFQUFpQyxpQkFBQTtDdkJ1MENoQztBdUJ0MENEO0VBQWlDLGlCQUFBO0N2QnkwQ2hDO0F1QngwQ0Q7RUFBaUMsaUJBQUE7Q3ZCMjBDaEM7QXVCMTBDRDtFQUFxQyxpQkFBQTtDdkI2MENwQztBdUI1MENEO0VBQTRDLGlCQUFBO0N2QiswQzNDO0F1QjkwQ0Q7RUFBOEMsaUJBQUE7Q3ZCaTFDN0M7QXVCaDFDRDtFQUF1QyxpQkFBQTtDdkJtMUN0QztBdUJsMUNEO0VBQWlDLGlCQUFBO0N2QnExQ2hDO0F1QnAxQ0Q7RUFBc0MsaUJBQUE7Q3ZCdTFDckM7QXVCdDFDRDtFQUFvQyxpQkFBQTtDdkJ5MUNuQztBdUJ4MUNEO0VBQXNDLGlCQUFBO0N2QjIxQ3JDO0F1QjExQ0Q7RUFBdUMsaUJBQUE7Q3ZCNjFDdEM7QXVCNTFDRDtFQUFtQyxpQkFBQTtDdkIrMUNsQztBdUI5MUNEOztFQUNnQyxpQkFBQTtDdkJpMkMvQjtBdUJoMkNEOztFQUNxQyxpQkFBQTtDdkJtMkNwQztBdUJsMkNEOztFQUNvQyxpQkFBQTtDdkJxMkNuQztBdUJwMkNEO0VBQW9DLGlCQUFBO0N2QnUyQ25DO0F1QnQyQ0Q7RUFBb0MsaUJBQUE7Q3ZCeTJDbkM7QXVCeDJDRDs7RUFDZ0MsaUJBQUE7Q3ZCMjJDL0I7QXVCMTJDRDs7RUFDaUMsaUJBQUE7Q3ZCNjJDaEM7QXVCNTJDRDs7RUFDc0MsaUJBQUE7Q3ZCKzJDckM7QXVCOTJDRDtFQUFxQyxpQkFBQTtDdkJpM0NwQztBdUJoM0NEO0VBQXNDLGlCQUFBO0N2Qm0zQ3JDO0F1QmwzQ0Q7O0VBQ2dDLGlCQUFBO0N2QnEzQy9CO0F1QnAzQ0Q7RUFBbUMsaUJBQUE7Q3ZCdTNDbEM7QXVCdDNDRDtFQUFvQyxpQkFBQTtDdkJ5M0NuQztBdUJ4M0NEOztFQUNxQyxpQkFBQTtDdkIyM0NwQztBdUIxM0NEO0VBQXVDLGlCQUFBO0N2QjYzQ3RDO0F1QjUzQ0Q7RUFBb0MsaUJBQUE7Q3ZCKzNDbkM7QXVCOTNDRDtFQUEwQyxpQkFBQTtDdkJpNEN6QztBdUJoNENEO0VBQXdDLGlCQUFBO0N2Qm00Q3ZDO0F1Qmw0Q0Q7RUFBbUMsaUJBQUE7Q3ZCcTRDbEM7QXVCcDRDRDtFQUF1QyxpQkFBQTtDdkJ1NEN0QztBdUJ0NENEO0VBQW9DLGlCQUFBO0N2Qnk0Q25DO0F1Qng0Q0Q7RUFBa0MsaUJBQUE7Q3ZCMjRDakM7QXVCMTRDRDtFQUFrQyxpQkFBQTtDdkI2NENqQztBdUI1NENEO0VBQW1DLGlCQUFBO0N2Qis0Q2xDO0F1Qjk0Q0Q7RUFBdUMsaUJBQUE7Q3ZCaTVDdEM7QXVCaDVDRDtFQUFzQyxpQkFBQTtDdkJtNUNyQztBdUJsNUNEO0VBQXNDLGlCQUFBO0N2QnE1Q3JDO0F1QnA1Q0Q7RUFBcUMsaUJBQUE7Q3ZCdTVDcEM7QXVCdDVDRDtFQUFrQyxpQkFBQTtDdkJ5NUNqQztBdUJ4NUNEO0VBQXVDLGlCQUFBO0N2QjI1Q3RDO0F1QjE1Q0Q7RUFBZ0MsaUJBQUE7Q3ZCNjVDL0I7QXVCNTVDRDtFQUFvQyxpQkFBQTtDdkIrNUNuQztBdUI5NUNEO0VBQXVDLGlCQUFBO0N2Qmk2Q3RDO0F1Qmg2Q0Q7RUFBNkMsaUJBQUE7Q3ZCbTZDNUM7QXVCbDZDRDtFQUE4QyxpQkFBQTtDdkJxNkM3QztBdUJwNkNEO0VBQTJDLGlCQUFBO0N2QnU2QzFDO0F1QnQ2Q0Q7RUFBNkMsaUJBQUE7Q3ZCeTZDNUM7QXVCeDZDRDtFQUFzQyxpQkFBQTtDdkIyNkNyQztBdUIxNkNEO0VBQXVDLGlCQUFBO0N2QjY2Q3RDO0F1QjU2Q0Q7RUFBb0MsaUJBQUE7Q3ZCKzZDbkM7QXVCOTZDRDtFQUFzQyxpQkFBQTtDdkJpN0NyQztBdUJoN0NEO0VBQW1DLGlCQUFBO0N2Qm03Q2xDO0F1Qmw3Q0Q7RUFBa0MsaUJBQUE7Q3ZCcTdDakM7QXVCcDdDRDtFQUFrQyxpQkFBQTtDdkJ1N0NqQztBdUJ0N0NEOztFQUNrQyxpQkFBQTtDdkJ5N0NqQztBdUJ4N0NEO0VBQW9DLGlCQUFBO0N2QjI3Q25DO0F1QjE3Q0Q7RUFBc0MsaUJBQUE7Q3ZCNjdDckM7QXVCNTdDRDtFQUF1QyxpQkFBQTtDdkIrN0N0QztBdUI5N0NEO0VBQW1DLGlCQUFBO0N2Qmk4Q2xDO0F1Qmg4Q0Q7RUFBa0MsaUJBQUE7Q3ZCbThDakM7QXVCbDhDRDs7RUFDaUMsaUJBQUE7Q3ZCcThDaEM7QXVCcDhDRDtFQUFzQyxpQkFBQTtDdkJ1OENyQztBdUJ0OENEO0VBQW9DLGlCQUFBO0N2Qnk4Q25DO0F1Qng4Q0Q7RUFBeUMsaUJBQUE7Q3ZCMjhDeEM7QXVCMThDRDtFQUFtQyxpQkFBQTtDdkI2OENsQztBdUI1OENEO0VBQW1DLGlCQUFBO0N2Qis4Q2xDO0F1Qjk4Q0Q7RUFBaUMsaUJBQUE7Q3ZCaTlDaEM7QXVCaDlDRDtFQUFtQyxpQkFBQTtDdkJtOUNsQztBdUJsOUNEO0VBQXNDLGlCQUFBO0N2QnE5Q3JDO0F1QnA5Q0Q7RUFBa0MsaUJBQUE7Q3ZCdTlDakM7QXVCdDlDRDtFQUEwQyxpQkFBQTtDdkJ5OUN6QztBdUJ4OUNEO0VBQW9DLGlCQUFBO0N2QjI5Q25DO0F1QjE5Q0Q7RUFBZ0MsaUJBQUE7Q3ZCNjlDL0I7QXVCNTlDRDs7RUFDcUMsaUJBQUE7Q3ZCKzlDcEM7QXVCOTlDRDs7O0VBRXVDLGlCQUFBO0N2QmkrQ3RDO0F1QmgrQ0Q7RUFBMEMsaUJBQUE7Q3ZCbStDekM7QXVCbCtDRDtFQUFnQyxpQkFBQTtDdkJxK0MvQjtBdUJwK0NEO0VBQXFDLGlCQUFBO0N2QnUrQ3BDO0F1QnQrQ0Q7O0VBQ3dDLGlCQUFBO0N2QnkrQ3ZDO0F1QngrQ0Q7RUFBb0MsaUJBQUE7Q3ZCMitDbkM7QXVCMStDRDtFQUFnQyxpQkFBQTtDdkI2K0MvQjtBdUI1K0NEO0VBQXVDLGlCQUFBO0N2QisrQ3RDO0F1QjkrQ0Q7RUFBdUMsaUJBQUE7Q3ZCaS9DdEM7QXVCaC9DRDtFQUFxQyxpQkFBQTtDdkJtL0NwQztBdUJsL0NEO0VBQWtDLGlCQUFBO0N2QnEvQ2pDO0F1QnAvQ0Q7RUFBd0MsaUJBQUE7Q3ZCdS9DdkM7QXVCdC9DRDtFQUFzQyxpQkFBQTtDdkJ5L0NyQztBdUJ4L0NEO0VBQTRDLGlCQUFBO0N2QjIvQzNDO0F1QjEvQ0Q7RUFBa0MsaUJBQUE7Q3ZCNi9DakM7QXVCNS9DRDtFQUFzQyxpQkFBQTtDdkIrL0NyQztBdUI5L0NEO0VBQTZDLGlCQUFBO0N2QmlnRDVDO0F1QmhnREQ7RUFBa0MsaUJBQUE7Q3ZCbWdEakM7QXVCbGdERDtFQUFrQyxpQkFBQTtDdkJxZ0RqQztBdUJwZ0REO0VBQStDLGlCQUFBO0N2QnVnRDlDO0F1QnRnREQ7RUFBZ0QsaUJBQUE7Q3ZCeWdEL0M7QXVCeGdERDtFQUE2QyxpQkFBQTtDdkIyZ0Q1QztBdUIxZ0REO0VBQStDLGlCQUFBO0N2QjZnRDlDO0F1QjVnREQ7RUFBaUMsaUJBQUE7Q3ZCK2dEaEM7QXVCOWdERDtFQUFnQyxpQkFBQTtDdkJpaEQvQjtBdUJoaEREO0VBQWtDLGlCQUFBO0N2Qm1oRGpDO0F1QmxoREQ7RUFBc0MsaUJBQUE7Q3ZCcWhEckM7QXVCcGhERDtFQUFvQyxpQkFBQTtDdkJ1aERuQztBdUJ0aEREO0VBQXNDLGlCQUFBO0N2QnloRHJDO0F1QnhoREQ7RUFBc0MsaUJBQUE7Q3ZCMmhEckM7QXVCMWhERDtFQUFzQyxpQkFBQTtDdkI2aERyQztBdUI1aEREO0VBQXVDLGlCQUFBO0N2QitoRHRDO0F1QjloREQ7RUFBa0MsaUJBQUE7Q3ZCaWlEakM7QXVCaGlERDtFQUF3QyxpQkFBQTtDdkJtaUR2QztBdUJsaUREO0VBQTBDLGlCQUFBO0N2QnFpRHpDO0F1QnBpREQ7RUFBb0MsaUJBQUE7Q3ZCdWlEbkM7QXVCdGlERDtFQUFzQyxpQkFBQTtDdkJ5aURyQztBdUJ4aUREO0VBQXdDLGlCQUFBO0N2QjJpRHZDO0F1QjFpREQ7RUFBeUMsaUJBQUE7Q3ZCNmlEeEM7QXVCNWlERDtFQUFnRCxpQkFBQTtDdkIraUQvQztBdUI5aUREO0VBQXdDLGlCQUFBO0N2QmlqRHZDO0F1QmhqREQ7RUFBbUMsaUJBQUE7Q3ZCbWpEbEM7QXVCbGpERDs7RUFDK0MsaUJBQUE7Q3ZCcWpEOUM7QXVCcGpERDs7RUFDNkMsaUJBQUE7Q3ZCdWpENUM7QXVCdGpERDs7RUFDZ0QsaUJBQUE7Q3ZCeWpEL0M7QXVCeGpERDs7RUFDK0IsaUJBQUE7Q3ZCMmpEOUI7QXVCMWpERDtFQUErQixpQkFBQTtDdkI2akQ5QjtBdUI1akREOztFQUMrQixpQkFBQTtDdkIrakQ5QjtBdUI5akREOztFQUMrQixpQkFBQTtDdkJpa0Q5QjtBdUJoa0REOzs7O0VBRytCLGlCQUFBO0N2Qm1rRDlCO0F1QmxrREQ7OztFQUUrQixpQkFBQTtDdkJxa0Q5QjtBdUJwa0REOztFQUMrQixpQkFBQTtDdkJ1a0Q5QjtBdUJ0a0REOztFQUMrQixpQkFBQTtDdkJ5a0Q5QjtBdUJ4a0REO0VBQWdDLGlCQUFBO0N2QjJrRC9CO0F1QjFrREQ7RUFBcUMsaUJBQUE7Q3ZCNmtEcEM7QXVCNWtERDtFQUEwQyxpQkFBQTtDdkIra0R6QztBdUI5a0REO0VBQTJDLGlCQUFBO0N2QmlsRDFDO0F1QmhsREQ7RUFBMkMsaUJBQUE7Q3ZCbWxEMUM7QXVCbGxERDtFQUE0QyxpQkFBQTtDdkJxbEQzQztBdUJwbEREO0VBQTRDLGlCQUFBO0N2QnVsRDNDO0F1QnRsREQ7RUFBNkMsaUJBQUE7Q3ZCeWxENUM7QXVCeGxERDtFQUFxQyxpQkFBQTtDdkIybERwQztBdUIxbEREO0VBQXVDLGlCQUFBO0N2QjZsRHRDO0F1QjVsREQ7RUFBMEMsaUJBQUE7Q3ZCK2xEekM7QXVCOWxERDtFQUFtQyxpQkFBQTtDdkJpbURsQztBdUJobUREO0VBQWdDLGlCQUFBO0N2Qm1tRC9CO0F1QmxtREQ7RUFBdUMsaUJBQUE7Q3ZCcW1EdEM7QXVCcG1ERDtFQUF3QyxpQkFBQTtDdkJ1bUR2QztBdUJ0bUREO0VBQW1DLGlCQUFBO0N2QnltRGxDO0F1QnhtREQ7RUFBMEMsaUJBQUE7Q3ZCMm1EekM7QXVCMW1ERDtFQUFxQyxpQkFBQTtDdkI2bURwQztBdUI1bUREO0VBQWtDLGlCQUFBO0N2QittRGpDO0F1QjltREQ7RUFBK0IsaUJBQUE7Q3ZCaW5EOUI7QXVCaG5ERDtFQUFxQyxpQkFBQTtDdkJtbkRwQztBdUJsbkREO0VBQTRDLGlCQUFBO0N2QnFuRDNDO0F1QnBuREQ7RUFBa0MsaUJBQUE7Q3ZCdW5EakM7QXVCdG5ERDtFQUF5QyxpQkFBQTtDdkJ5bkR4QztBdUJ4bkREO0VBQTJDLGlCQUFBO0N2QjJuRDFDO0F1QjFuREQ7RUFBeUMsaUJBQUE7Q3ZCNm5EeEM7QXVCNW5ERDtFQUEyQyxpQkFBQTtDdkIrbkQxQztBdUI5bkREO0VBQTRDLGlCQUFBO0N2QmlvRDNDO0F1QmhvREQ7RUFBaUMsaUJBQUE7Q3ZCbW9EaEM7QXVCbG9ERDtFQUFtQyxpQkFBQTtDdkJxb0RsQztBdUJwb0REO0VBQW1DLGlCQUFBO0N2QnVvRGxDO0F1QnRvREQ7RUFBaUMsaUJBQUE7Q3ZCeW9EaEM7QXVCeG9ERDtFQUFvQyxpQkFBQTtDdkIyb0RuQztBdUIxb0REO0VBQWlDLGlCQUFBO0N2QjZvRGhDO0F1QjVvREQ7RUFBc0MsaUJBQUE7Q3ZCK29EckM7QXVCOW9ERDtFQUFrQyxpQkFBQTtDdkJpcERqQztBdUJocEREO0VBQWtDLGlCQUFBO0N2Qm1wRGpDO0F1QmxwREQ7RUFBZ0MsaUJBQUE7Q3ZCcXBEL0I7QXVCcHBERDs7RUFDb0MsaUJBQUE7Q3ZCdXBEbkM7QXVCdHBERDtFQUFpQyxpQkFBQTtDdkJ5cERoQztBdUJ4cEREO0VBQWtDLGlCQUFBO0N2QjJwRGpDO0F1QjFwREQ7RUFBbUMsaUJBQUE7Q3ZCNnBEbEM7QXVCNXBERDtFQUErQixpQkFBQTtDdkIrcEQ5QjtBdUI5cEREO0VBQThCLGlCQUFBO0N2QmlxRDdCO0F1QmhxREQ7RUFBaUMsaUJBQUE7Q3ZCbXFEaEM7QXVCbHFERDtFQUFrQyxpQkFBQTtDdkJxcURqQztBdUJwcUREO0VBQXFDLGlCQUFBO0N2QnVxRHBDO0F1QnRxREQ7RUFBMEMsaUJBQUE7Q3ZCeXFEekM7QXVCeHFERDtFQUFnRCxpQkFBQTtDdkIycUQvQztBdUIxcUREO0VBQStDLGlCQUFBO0N2QjZxRDlDO0F1QjVxREQ7O0VBQytDLGlCQUFBO0N2QitxRDlDO0F1QjlxREQ7RUFBd0MsaUJBQUE7Q3ZCaXJEdkM7QXVCaHJERDtFQUFzQyxpQkFBQTtDdkJtckRyQztBdUJsckREO0VBQXdDLGlCQUFBO0N2QnFyRHZDO0F1QnByREQ7O0VBQytCLGlCQUFBO0N2QnVyRDlCO0F1QnRyREQ7RUFBeUMsaUJBQUE7Q3ZCeXJEeEM7QXVCeHJERDtFQUF5QyxpQkFBQTtDdkIyckR4QztBdUIxckREO0VBQWlDLGlCQUFBO0N2QjZyRGhDO0F1QjVyREQ7RUFBMkMsaUJBQUE7Q3ZCK3JEMUM7QXVCOXJERDtFQUFxQyxpQkFBQTtDdkJpc0RwQztBdUJoc0REO0VBQWtDLGlCQUFBO0N2Qm1zRGpDO0F1QmxzREQ7OztFQUVzQyxpQkFBQTtDdkJxc0RyQztBdUJwc0REOztFQUMwQyxpQkFBQTtDdkJ1c0R6QztBdUJ0c0REO0VBQWlDLGlCQUFBO0N2QnlzRGhDO0F1QnhzREQ7RUFBa0MsaUJBQUE7Q3ZCMnNEakM7QXVCMXNERDtFQUFrQyxpQkFBQTtDdkI2c0RqQztBdUI1c0REO0VBQXlDLGlCQUFBO0N2QitzRHhDO0F1QjlzREQ7RUFBOEMsaUJBQUE7Q3ZCaXREN0M7QXVCaHRERDtFQUF1QyxpQkFBQTtDdkJtdER0QztBdUJsdEREO0VBQXFDLGlCQUFBO0N2QnF0RHBDO0F1QnB0REQ7RUFBZ0MsaUJBQUE7Q3ZCdXREL0I7QXVCdHRERDtFQUFzQyxpQkFBQTtDdkJ5dERyQztBdUJ4dEREO0VBQTBDLGlCQUFBO0N2QjJ0RHpDO0F1QjF0REQ7RUFBa0MsaUJBQUE7Q3ZCNnREakM7QXVCNXRERDtFQUFrQyxpQkFBQTtDdkIrdERqQztBdUI5dEREO0VBQW9DLGlCQUFBO0N2Qml1RG5DO0F1Qmh1REQ7RUFBK0IsaUJBQUE7Q3ZCbXVEOUI7QXVCbHVERDtFQUFvQyxpQkFBQTtDdkJxdURuQztBdUJwdUREO0VBQWlDLGlCQUFBO0N2QnV1RGhDO0F1QnR1REQ7RUFBK0IsaUJBQUE7Q3ZCeXVEOUI7QXVCeHVERDtFQUFpQyxpQkFBQTtDdkIydURoQztBdUIxdUREO0VBQWdDLGlCQUFBO0N2QjZ1RC9CO0F1QjV1REQ7RUFBaUMsaUJBQUE7Q3ZCK3VEaEM7QXVCOXVERDtFQUFtQyxpQkFBQTtDdkJpdkRsQztBdUJodkREO0VBQTBDLGlCQUFBO0N2Qm12RHpDO0F1Qmx2REQ7RUFBaUMsaUJBQUE7Q3ZCcXZEaEM7QXVCcHZERDtFQUF3QyxpQkFBQTtDdkJ1dkR2QztBdUJ0dkREO0VBQW1DLGlCQUFBO0N2Qnl2RGxDO0F1Qnh2REQ7O0VBQytCLGlCQUFBO0N2QjJ2RDlCO0F1QjF2REQ7O0VBQ2dDLGlCQUFBO0N2QjZ2RC9CO0F1QjV2REQ7RUFBZ0MsaUJBQUE7Q3ZCK3ZEL0I7QXVCOXZERDtFQUFtQyxpQkFBQTtDdkJpd0RsQztBdUJod0REO0VBQXNDLGlCQUFBO0N2Qm13RHJDO0F1Qmx3REQ7RUFBc0MsaUJBQUE7Q3ZCcXdEckM7QXVCcHdERDtFQUFvQyxpQkFBQTtDdkJ1d0RuQztBdUJ0d0REO0VBQXNDLGlCQUFBO0N2Qnl3RHJDO0F1Qnh3REQ7RUFBdUMsaUJBQUE7Q3ZCMndEdEM7QXVCMXdERDtFQUF3QyxpQkFBQTtDdkI2d0R2QztBdUI1d0REO0VBQTZDLGlCQUFBO0N2Qit3RDVDO0F1Qjl3REQ7OztFQUV3QyxpQkFBQTtDdkJpeER2QztBdUJoeEREOztFQUMwQyxpQkFBQTtDdkJteER6QztBdUJseEREOztFQUN3QyxpQkFBQTtDdkJxeER2QztBdUJweEREOztFQUN3QyxpQkFBQTtDdkJ1eER2QztBdUJ0eEREO0VBQXVDLGlCQUFBO0N2Qnl4RHRDO0F1Qnh4REQ7RUFBZ0MsaUJBQUE7Q3ZCMnhEL0I7QXVCMXhERDtFQUFtQyxpQkFBQTtDdkI2eERsQztBdUI1eEREO0VBQW9DLGlCQUFBO0N2Qit4RG5DO0F1Qjl4REQ7Ozs7O0VBSXFDLGlCQUFBO0N2Qml5RHBDO0F1Qmh5REQ7RUFBMEMsaUJBQUE7Q3ZCbXlEekM7QXVCbHlERDs7RUFDaUMsaUJBQUE7Q3ZCcXlEaEM7QXVCcHlERDs7RUFDa0MsaUJBQUE7Q3ZCdXlEakM7QXVCdHlERDtFQUFzQyxpQkFBQTtDdkJ5eURyQztBdUJ4eUREO0VBQStCLGlCQUFBO0N2QjJ5RDlCO0F1QjF5REQ7RUFBdUMsaUJBQUE7Q3ZCNnlEdEM7QXVCNXlERDtFQUF5QyxpQkFBQTtDdkIreUR4QztBdUI5eUREO0VBQThCLGlCQUFBO0N2Qml6RDdCO0F1Qmh6REQ7O0VBQ2tDLGlCQUFBO0N2Qm16RGpDO0F1Qmx6REQ7O0VBQ3VDLGlCQUFBO0N2QnF6RHRDO0F1QnB6REQ7O0VBQ3lDLGlCQUFBO0N2QnV6RHhDO0F1QnR6REQ7RUFBbUMsaUJBQUE7Q3ZCeXpEbEM7QXVCeHpERDs7RUFDdUMsaUJBQUE7Q3ZCMnpEdEM7QXVCMXpERDtFQUFrQyxpQkFBQTtDdkI2ekRqQztBdUI1ekREO0VBQXFDLGlCQUFBO0N2Qit6RHBDO0F1Qjl6REQ7RUFBbUMsaUJBQUE7Q3ZCaTBEbEM7QXVCaDBERDtFQUFxQyxpQkFBQTtDdkJtMERwQztBdUJsMEREO0VBQTRDLGlCQUFBO0N2QnEwRDNDO0F1QnAwREQ7RUFBZ0MsaUJBQUE7Q3ZCdTBEL0I7QXVCdDBERDs7RUFDb0MsaUJBQUE7Q3ZCeTBEbkM7QXVCeDBERDtFQUErQixpQkFBQTtDdkIyMEQ5QjtBdUIxMEREO0VBQXNDLGlCQUFBO0N2QjYwRHJDO0F1QjUwREQ7RUFBZ0MsaUJBQUE7Q3ZCKzBEL0I7QXVCOTBERDtFQUFzQyxpQkFBQTtDdkJpMURyQztBdUJoMUREO0VBQWtDLGlCQUFBO0N2Qm0xRGpDO0F1QmwxREQ7RUFBZ0MsaUJBQUE7Q3ZCcTFEL0I7QXVCcDFERDtFQUF1QyxpQkFBQTtDdkJ1MUR0QztBdUJ0MUREO0VBQWdDLGlCQUFBO0N2QnkxRC9CO0F1QngxREQ7RUFBc0MsaUJBQUE7Q3ZCMjFEckM7QXVCMTFERDtFQUFrQyxpQkFBQTtDdkI2MURqQztBdUI1MUREO0VBQXlDLGlCQUFBO0N2QisxRHhDO0F1QjkxREQ7RUFBbUMsaUJBQUE7Q3ZCaTJEbEM7QXVCaDJERDtFQUF5QyxpQkFBQTtDdkJtMkR4QztBdUJsMkREO0VBQXVDLGlCQUFBO0N2QnEyRHRDO0F1QnAyREQ7RUFBbUMsaUJBQUE7Q3ZCdTJEbEM7QXVCdDJERDtFQUFxQyxpQkFBQTtDdkJ5MkRwQztBdUJ4MkREO0VBQXFDLGlCQUFBO0N2QjIyRHBDO0F1QjEyREQ7RUFBc0MsaUJBQUE7Q3ZCNjJEckM7QXVCNTJERDtFQUF3QyxpQkFBQTtDdkIrMkR2QztBdUI5MkREO0VBQWlDLGlCQUFBO0N2QmkzRGhDO0F1QmgzREQ7RUFBcUMsaUJBQUE7Q3ZCbTNEcEM7QXVCbDNERDtFQUE4QixpQkFBQTtDdkJxM0Q3QjtBdUJwM0REO0VBQXNDLGlCQUFBO0N2QnUzRHJDO0F1QnQzREQ7RUFBdUMsaUJBQUE7Q3ZCeTNEdEM7QXVCeDNERDtFQUF5QyxpQkFBQTtDdkIyM0R4QztBdUIxM0REO0VBQXNDLGlCQUFBO0N2QjYzRHJDO0F1QjUzREQ7RUFBcUMsaUJBQUE7Q3ZCKzNEcEM7QXVCOTNERDtFQUFzQyxpQkFBQTtDdkJpNERyQztBdUJoNEREO0VBQWtDLGlCQUFBO0N2Qm00RGpDO0F1Qmw0REQ7RUFBeUMsaUJBQUE7Q3ZCcTREeEM7QXVCcDRERDtFQUFzQyxpQkFBQTtDdkJ1NERyQztBdUJ0NEREO0VBQXFDLGlCQUFBO0N2Qnk0RHBDO0F1Qng0REQ7RUFBbUMsaUJBQUE7Q3ZCMjREbEM7QXVCMTRERDtFQUErQixpQkFBQTtDdkI2NEQ5QjtBdUI1NEREO0VBQW1DLGlCQUFBO0N2Qis0RGxDO0F1Qjk0REQ7RUFBcUMsaUJBQUE7Q3ZCaTVEcEM7QXVCaDVERDtFQUE4QixpQkFBQTtDdkJtNUQ3QjtBdUJsNUREOzs7RUFFK0IsaUJBQUE7Q3ZCcTVEOUI7QXVCcDVERDtFQUFvQyxpQkFBQTtDdkJ1NURuQztBdUJ0NUREO0VBQXNDLGlCQUFBO0N2Qnk1RHJDO0F1Qng1REQ7RUFBMEMsaUJBQUE7Q3ZCMjVEekM7QXVCMTVERDtFQUFvQyxpQkFBQTtDdkI2NURuQztBdUI1NUREO0VBQW9DLGlCQUFBO0N2Qis1RG5DO0F1Qjk1REQ7RUFBbUMsaUJBQUE7Q3ZCaTZEbEM7QXVCaDZERDtFQUFrQyxpQkFBQTtDdkJtNkRqQztBdUJsNkREO0VBQXdDLGlCQUFBO0N2QnE2RHZDO0F1QnA2REQ7RUFBdUMsaUJBQUE7Q3ZCdTZEdEM7QXVCdDZERDtFQUFvQyxpQkFBQTtDdkJ5NkRuQztBdUJ4NkREO0VBQXFDLGlCQUFBO0N2QjI2RHBDO0F1QjE2REQ7RUFBMkMsaUJBQUE7Q3ZCNjZEMUM7QXVCNTZERDtFQUFtQyxpQkFBQTtDdkIrNkRsQztBdUI5NkREO0VBQWdDLGlCQUFBO0N2Qmk3RC9CO0F1Qmg3REQ7RUFBdUMsaUJBQUE7Q3ZCbTdEdEM7QXVCbDdERDtFQUFzQyxpQkFBQTtDdkJxN0RyQztBdUJwN0REO0VBQXVDLGlCQUFBO0N2QnU3RHRDO0F1QnQ3REQ7RUFBcUMsaUJBQUE7Q3ZCeTdEcEM7QXVCeDdERDtFQUFpQyxpQkFBQTtDdkIyN0RoQztBdUIxN0REO0VBQWdDLGlCQUFBO0N2QjY3RC9CO0F1QjU3REQ7RUFBbUMsaUJBQUE7Q3ZCKzdEbEM7QXVCOTdERDtFQUF1QyxpQkFBQTtDdkJpOER0QztBdUJoOEREO0VBQTJDLGlCQUFBO0N2Qm04RDFDO0F1Qmw4REQ7RUFBd0MsaUJBQUE7Q3ZCcThEdkM7QXVCcDhERDtFQUF1QyxpQkFBQTtDdkJ1OER0QztBdUJ0OEREO0VBQXNDLGlCQUFBO0N2Qnk4RHJDO0F1Qng4REQ7RUFBdUMsaUJBQUE7Q3ZCMjhEdEM7QXVCMThERDtFQUF5QyxpQkFBQTtDdkI2OER4QztBdUI1OEREO0VBQXlDLGlCQUFBO0N2Qis4RHhDO0F1Qjk4REQ7RUFBa0MsaUJBQUE7Q3ZCaTlEakM7QXVCaDlERDtFQUE2QyxpQkFBQTtDdkJtOUQ1QztBdUJsOUREO0VBQXVDLGlCQUFBO0N2QnE5RHRDO0F1QnA5REQ7RUFBb0MsaUJBQUE7Q3ZCdTlEbkM7QXVCdDlERDtFQUFrQyxpQkFBQTtDdkJ5OURqQztBdUJ4OUREO0VBQXFDLGlCQUFBO0N2QjI5RHBDO0F1QjE5REQ7RUFBc0MsaUJBQUE7Q3ZCNjlEckM7QXVCNTlERDs7RUFDK0IsaUJBQUE7Q3ZCKzlEOUI7QXVCOTlERDtFQUFtQyxpQkFBQTtDdkJpK0RsQztBdUJoK0REO0VBQWlDLGlCQUFBO0N2Qm0rRGhDO0F1QmwrREQ7RUFBa0MsaUJBQUE7Q3ZCcStEakM7QXVCcCtERDtFQUFrQyxpQkFBQTtDdkJ1K0RqQyIsImZpbGUiOiJMaWIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmxheW91dC1lZGl0b3IgKiB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmxheW91dC1lZGl0b3IgKjpiZWZvcmUsXG4ubGF5b3V0LWVkaXRvciAqOmFmdGVyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubGF5b3V0LWVkaXRvciBodG1sIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4ubGF5b3V0LWVkaXRvciBib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ubGF5b3V0LWVkaXRvciBpbnB1dCxcbi5sYXlvdXQtZWRpdG9yIGJ1dHRvbixcbi5sYXlvdXQtZWRpdG9yIHNlbGVjdCxcbi5sYXlvdXQtZWRpdG9yIHRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG4ubGF5b3V0LWVkaXRvciBhIHtcbiAgY29sb3I6ICMzMzdhYjc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5sYXlvdXQtZWRpdG9yIGE6aG92ZXIsXG4ubGF5b3V0LWVkaXRvciBhOmZvY3VzIHtcbiAgY29sb3I6ICMyMzUyN2M7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmxheW91dC1lZGl0b3IgYTpmb2N1cyB7XG4gIG91dGxpbmU6IHRoaW4gZG90dGVkO1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuLmxheW91dC1lZGl0b3IgZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuLmxheW91dC1lZGl0b3IgaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5pbWctcmVzcG9uc2l2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi5sYXlvdXQtZWRpdG9yIC5pbWctcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5sYXlvdXQtZWRpdG9yIC5pbWctdGh1bWJuYWlsIHtcbiAgcGFkZGluZzogNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4ubGF5b3V0LWVkaXRvciAuaW1nLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5sYXlvdXQtZWRpdG9yIGhyIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZWVlZTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBib3JkZXI6IDA7XG59XG4ubGF5b3V0LWVkaXRvciAuc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLFxuLmxheW91dC1lZGl0b3IgLnNyLW9ubHktZm9jdXNhYmxlOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb250YWluZXIge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmxheW91dC1lZGl0b3IgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDc1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmxheW91dC1lZGl0b3IgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDk3MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5sYXlvdXQtZWRpdG9yIC5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMTcwcHg7XG4gIH1cbn1cbi5sYXlvdXQtZWRpdG9yIC5jb250YWluZXItZmx1aWQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4ubGF5b3V0LWVkaXRvciAucm93IHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy0xLCAuY29sLXNtLTEsIC5jb2wtbWQtMSwgLmNvbC1sZy0xLCAuY29sLXhzLTIsIC5jb2wtc20tMiwgLmNvbC1tZC0yLCAuY29sLWxnLTIsIC5jb2wteHMtMywgLmNvbC1zbS0zLCAuY29sLW1kLTMsIC5jb2wtbGctMywgLmNvbC14cy00LCAuY29sLXNtLTQsIC5jb2wtbWQtNCwgLmNvbC1sZy00LCAuY29sLXhzLTUsIC5jb2wtc20tNSwgLmNvbC1tZC01LCAuY29sLWxnLTUsIC5jb2wteHMtNiwgLmNvbC1zbS02LCAuY29sLW1kLTYsIC5jb2wtbGctNiwgLmNvbC14cy03LCAuY29sLXNtLTcsIC5jb2wtbWQtNywgLmNvbC1sZy03LCAuY29sLXhzLTgsIC5jb2wtc20tOCwgLmNvbC1tZC04LCAuY29sLWxnLTgsIC5jb2wteHMtOSwgLmNvbC1zbS05LCAuY29sLW1kLTksIC5jb2wtbGctOSwgLmNvbC14cy0xMCwgLmNvbC1zbS0xMCwgLmNvbC1tZC0xMCwgLmNvbC1sZy0xMCwgLmNvbC14cy0xMSwgLmNvbC1zbS0xMSwgLmNvbC1tZC0xMSwgLmNvbC1sZy0xMSwgLmNvbC14cy0xMiwgLmNvbC1zbS0xMiwgLmNvbC1tZC0xMiwgLmNvbC1sZy0xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTEsIC5jb2wteHMtMiwgLmNvbC14cy0zLCAuY29sLXhzLTQsIC5jb2wteHMtNSwgLmNvbC14cy02LCAuY29sLXhzLTcsIC5jb2wteHMtOCwgLmNvbC14cy05LCAuY29sLXhzLTEwLCAuY29sLXhzLTExLCAuY29sLXhzLTEyIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTEyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTExIHtcbiAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtMTAge1xuICB3aWR0aDogODMuMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy05IHtcbiAgd2lkdGg6IDc1JTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtOCB7XG4gIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTcge1xuICB3aWR0aDogNTguMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy02IHtcbiAgd2lkdGg6IDUwJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtNSB7XG4gIHdpZHRoOiA0MS42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTQge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy0zIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtMiB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTEge1xuICB3aWR0aDogOC4zMzMzMzMzMyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1bGwtMTIge1xuICByaWdodDogMTAwJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVsbC0xMSB7XG4gIHJpZ2h0OiA5MS42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1bGwtMTAge1xuICByaWdodDogODMuMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTkge1xuICByaWdodDogNzUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTgge1xuICByaWdodDogNjYuNjY2NjY2NjclO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTcge1xuICByaWdodDogNTguMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTYge1xuICByaWdodDogNTAlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTUge1xuICByaWdodDogNDEuNjY2NjY2NjclO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTQge1xuICByaWdodDogMzMuMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTMge1xuICByaWdodDogMjUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTIge1xuICByaWdodDogMTYuNjY2NjY2NjclO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTEge1xuICByaWdodDogOC4zMzMzMzMzMyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1bGwtMCB7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdXNoLTEyIHtcbiAgbGVmdDogMTAwJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVzaC0xMSB7XG4gIGxlZnQ6IDkxLjY2NjY2NjY3JTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVzaC0xMCB7XG4gIGxlZnQ6IDgzLjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVzaC05IHtcbiAgbGVmdDogNzUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdXNoLTgge1xuICBsZWZ0OiA2Ni42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1c2gtNyB7XG4gIGxlZnQ6IDU4LjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVzaC02IHtcbiAgbGVmdDogNTAlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdXNoLTUge1xuICBsZWZ0OiA0MS42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1c2gtNCB7XG4gIGxlZnQ6IDMzLjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVzaC0zIHtcbiAgbGVmdDogMjUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdXNoLTIge1xuICBsZWZ0OiAxNi42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1c2gtMSB7XG4gIGxlZnQ6IDguMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdXNoLTAge1xuICBsZWZ0OiBhdXRvO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1vZmZzZXQtMTIge1xuICBtYXJnaW4tbGVmdDogMTAwJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtb2Zmc2V0LTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTEsIC5jb2wtc20tMiwgLmNvbC1zbS0zLCAuY29sLXNtLTQsIC5jb2wtc20tNSwgLmNvbC1zbS02LCAuY29sLXNtLTcsIC5jb2wtc20tOCwgLmNvbC1zbS05LCAuY29sLXNtLTEwLCAuY29sLXNtLTExLCAuY29sLXNtLTEyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1bGwtMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTUge1xuICAgIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVzaC0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVzaC0xMCB7XG4gICAgbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVzaC05IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdXNoLTgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVzaC02IHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdXNoLTUge1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1c2gtNCB7XG4gICAgbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdXNoLTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1c2gtMSB7XG4gICAgbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC0xLCAuY29sLW1kLTIsIC5jb2wtbWQtMywgLmNvbC1tZC00LCAuY29sLW1kLTUsIC5jb2wtbWQtNiwgLmNvbC1tZC03LCAuY29sLW1kLTgsIC5jb2wtbWQtOSwgLmNvbC1tZC0xMCwgLmNvbC1tZC0xMSwgLmNvbC1tZC0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdWxsLTEyIHtcbiAgICByaWdodDogMTAwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1bGwtMTEge1xuICAgIHJpZ2h0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdWxsLTEwIHtcbiAgICByaWdodDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC05IHtcbiAgICByaWdodDogNzUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC04IHtcbiAgICByaWdodDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC03IHtcbiAgICByaWdodDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC02IHtcbiAgICByaWdodDogNTAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC01IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC00IHtcbiAgICByaWdodDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC0zIHtcbiAgICByaWdodDogMjUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC0yIHtcbiAgICByaWdodDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC0xIHtcbiAgICByaWdodDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdWxsLTAge1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVzaC0xMiB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1c2gtMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1c2gtMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1c2gtOSB7XG4gICAgbGVmdDogNzUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVzaC04IHtcbiAgICBsZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdXNoLTcge1xuICAgIGxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1c2gtNiB7XG4gICAgbGVmdDogNTAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVzaC01IHtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdXNoLTQge1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1c2gtMyB7XG4gICAgbGVmdDogMjUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVzaC0yIHtcbiAgICBsZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdXNoLTEge1xuICAgIGxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVzaC0wIHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtb2Zmc2V0LTEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTEsIC5jb2wtbGctMiwgLmNvbC1sZy0zLCAuY29sLWxnLTQsIC5jb2wtbGctNSwgLmNvbC1sZy02LCAuY29sLWxnLTcsIC5jb2wtbGctOCwgLmNvbC1sZy05LCAuY29sLWxnLTEwLCAuY29sLWxnLTExLCAuY29sLWxnLTEyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1bGwtMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTUge1xuICAgIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVzaC0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVzaC0xMCB7XG4gICAgbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVzaC05IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdXNoLTgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVzaC02IHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdXNoLTUge1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1c2gtNCB7XG4gICAgbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdXNoLTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1c2gtMSB7XG4gICAgbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG59XG4uY2xlYXJmaXg6YmVmb3JlLFxuLmNsZWFyZml4OmFmdGVyLFxuLmxheW91dC1lZGl0b3IgLmNvbnRhaW5lcjpiZWZvcmUsXG4ubGF5b3V0LWVkaXRvciAuY29udGFpbmVyOmFmdGVyLFxuLmxheW91dC1lZGl0b3IgLmNvbnRhaW5lci1mbHVpZDpiZWZvcmUsXG4ubGF5b3V0LWVkaXRvciAuY29udGFpbmVyLWZsdWlkOmFmdGVyLFxuLmxheW91dC1lZGl0b3IgLnJvdzpiZWZvcmUsXG4ubGF5b3V0LWVkaXRvciAucm93OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuLmNsZWFyZml4OmFmdGVyLFxuLmxheW91dC1lZGl0b3IgLmNvbnRhaW5lcjphZnRlcixcbi5sYXlvdXQtZWRpdG9yIC5jb250YWluZXItZmx1aWQ6YWZ0ZXIsXG4ubGF5b3V0LWVkaXRvciAucm93OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4uY2VudGVyLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4ucHVsbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuLnB1bGwtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udGV4dC1oaWRlIHtcbiAgZm9udDogMC8wIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG59XG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cbi5hZmZpeCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuLyohXG4gKiAgRm9udCBBd2Vzb21lIDQuMy4wIGJ5IEBkYXZlZ2FuZHkgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8gLSBAZm9udGF3ZXNvbWVcbiAqICBMaWNlbnNlIC0gaHR0cDovL2ZvbnRhd2Vzb21lLmlvL2xpY2Vuc2UgKEZvbnQ6IFNJTCBPRkwgMS4xLCBDU1M6IE1JVCBMaWNlbnNlKVxuICovXG4vKiBGT05UIFBBVEhcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG4gIHNyYzogdXJsKCdGb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD92PTQuMy4wJyk7XG4gIHNyYzogdXJsKCdGb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjMuMCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdGb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmYyP3Y9NC4zLjAnKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnRm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9NC4zLjAnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdGb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuMy4wJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ0ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQuc3ZnP3Y9NC4zLjAjZm9udGF3ZXNvbWVyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLmZhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgRm9udEF3ZXNvbWU7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbn1cbi8qIG1ha2VzIHRoZSBmb250IDMzJSBsYXJnZXIgcmVsYXRpdmUgdG8gdGhlIGljb24gY29udGFpbmVyICovXG4uZmEtbGcge1xuICBmb250LXNpemU6IDEuMzMzMzMzMzNlbTtcbiAgbGluZS1oZWlnaHQ6IDAuNzVlbTtcbiAgdmVydGljYWwtYWxpZ246IC0xNSU7XG59XG4uZmEtMngge1xuICBmb250LXNpemU6IDJlbTtcbn1cbi5mYS0zeCB7XG4gIGZvbnQtc2l6ZTogM2VtO1xufVxuLmZhLTR4IHtcbiAgZm9udC1zaXplOiA0ZW07XG59XG4uZmEtNXgge1xuICBmb250LXNpemU6IDVlbTtcbn1cbi5mYS1mdyB7XG4gIHdpZHRoOiAxLjI4NTcxNDI5ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5mYS11bCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLWxlZnQ6IDIuMTQyODU3MTRlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuLmZhLXVsID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZmEtbGkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0yLjE0Mjg1NzE0ZW07XG4gIHdpZHRoOiAyLjE0Mjg1NzE0ZW07XG4gIHRvcDogMC4xNDI4NTcxNGVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZmEtbGkuZmEtbGcge1xuICBsZWZ0OiAtMS44NTcxNDI4NmVtO1xufVxuLmZhLWJvcmRlciB7XG4gIHBhZGRpbmc6IC4yZW0gLjI1ZW0gLjE1ZW07XG4gIGJvcmRlcjogc29saWQgMC4wOGVtICNlZWU7XG4gIGJvcmRlci1yYWRpdXM6IC4xZW07XG59XG4ucHVsbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5wdWxsLWxlZnQge1xuICBmbG9hdDogbGVmdDtcbn1cbi5mYS5wdWxsLWxlZnQge1xuICBtYXJnaW4tcmlnaHQ6IC4zZW07XG59XG4uZmEucHVsbC1yaWdodCB7XG4gIG1hcmdpbi1sZWZ0OiAuM2VtO1xufVxuLmZhLXNwaW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG4gIGFuaW1hdGlvbjogZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG59XG4uZmEtcHVsc2Uge1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTtcbiAgYW5pbWF0aW9uOiBmYS1zcGluIDFzIGluZmluaXRlIHN0ZXBzKDgpO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZhLXNwaW4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYS1zcGluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gIH1cbn1cbi5mYS1yb3RhdGUtOTAge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTEpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuLmZhLXJvdGF0ZS0xODAge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuLmZhLXJvdGF0ZS0yNzAge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTMpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xufVxuLmZhLWZsaXAtaG9yaXpvbnRhbCB7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MCwgbWlycm9yPTEpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xufVxuLmZhLWZsaXAtdmVydGljYWwge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsIG1pcnJvcj0xKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbn1cbjpyb290IC5mYS1yb3RhdGUtOTAsXG46cm9vdCAuZmEtcm90YXRlLTE4MCxcbjpyb290IC5mYS1yb3RhdGUtMjcwLFxuOnJvb3QgLmZhLWZsaXAtaG9yaXpvbnRhbCxcbjpyb290IC5mYS1mbGlwLXZlcnRpY2FsIHtcbiAgZmlsdGVyOiBub25lO1xufVxuLmZhLXN0YWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyZW07XG4gIGhlaWdodDogMmVtO1xuICBsaW5lLWhlaWdodDogMmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmZhLXN0YWNrLTF4LFxuLmZhLXN0YWNrLTJ4IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmZhLXN0YWNrLTF4IHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG4uZmEtc3RhY2stMngge1xuICBmb250LXNpemU6IDJlbTtcbn1cbi5mYS1pbnZlcnNlIHtcbiAgY29sb3I6ICNmZmY7XG59XG4vKiBGb250IEF3ZXNvbWUgdXNlcyB0aGUgVW5pY29kZSBQcml2YXRlIFVzZSBBcmVhIChQVUEpIHRvIGVuc3VyZSBzY3JlZW5cbiAgIHJlYWRlcnMgZG8gbm90IHJlYWQgb2ZmIHJhbmRvbSBjaGFyYWN0ZXJzIHRoYXQgcmVwcmVzZW50IGljb25zICovXG4uZmEtZ2xhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDBcIjtcbn1cbi5mYS1tdXNpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwMVwiO1xufVxuLmZhLXNlYXJjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwMlwiO1xufVxuLmZhLWVudmVsb3BlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDNcIjtcbn1cbi5mYS1oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNFwiO1xufVxuLmZhLXN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDVcIjtcbn1cbi5mYS1zdGFyLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDZcIjtcbn1cbi5mYS11c2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA3XCI7XG59XG4uZmEtZmlsbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwOFwiO1xufVxuLmZhLXRoLWxhcmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA5XCI7XG59XG4uZmEtdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGFcIjtcbn1cbi5mYS10aC1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBiXCI7XG59XG4uZmEtY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGNcIjtcbn1cbi5mYS1yZW1vdmU6YmVmb3JlLFxuLmZhLWNsb3NlOmJlZm9yZSxcbi5mYS10aW1lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuLmZhLXNlYXJjaC1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG4uZmEtc2VhcmNoLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEwXCI7XG59XG4uZmEtcG93ZXItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDExXCI7XG59XG4uZmEtc2lnbmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEyXCI7XG59XG4uZmEtZ2VhcjpiZWZvcmUsXG4uZmEtY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEzXCI7XG59XG4uZmEtdHJhc2gtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxNFwiO1xufVxuLmZhLWhvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTVcIjtcbn1cbi5mYS1maWxlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTZcIjtcbn1cbi5mYS1jbG9jay1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE3XCI7XG59XG4uZmEtcm9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxOFwiO1xufVxuLmZhLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE5XCI7XG59XG4uZmEtYXJyb3ctY2lyY2xlLW8tZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxYVwiO1xufVxuLmZhLWFycm93LWNpcmNsZS1vLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDFiXCI7XG59XG4uZmEtaW5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWNcIjtcbn1cbi5mYS1wbGF5LWNpcmNsZS1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDFkXCI7XG59XG4uZmEtcm90YXRlLXJpZ2h0OmJlZm9yZSxcbi5mYS1yZXBlYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWVcIjtcbn1cbi5mYS1yZWZyZXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIxXCI7XG59XG4uZmEtbGlzdC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjJcIjtcbn1cbi5mYS1sb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIzXCI7XG59XG4uZmEtZmxhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyNFwiO1xufVxuLmZhLWhlYWRwaG9uZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjVcIjtcbn1cbi5mYS12b2x1bWUtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI2XCI7XG59XG4uZmEtdm9sdW1lLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjdcIjtcbn1cbi5mYS12b2x1bWUtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjhcIjtcbn1cbi5mYS1xcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjlcIjtcbn1cbi5mYS1iYXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJhXCI7XG59XG4uZmEtdGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJiXCI7XG59XG4uZmEtdGFnczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyY1wiO1xufVxuLmZhLWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmRcIjtcbn1cbi5mYS1ib29rbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyZVwiO1xufVxuLmZhLXByaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJmXCI7XG59XG4uZmEtY2FtZXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMwXCI7XG59XG4uZmEtZm9udDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzMVwiO1xufVxuLmZhLWJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzJcIjtcbn1cbi5mYS1pdGFsaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzNcIjtcbn1cbi5mYS10ZXh0LWhlaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzNFwiO1xufVxuLmZhLXRleHQtd2lkdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzVcIjtcbn1cbi5mYS1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM2XCI7XG59XG4uZmEtYWxpZ24tY2VudGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM3XCI7XG59XG4uZmEtYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzhcIjtcbn1cbi5mYS1hbGlnbi1qdXN0aWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM5XCI7XG59XG4uZmEtbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzYVwiO1xufVxuLmZhLWRlZGVudDpiZWZvcmUsXG4uZmEtb3V0ZGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzYlwiO1xufVxuLmZhLWluZGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzY1wiO1xufVxuLmZhLXZpZGVvLWNhbWVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZFwiO1xufVxuLmZhLXBob3RvOmJlZm9yZSxcbi5mYS1pbWFnZTpiZWZvcmUsXG4uZmEtcGljdHVyZS1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNlXCI7XG59XG4uZmEtcGVuY2lsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQwXCI7XG59XG4uZmEtbWFwLW1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MVwiO1xufVxuLmZhLWFkanVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MlwiO1xufVxuLmZhLXRpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDNcIjtcbn1cbi5mYS1lZGl0OmJlZm9yZSxcbi5mYS1wZW5jaWwtc3F1YXJlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDRcIjtcbn1cbi5mYS1zaGFyZS1zcXVhcmUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0NVwiO1xufVxuLmZhLWNoZWNrLXNxdWFyZS1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ2XCI7XG59XG4uZmEtYXJyb3dzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ3XCI7XG59XG4uZmEtc3RlcC1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0OFwiO1xufVxuLmZhLWZhc3QtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDlcIjtcbn1cbi5mYS1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0YVwiO1xufVxuLmZhLXBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGJcIjtcbn1cbi5mYS1wYXVzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0Y1wiO1xufVxuLmZhLXN0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGRcIjtcbn1cbi5mYS1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDRlXCI7XG59XG4uZmEtZmFzdC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUwXCI7XG59XG4uZmEtc3RlcC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUxXCI7XG59XG4uZmEtZWplY3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTJcIjtcbn1cbi5mYS1jaGV2cm9uLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTNcIjtcbn1cbi5mYS1jaGV2cm9uLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU0XCI7XG59XG4uZmEtcGx1cy1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTVcIjtcbn1cbi5mYS1taW51cy1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTZcIjtcbn1cbi5mYS10aW1lcy1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTdcIjtcbn1cbi5mYS1jaGVjay1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNThcIjtcbn1cbi5mYS1xdWVzdGlvbi1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTlcIjtcbn1cbi5mYS1pbmZvLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1YVwiO1xufVxuLmZhLWNyb3NzaGFpcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNWJcIjtcbn1cbi5mYS10aW1lcy1jaXJjbGUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1Y1wiO1xufVxuLmZhLWNoZWNrLWNpcmNsZS1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDVkXCI7XG59XG4uZmEtYmFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDVlXCI7XG59XG4uZmEtYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2MFwiO1xufVxuLmZhLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDYxXCI7XG59XG4uZmEtYXJyb3ctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjJcIjtcbn1cbi5mYS1hcnJvdy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDYzXCI7XG59XG4uZmEtbWFpbC1mb3J3YXJkOmJlZm9yZSxcbi5mYS1zaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NFwiO1xufVxuLmZhLWV4cGFuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NVwiO1xufVxuLmZhLWNvbXByZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY2XCI7XG59XG4uZmEtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2N1wiO1xufVxuLmZhLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY4XCI7XG59XG4uZmEtYXN0ZXJpc2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjlcIjtcbn1cbi5mYS1leGNsYW1hdGlvbi1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmFcIjtcbn1cbi5mYS1naWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZiXCI7XG59XG4uZmEtbGVhZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2Y1wiO1xufVxuLmZhLWZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmRcIjtcbn1cbi5mYS1leWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmVcIjtcbn1cbi5mYS1leWUtc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzBcIjtcbn1cbi5mYS13YXJuaW5nOmJlZm9yZSxcbi5mYS1leGNsYW1hdGlvbi10cmlhbmdsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3MVwiO1xufVxuLmZhLXBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcyXCI7XG59XG4uZmEtY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzNcIjtcbn1cbi5mYS1yYW5kb206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzRcIjtcbn1cbi5mYS1jb21tZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc1XCI7XG59XG4uZmEtbWFnbmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc2XCI7XG59XG4uZmEtY2hldnJvbi11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3N1wiO1xufVxuLmZhLWNoZXZyb24tZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3OFwiO1xufVxuLmZhLXJldHdlZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzlcIjtcbn1cbi5mYS1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdhXCI7XG59XG4uZmEtZm9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdiXCI7XG59XG4uZmEtZm9sZGVyLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwN2NcIjtcbn1cbi5mYS1hcnJvd3MtdjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3ZFwiO1xufVxuLmZhLWFycm93cy1oOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdlXCI7XG59XG4uZmEtYmFyLWNoYXJ0LW86YmVmb3JlLFxuLmZhLWJhci1jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4MFwiO1xufVxuLmZhLXR3aXR0ZXItc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgxXCI7XG59XG4uZmEtZmFjZWJvb2stc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgyXCI7XG59XG4uZmEtY2FtZXJhLXJldHJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgzXCI7XG59XG4uZmEta2V5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg0XCI7XG59XG4uZmEtZ2VhcnM6YmVmb3JlLFxuLmZhLWNvZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODVcIjtcbn1cbi5mYS1jb21tZW50czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NlwiO1xufVxuLmZhLXRodW1icy1vLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg3XCI7XG59XG4uZmEtdGh1bWJzLW8tZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OFwiO1xufVxuLmZhLXN0YXItaGFsZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OVwiO1xufVxuLmZhLWhlYXJ0LW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGFcIjtcbn1cbi5mYS1zaWduLW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4YlwiO1xufVxuLmZhLWxpbmtlZGluLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4Y1wiO1xufVxuLmZhLXRodW1iLXRhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGRcIjtcbn1cbi5mYS1leHRlcm5hbC1saW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDhlXCI7XG59XG4uZmEtc2lnbi1pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5MFwiO1xufVxuLmZhLXRyb3BoeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5MVwiO1xufVxuLmZhLWdpdGh1Yi1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTJcIjtcbn1cbi5mYS11cGxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTNcIjtcbn1cbi5mYS1sZW1vbi1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk0XCI7XG59XG4uZmEtcGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTVcIjtcbn1cbi5mYS1zcXVhcmUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5NlwiO1xufVxuLmZhLWJvb2ttYXJrLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTdcIjtcbn1cbi5mYS1waG9uZS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOThcIjtcbn1cbi5mYS10d2l0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk5XCI7XG59XG4uZmEtZmFjZWJvb2stZjpiZWZvcmUsXG4uZmEtZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWFcIjtcbn1cbi5mYS1naXRodWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWJcIjtcbn1cbi5mYS11bmxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWNcIjtcbn1cbi5mYS1jcmVkaXQtY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5ZFwiO1xufVxuLmZhLXJzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5ZVwiO1xufVxuLmZhLWhkZC1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGEwXCI7XG59XG4uZmEtYnVsbGhvcm46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTFcIjtcbn1cbi5mYS1iZWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYzXCI7XG59XG4uZmEtY2VydGlmaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTNcIjtcbn1cbi5mYS1oYW5kLW8tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTRcIjtcbn1cbi5mYS1oYW5kLW8tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNVwiO1xufVxuLmZhLWhhbmQtby11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNlwiO1xufVxuLmZhLWhhbmQtby1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE3XCI7XG59XG4uZmEtYXJyb3ctY2lyY2xlLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYThcIjtcbn1cbi5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTlcIjtcbn1cbi5mYS1hcnJvdy1jaXJjbGUtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWFcIjtcbn1cbi5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhYlwiO1xufVxuLmZhLWdsb2JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFjXCI7XG59XG4uZmEtd3JlbmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFkXCI7XG59XG4uZmEtdGFza3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWVcIjtcbn1cbi5mYS1maWx0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjBcIjtcbn1cbi5mYS1icmllZmNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjFcIjtcbn1cbi5mYS1hcnJvd3MtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIyXCI7XG59XG4uZmEtZ3JvdXA6YmVmb3JlLFxuLmZhLXVzZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMwXCI7XG59XG4uZmEtY2hhaW46YmVmb3JlLFxuLmZhLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzFcIjtcbn1cbi5mYS1jbG91ZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMlwiO1xufVxuLmZhLWZsYXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMzXCI7XG59XG4uZmEtY3V0OmJlZm9yZSxcbi5mYS1zY2lzc29yczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNFwiO1xufVxuLmZhLWNvcHk6YmVmb3JlLFxuLmZhLWZpbGVzLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzVcIjtcbn1cbi5mYS1wYXBlcmNsaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzZcIjtcbn1cbi5mYS1zYXZlOmJlZm9yZSxcbi5mYS1mbG9wcHktbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjN1wiO1xufVxuLmZhLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOFwiO1xufVxuLmZhLW5hdmljb246YmVmb3JlLFxuLmZhLXJlb3JkZXI6YmVmb3JlLFxuLmZhLWJhcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzlcIjtcbn1cbi5mYS1saXN0LXVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNhXCI7XG59XG4uZmEtbGlzdC1vbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjYlwiO1xufVxuLmZhLXN0cmlrZXRocm91Z2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2NcIjtcbn1cbi5mYS11bmRlcmxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2RcIjtcbn1cbi5mYS10YWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjZVwiO1xufVxuLmZhLW1hZ2ljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQwXCI7XG59XG4uZmEtdHJ1Y2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDFcIjtcbn1cbi5mYS1waW50ZXJlc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDJcIjtcbn1cbi5mYS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQzXCI7XG59XG4uZmEtZ29vZ2xlLXBsdXMtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ0XCI7XG59XG4uZmEtZ29vZ2xlLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDVcIjtcbn1cbi5mYS1tb25leTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkNlwiO1xufVxuLmZhLWNhcmV0LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDdcIjtcbn1cbi5mYS1jYXJldC11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkOFwiO1xufVxuLmZhLWNhcmV0LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDlcIjtcbn1cbi5mYS1jYXJldC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkYVwiO1xufVxuLmZhLWNvbHVtbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGJcIjtcbn1cbi5mYS11bnNvcnRlZDpiZWZvcmUsXG4uZmEtc29ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkY1wiO1xufVxuLmZhLXNvcnQtZG93bjpiZWZvcmUsXG4uZmEtc29ydC1kZXNjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRkXCI7XG59XG4uZmEtc29ydC11cDpiZWZvcmUsXG4uZmEtc29ydC1hc2M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGVcIjtcbn1cbi5mYS1lbnZlbG9wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMFwiO1xufVxuLmZhLWxpbmtlZGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUxXCI7XG59XG4uZmEtcm90YXRlLWxlZnQ6YmVmb3JlLFxuLmZhLXVuZG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTJcIjtcbn1cbi5mYS1sZWdhbDpiZWZvcmUsXG4uZmEtZ2F2ZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTNcIjtcbn1cbi5mYS1kYXNoYm9hcmQ6YmVmb3JlLFxuLmZhLXRhY2hvbWV0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTRcIjtcbn1cbi5mYS1jb21tZW50LW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTVcIjtcbn1cbi5mYS1jb21tZW50cy1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU2XCI7XG59XG4uZmEtZmxhc2g6YmVmb3JlLFxuLmZhLWJvbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTdcIjtcbn1cbi5mYS1zaXRlbWFwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU4XCI7XG59XG4uZmEtdW1icmVsbGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTlcIjtcbn1cbi5mYS1wYXN0ZTpiZWZvcmUsXG4uZmEtY2xpcGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGVhXCI7XG59XG4uZmEtbGlnaHRidWxiLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZWJcIjtcbn1cbi5mYS1leGNoYW5nZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlY1wiO1xufVxuLmZhLWNsb3VkLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGVkXCI7XG59XG4uZmEtY2xvdWQtdXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGVlXCI7XG59XG4uZmEtdXNlci1tZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMFwiO1xufVxuLmZhLXN0ZXRob3Njb3BlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYxXCI7XG59XG4uZmEtc3VpdGNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjJcIjtcbn1cbi5mYS1iZWxsLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTJcIjtcbn1cbi5mYS1jb2ZmZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjRcIjtcbn1cbi5mYS1jdXRsZXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY1XCI7XG59XG4uZmEtZmlsZS10ZXh0LW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjZcIjtcbn1cbi5mYS1idWlsZGluZy1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY3XCI7XG59XG4uZmEtaG9zcGl0YWwtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmOFwiO1xufVxuLmZhLWFtYnVsYW5jZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmOVwiO1xufVxuLmZhLW1lZGtpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmYVwiO1xufVxuLmZhLWZpZ2h0ZXItamV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZiXCI7XG59XG4uZmEtYmVlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmY1wiO1xufVxuLmZhLWgtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZkXCI7XG59XG4uZmEtcGx1cy1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmVcIjtcbn1cbi5mYS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMFwiO1xufVxuLmZhLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMVwiO1xufVxuLmZhLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMlwiO1xufVxuLmZhLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAzXCI7XG59XG4uZmEtYW5nbGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNFwiO1xufVxuLmZhLWFuZ2xlLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG59XG4uZmEtYW5nbGUtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDZcIjtcbn1cbi5mYS1hbmdsZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA3XCI7XG59XG4uZmEtZGVza3RvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOFwiO1xufVxuLmZhLWxhcHRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOVwiO1xufVxuLmZhLXRhYmxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwYVwiO1xufVxuLmZhLW1vYmlsZS1waG9uZTpiZWZvcmUsXG4uZmEtbW9iaWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBiXCI7XG59XG4uZmEtY2lyY2xlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGNcIjtcbn1cbi5mYS1xdW90ZS1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBkXCI7XG59XG4uZmEtcXVvdGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGVcIjtcbn1cbi5mYS1zcGlubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEwXCI7XG59XG4uZmEtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTExXCI7XG59XG4uZmEtbWFpbC1yZXBseTpiZWZvcmUsXG4uZmEtcmVwbHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTJcIjtcbn1cbi5mYS1naXRodWItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEzXCI7XG59XG4uZmEtZm9sZGVyLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTRcIjtcbn1cbi5mYS1mb2xkZXItb3Blbi1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE1XCI7XG59XG4uZmEtc21pbGUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExOFwiO1xufVxuLmZhLWZyb3duLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTlcIjtcbn1cbi5mYS1tZWgtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYVwiO1xufVxuLmZhLWdhbWVwYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWJcIjtcbn1cbi5mYS1rZXlib2FyZC1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFjXCI7XG59XG4uZmEtZmxhZy1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFkXCI7XG59XG4uZmEtZmxhZy1jaGVja2VyZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWVcIjtcbn1cbi5mYS10ZXJtaW5hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMFwiO1xufVxuLmZhLWNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjFcIjtcbn1cbi5mYS1tYWlsLXJlcGx5LWFsbDpiZWZvcmUsXG4uZmEtcmVwbHktYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTIyXCI7XG59XG4uZmEtc3Rhci1oYWxmLWVtcHR5OmJlZm9yZSxcbi5mYS1zdGFyLWhhbGYtZnVsbDpiZWZvcmUsXG4uZmEtc3Rhci1oYWxmLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjNcIjtcbn1cbi5mYS1sb2NhdGlvbi1hcnJvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNFwiO1xufVxuLmZhLWNyb3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjVcIjtcbn1cbi5mYS1jb2RlLWZvcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjZcIjtcbn1cbi5mYS11bmxpbms6YmVmb3JlLFxuLmZhLWNoYWluLWJyb2tlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyN1wiO1xufVxuLmZhLXF1ZXN0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI4XCI7XG59XG4uZmEtaW5mbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyOVwiO1xufVxuLmZhLWV4Y2xhbWF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJhXCI7XG59XG4uZmEtc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmJcIjtcbn1cbi5mYS1zdWJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmNcIjtcbn1cbi5mYS1lcmFzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmRcIjtcbn1cbi5mYS1wdXp6bGUtcGllY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmVcIjtcbn1cbi5mYS1taWNyb3Bob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMwXCI7XG59XG4uZmEtbWljcm9waG9uZS1zbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzMVwiO1xufVxuLmZhLXNoaWVsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzMlwiO1xufVxuLmZhLWNhbGVuZGFyLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzNcIjtcbn1cbi5mYS1maXJlLWV4dGluZ3Vpc2hlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNFwiO1xufVxuLmZhLXJvY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNVwiO1xufVxuLmZhLW1heGNkbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNlwiO1xufVxuLmZhLWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzdcIjtcbn1cbi5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOFwiO1xufVxuLmZhLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM5XCI7XG59XG4uZmEtY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzYVwiO1xufVxuLmZhLWh0bWw1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNiXCI7XG59XG4uZmEtY3NzMzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzY1wiO1xufVxuLmZhLWFuY2hvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzZFwiO1xufVxuLmZhLXVubG9jay1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2VcIjtcbn1cbi5mYS1idWxsc2V5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MFwiO1xufVxuLmZhLWVsbGlwc2lzLWg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDFcIjtcbn1cbi5mYS1lbGxpcHNpcy12OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQyXCI7XG59XG4uZmEtcnNzLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0M1wiO1xufVxuLmZhLXBsYXktY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ0XCI7XG59XG4uZmEtdGlja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ1XCI7XG59XG4uZmEtbWludXMtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ2XCI7XG59XG4uZmEtbWludXMtc3F1YXJlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDdcIjtcbn1cbi5mYS1sZXZlbC11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0OFwiO1xufVxuLmZhLWxldmVsLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDlcIjtcbn1cbi5mYS1jaGVjay1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGFcIjtcbn1cbi5mYS1wZW5jaWwtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRiXCI7XG59XG4uZmEtZXh0ZXJuYWwtbGluay1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGNcIjtcbn1cbi5mYS1zaGFyZS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGRcIjtcbn1cbi5mYS1jb21wYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRlXCI7XG59XG4uZmEtdG9nZ2xlLWRvd246YmVmb3JlLFxuLmZhLWNhcmV0LXNxdWFyZS1vLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTBcIjtcbn1cbi5mYS10b2dnbGUtdXA6YmVmb3JlLFxuLmZhLWNhcmV0LXNxdWFyZS1vLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG59XG4uZmEtdG9nZ2xlLXJpZ2h0OmJlZm9yZSxcbi5mYS1jYXJldC1zcXVhcmUtby1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MlwiO1xufVxuLmZhLWV1cm86YmVmb3JlLFxuLmZhLWV1cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1M1wiO1xufVxuLmZhLWdicDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NFwiO1xufVxuLmZhLWRvbGxhcjpiZWZvcmUsXG4uZmEtdXNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU1XCI7XG59XG4uZmEtcnVwZWU6YmVmb3JlLFxuLmZhLWlucjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NlwiO1xufVxuLmZhLWNueTpiZWZvcmUsXG4uZmEtcm1iOmJlZm9yZSxcbi5mYS15ZW46YmVmb3JlLFxuLmZhLWpweTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1N1wiO1xufVxuLmZhLXJ1YmxlOmJlZm9yZSxcbi5mYS1yb3VibGU6YmVmb3JlLFxuLmZhLXJ1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OFwiO1xufVxuLmZhLXdvbjpiZWZvcmUsXG4uZmEta3J3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU5XCI7XG59XG4uZmEtYml0Y29pbjpiZWZvcmUsXG4uZmEtYnRjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVhXCI7XG59XG4uZmEtZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1YlwiO1xufVxuLmZhLWZpbGUtdGV4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1Y1wiO1xufVxuLmZhLXNvcnQtYWxwaGEtYXNjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVkXCI7XG59XG4uZmEtc29ydC1hbHBoYS1kZXNjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVlXCI7XG59XG4uZmEtc29ydC1hbW91bnQtYXNjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYwXCI7XG59XG4uZmEtc29ydC1hbW91bnQtZGVzYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MVwiO1xufVxuLmZhLXNvcnQtbnVtZXJpYy1hc2M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjJcIjtcbn1cbi5mYS1zb3J0LW51bWVyaWMtZGVzYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2M1wiO1xufVxuLmZhLXRodW1icy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2NFwiO1xufVxuLmZhLXRodW1icy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY1XCI7XG59XG4uZmEteW91dHViZS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjZcIjtcbn1cbi5mYS15b3V0dWJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY3XCI7XG59XG4uZmEteGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2OFwiO1xufVxuLmZhLXhpbmctc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY5XCI7XG59XG4uZmEteW91dHViZS1wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZhXCI7XG59XG4uZmEtZHJvcGJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2YlwiO1xufVxuLmZhLXN0YWNrLW92ZXJmbG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZjXCI7XG59XG4uZmEtaW5zdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZkXCI7XG59XG4uZmEtZmxpY2tyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZlXCI7XG59XG4uZmEtYWRuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTcwXCI7XG59XG4uZmEtYml0YnVja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTcxXCI7XG59XG4uZmEtYml0YnVja2V0LXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3MlwiO1xufVxuLmZhLXR1bWJscjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3M1wiO1xufVxuLmZhLXR1bWJsci1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzRcIjtcbn1cbi5mYS1sb25nLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzVcIjtcbn1cbi5mYS1sb25nLWFycm93LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTc2XCI7XG59XG4uZmEtbG9uZy1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTc3XCI7XG59XG4uZmEtbG9uZy1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3OFwiO1xufVxuLmZhLWFwcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTc5XCI7XG59XG4uZmEtd2luZG93czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3YVwiO1xufVxuLmZhLWFuZHJvaWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2JcIjtcbn1cbi5mYS1saW51eDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3Y1wiO1xufVxuLmZhLWRyaWJiYmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdkXCI7XG59XG4uZmEtc2t5cGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2VcIjtcbn1cbi5mYS1mb3Vyc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgwXCI7XG59XG4uZmEtdHJlbGxvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgxXCI7XG59XG4uZmEtZmVtYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgyXCI7XG59XG4uZmEtbWFsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4M1wiO1xufVxuLmZhLWdpdHRpcDpiZWZvcmUsXG4uZmEtZ3JhdGlwYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODRcIjtcbn1cbi5mYS1zdW4tbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NVwiO1xufVxuLmZhLW1vb24tbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NlwiO1xufVxuLmZhLWFyY2hpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODdcIjtcbn1cbi5mYS1idWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODhcIjtcbn1cbi5mYS12azpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4OVwiO1xufVxuLmZhLXdlaWJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThhXCI7XG59XG4uZmEtcmVucmVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThiXCI7XG59XG4uZmEtcGFnZWxpbmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThjXCI7XG59XG4uZmEtc3RhY2stZXhjaGFuZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGRcIjtcbn1cbi5mYS1hcnJvdy1jaXJjbGUtby1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4ZVwiO1xufVxuLmZhLWFycm93LWNpcmNsZS1vLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTBcIjtcbn1cbi5mYS10b2dnbGUtbGVmdDpiZWZvcmUsXG4uZmEtY2FyZXQtc3F1YXJlLW8tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MVwiO1xufVxuLmZhLWRvdC1jaXJjbGUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MlwiO1xufVxuLmZhLXdoZWVsY2hhaXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTNcIjtcbn1cbi5mYS12aW1lby1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTRcIjtcbn1cbi5mYS10dXJraXNoLWxpcmE6YmVmb3JlLFxuLmZhLXRyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NVwiO1xufVxuLmZhLXBsdXMtc3F1YXJlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTZcIjtcbn1cbi5mYS1zcGFjZS1zaHV0dGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk3XCI7XG59XG4uZmEtc2xhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOThcIjtcbn1cbi5mYS1lbnZlbG9wZS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTlcIjtcbn1cbi5mYS13b3JkcHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWFcIjtcbn1cbi5mYS1vcGVuaWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWJcIjtcbn1cbi5mYS1pbnN0aXR1dGlvbjpiZWZvcmUsXG4uZmEtYmFuazpiZWZvcmUsXG4uZmEtdW5pdmVyc2l0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5Y1wiO1xufVxuLmZhLW1vcnRhci1ib2FyZDpiZWZvcmUsXG4uZmEtZ3JhZHVhdGlvbi1jYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWRcIjtcbn1cbi5mYS15YWhvbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5ZVwiO1xufVxuLmZhLWdvb2dsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhMFwiO1xufVxuLmZhLXJlZGRpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhMVwiO1xufVxuLmZhLXJlZGRpdC1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTJcIjtcbn1cbi5mYS1zdHVtYmxldXBvbi1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTNcIjtcbn1cbi5mYS1zdHVtYmxldXBvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhNFwiO1xufVxuLmZhLWRlbGljaW91czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhNVwiO1xufVxuLmZhLWRpZ2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTZcIjtcbn1cbi5mYS1waWVkLXBpcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE3XCI7XG59XG4uZmEtcGllZC1waXBlci1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYThcIjtcbn1cbi5mYS1kcnVwYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTlcIjtcbn1cbi5mYS1qb29tbGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWFcIjtcbn1cbi5mYS1sYW5ndWFnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhYlwiO1xufVxuLmZhLWZheDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhY1wiO1xufVxuLmZhLWJ1aWxkaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFkXCI7XG59XG4uZmEtY2hpbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWVcIjtcbn1cbi5mYS1wYXc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjBcIjtcbn1cbi5mYS1zcG9vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiMVwiO1xufVxuLmZhLWN1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjJcIjtcbn1cbi5mYS1jdWJlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiM1wiO1xufVxuLmZhLWJlaGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjRcIjtcbn1cbi5mYS1iZWhhbmNlLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNVwiO1xufVxuLmZhLXN0ZWFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI2XCI7XG59XG4uZmEtc3RlYW0tc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI3XCI7XG59XG4uZmEtcmVjeWNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiOFwiO1xufVxuLmZhLWF1dG9tb2JpbGU6YmVmb3JlLFxuLmZhLWNhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiOVwiO1xufVxuLmZhLWNhYjpiZWZvcmUsXG4uZmEtdGF4aTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiYVwiO1xufVxuLmZhLXRyZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmJcIjtcbn1cbi5mYS1zcG90aWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJjXCI7XG59XG4uZmEtZGV2aWFudGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiZFwiO1xufVxuLmZhLXNvdW5kY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmVcIjtcbn1cbi5mYS1kYXRhYmFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMFwiO1xufVxuLmZhLWZpbGUtcGRmLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzFcIjtcbn1cbi5mYS1maWxlLXdvcmQtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMlwiO1xufVxuLmZhLWZpbGUtZXhjZWwtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjM1wiO1xufVxuLmZhLWZpbGUtcG93ZXJwb2ludC1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM0XCI7XG59XG4uZmEtZmlsZS1waG90by1vOmJlZm9yZSxcbi5mYS1maWxlLXBpY3R1cmUtbzpiZWZvcmUsXG4uZmEtZmlsZS1pbWFnZS1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM1XCI7XG59XG4uZmEtZmlsZS16aXAtbzpiZWZvcmUsXG4uZmEtZmlsZS1hcmNoaXZlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzZcIjtcbn1cbi5mYS1maWxlLXNvdW5kLW86YmVmb3JlLFxuLmZhLWZpbGUtYXVkaW8tbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjN1wiO1xufVxuLmZhLWZpbGUtbW92aWUtbzpiZWZvcmUsXG4uZmEtZmlsZS12aWRlby1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM4XCI7XG59XG4uZmEtZmlsZS1jb2RlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzlcIjtcbn1cbi5mYS12aW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNhXCI7XG59XG4uZmEtY29kZXBlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjYlwiO1xufVxuLmZhLWpzZmlkZGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNjXCI7XG59XG4uZmEtbGlmZS1ib3V5OmJlZm9yZSxcbi5mYS1saWZlLWJ1b3k6YmVmb3JlLFxuLmZhLWxpZmUtc2F2ZXI6YmVmb3JlLFxuLmZhLXN1cHBvcnQ6YmVmb3JlLFxuLmZhLWxpZmUtcmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjZFwiO1xufVxuLmZhLWNpcmNsZS1vLW5vdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNlXCI7XG59XG4uZmEtcmE6YmVmb3JlLFxuLmZhLXJlYmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQwXCI7XG59XG4uZmEtZ2U6YmVmb3JlLFxuLmZhLWVtcGlyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkMVwiO1xufVxuLmZhLWdpdC1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDJcIjtcbn1cbi5mYS1naXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDNcIjtcbn1cbi5mYS1oYWNrZXItbmV3czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkNFwiO1xufVxuLmZhLXRlbmNlbnQtd2VpYm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDVcIjtcbn1cbi5mYS1xcTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkNlwiO1xufVxuLmZhLXdlY2hhdDpiZWZvcmUsXG4uZmEtd2VpeGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ3XCI7XG59XG4uZmEtc2VuZDpiZWZvcmUsXG4uZmEtcGFwZXItcGxhbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDhcIjtcbn1cbi5mYS1zZW5kLW86YmVmb3JlLFxuLmZhLXBhcGVyLXBsYW5lLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDlcIjtcbn1cbi5mYS1oaXN0b3J5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRhXCI7XG59XG4uZmEtZ2VuZGVybGVzczpiZWZvcmUsXG4uZmEtY2lyY2xlLXRoaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGJcIjtcbn1cbi5mYS1oZWFkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGNcIjtcbn1cbi5mYS1wYXJhZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGRcIjtcbn1cbi5mYS1zbGlkZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRlXCI7XG59XG4uZmEtc2hhcmUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUwXCI7XG59XG4uZmEtc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlMVwiO1xufVxuLmZhLWJvbWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTJcIjtcbn1cbi5mYS1zb2NjZXItYmFsbC1vOmJlZm9yZSxcbi5mYS1mdXRib2wtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlM1wiO1xufVxuLmZhLXR0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNFwiO1xufVxuLmZhLWJpbm9jdWxhcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTVcIjtcbn1cbi5mYS1wbHVnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU2XCI7XG59XG4uZmEtc2xpZGVzaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlN1wiO1xufVxuLmZhLXR3aXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlOFwiO1xufVxuLmZhLXllbHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTlcIjtcbn1cbi5mYS1uZXdzcGFwZXItbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlYVwiO1xufVxuLmZhLXdpZmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWJcIjtcbn1cbi5mYS1jYWxjdWxhdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVjXCI7XG59XG4uZmEtcGF5cGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVkXCI7XG59XG4uZmEtZ29vZ2xlLXdhbGxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlZVwiO1xufVxuLmZhLWNjLXZpc2E6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cbi5mYS1jYy1tYXN0ZXJjYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYxXCI7XG59XG4uZmEtY2MtZGlzY292ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjJcIjtcbn1cbi5mYS1jYy1hbWV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYzXCI7XG59XG4uZmEtY2MtcGF5cGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY0XCI7XG59XG4uZmEtY2Mtc3RyaXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY1XCI7XG59XG4uZmEtYmVsbC1zbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNlwiO1xufVxuLmZhLWJlbGwtc2xhc2gtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmN1wiO1xufVxuLmZhLXRyYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY4XCI7XG59XG4uZmEtY29weXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY5XCI7XG59XG4uZmEtYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmFcIjtcbn1cbi5mYS1leWVkcm9wcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZiXCI7XG59XG4uZmEtcGFpbnQtYnJ1c2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmNcIjtcbn1cbi5mYS1iaXJ0aGRheS1jYWtlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZkXCI7XG59XG4uZmEtYXJlYS1jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmZVwiO1xufVxuLmZhLXBpZS1jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiO1xufVxuLmZhLWxpbmUtY2hhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDFcIjtcbn1cbi5mYS1sYXN0Zm06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDJcIjtcbn1cbi5mYS1sYXN0Zm0tc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAzXCI7XG59XG4uZmEtdG9nZ2xlLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNFwiO1xufVxuLmZhLXRvZ2dsZS1vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNVwiO1xufVxuLmZhLWJpY3ljbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDZcIjtcbn1cbi5mYS1idXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDdcIjtcbn1cbi5mYS1pb3hob3N0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA4XCI7XG59XG4uZmEtYW5nZWxsaXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA5XCI7XG59XG4uZmEtY2M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGFcIjtcbn1cbi5mYS1zaGVrZWw6YmVmb3JlLFxuLmZhLXNoZXFlbDpiZWZvcmUsXG4uZmEtaWxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG4uZmEtbWVhbnBhdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGNcIjtcbn1cbi5mYS1idXlzZWxsYWRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBkXCI7XG59XG4uZmEtY29ubmVjdGRldmVsb3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGVcIjtcbn1cbi5mYS1kYXNoY3ViZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxMFwiO1xufVxuLmZhLWZvcnVtYmVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjExXCI7XG59XG4uZmEtbGVhbnB1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxMlwiO1xufVxuLmZhLXNlbGxzeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxM1wiO1xufVxuLmZhLXNoaXJ0c2luYnVsazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxNFwiO1xufVxuLmZhLXNpbXBseWJ1aWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE1XCI7XG59XG4uZmEtc2t5YXRsYXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTZcIjtcbn1cbi5mYS1jYXJ0LXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTdcIjtcbn1cbi5mYS1jYXJ0LWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMThcIjtcbn1cbi5mYS1kaWFtb25kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE5XCI7XG59XG4uZmEtc2hpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxYVwiO1xufVxuLmZhLXVzZXItc2VjcmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFiXCI7XG59XG4uZmEtbW90b3JjeWNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxY1wiO1xufVxuLmZhLXN0cmVldC12aWV3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFkXCI7XG59XG4uZmEtaGVhcnRiZWF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFlXCI7XG59XG4uZmEtdmVudXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjFcIjtcbn1cbi5mYS1tYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjIyXCI7XG59XG4uZmEtbWVyY3VyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyM1wiO1xufVxuLmZhLXRyYW5zZ2VuZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI0XCI7XG59XG4uZmEtdHJhbnNnZW5kZXItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI1XCI7XG59XG4uZmEtdmVudXMtZG91YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI2XCI7XG59XG4uZmEtbWFycy1kb3VibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjdcIjtcbn1cbi5mYS12ZW51cy1tYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI4XCI7XG59XG4uZmEtbWFycy1zdHJva2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjlcIjtcbn1cbi5mYS1tYXJzLXN0cm9rZS12OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJhXCI7XG59XG4uZmEtbWFycy1zdHJva2UtaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyYlwiO1xufVxuLmZhLW5ldXRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyY1wiO1xufVxuLmZhLWZhY2Vib29rLW9mZmljaWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMwXCI7XG59XG4uZmEtcGludGVyZXN0LXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzFcIjtcbn1cbi5mYS13aGF0c2FwcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzMlwiO1xufVxuLmZhLXNlcnZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzM1wiO1xufVxuLmZhLXVzZXItcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNFwiO1xufVxuLmZhLXVzZXItdGltZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbi5mYS1ob3RlbDpiZWZvcmUsXG4uZmEtYmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM2XCI7XG59XG4uZmEtdmlhY29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzN1wiO1xufVxuLmZhLXRyYWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM4XCI7XG59XG4uZmEtc3Vid2F5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM5XCI7XG59XG4uZmEtbWVkaXVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNhXCI7XG59XG4iLCIvLyBDb3JlIHZhcmlhYmxlcyBhbmQgbWl4aW5zXHJcbkBpbXBvcnQgXCJ2YXJpYWJsZXMubGVzc1wiO1xyXG5AaW1wb3J0IFwibWl4aW5zLmxlc3NcIjtcclxuXHJcbi8vIENvcmUgQ1NTXHJcbi5sYXlvdXQtZWRpdG9yIHtcclxuICAgIEBpbXBvcnQgXCJzY2FmZm9sZGluZy5sZXNzXCI7XHJcbiAgICBAaW1wb3J0IFwiZ3JpZC5sZXNzXCI7XHJcbn1cclxuIFxyXG4vLyBVdGlsaXR5IGNsYXNzZXNcclxuQGltcG9ydCBcInV0aWxpdGllcy5sZXNzXCI7XHJcbiIsIi8vIFZlbmRvciBQcmVmaXhlc1xyXG4vL1xyXG4vLyBBbGwgdmVuZG9yIG1peGlucyBhcmUgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgZHVlIHRvIHRoZSBpbnRyb2R1Y3Rpb24gb2ZcclxuLy8gQXV0b3ByZWZpeGVyIGluIG91ciBHcnVudGZpbGUuIFRoZXkgd2lsbCBiZSByZW1vdmVkIGluIHY0LlxyXG5cclxuLy8gLSBBbmltYXRpb25zXHJcbi8vIC0gQmFja2ZhY2UgdmlzaWJpbGl0eVxyXG4vLyAtIEJveCBzaGFkb3dcclxuLy8gLSBCb3ggc2l6aW5nXHJcbi8vIC0gQ29udGVudCBjb2x1bW5zXHJcbi8vIC0gSHlwaGVuc1xyXG4vLyAtIFBsYWNlaG9sZGVyIHRleHRcclxuLy8gLSBUcmFuc2Zvcm1hdGlvbnNcclxuLy8gLSBUcmFuc2l0aW9uc1xyXG4vLyAtIFVzZXIgU2VsZWN0XHJcblxyXG5cclxuLy8gQW5pbWF0aW9uc1xyXG4uYW5pbWF0aW9uKEBhbmltYXRpb24pIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogQGFuaW1hdGlvbjtcclxuICAgICAgIC1vLWFuaW1hdGlvbjogQGFuaW1hdGlvbjtcclxuICAgICAgICAgIGFuaW1hdGlvbjogQGFuaW1hdGlvbjtcclxufVxyXG4uYW5pbWF0aW9uLW5hbWUoQG5hbWUpIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBAbmFtZTtcclxuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBAbmFtZTtcclxufVxyXG4uYW5pbWF0aW9uLWR1cmF0aW9uKEBkdXJhdGlvbikge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiBAZHVyYXRpb247XHJcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcclxufVxyXG4uYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbihAdGltaW5nLWZ1bmN0aW9uKSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xyXG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcclxufVxyXG4uYW5pbWF0aW9uLWRlbGF5KEBkZWxheSkge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiBAZGVsYXk7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IEBkZWxheTtcclxufVxyXG4uYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudChAaXRlcmF0aW9uLWNvdW50KSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBAaXRlcmF0aW9uLWNvdW50O1xyXG4gICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGl0ZXJhdGlvbi1jb3VudDtcclxufVxyXG4uYW5pbWF0aW9uLWRpcmVjdGlvbihAZGlyZWN0aW9uKSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xyXG4gICAgICAgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogQGRpcmVjdGlvbjtcclxufVxyXG4uYW5pbWF0aW9uLWZpbGwtbW9kZShAZmlsbC1tb2RlKSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBAZmlsbC1tb2RlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogQGZpbGwtbW9kZTtcclxufVxyXG5cclxuLy8gQmFja2ZhY2UgdmlzaWJpbGl0eVxyXG4vLyBQcmV2ZW50IGJyb3dzZXJzIGZyb20gZmxpY2tlcmluZyB3aGVuIHVzaW5nIENTUyAzRCB0cmFuc2Zvcm1zLlxyXG4vLyBEZWZhdWx0IHZhbHVlIGlzIGB2aXNpYmxlYCwgYnV0IGNhbiBiZSBjaGFuZ2VkIHRvIGBoaWRkZW5gXHJcblxyXG4uYmFja2ZhY2UtdmlzaWJpbGl0eShAdmlzaWJpbGl0eSl7XHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcclxuICAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xyXG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XHJcbn1cclxuXHJcbi8vIERyb3Agc2hhZG93c1xyXG4vL1xyXG4vLyBOb3RlOiBEZXByZWNhdGVkIGAuYm94LXNoYWRvdygpYCBhcyBvZiB2My4xLjAgc2luY2UgYWxsIG9mIEJvb3RzdHJhcCdzXHJcbi8vIHN1cHBvcnRlZCBicm93c2VycyB0aGF0IGhhdmUgYm94IHNoYWRvdyBjYXBhYmlsaXRpZXMgbm93IHN1cHBvcnQgaXQuXHJcblxyXG4uYm94LXNoYWRvdyhAc2hhZG93KSB7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBAc2hhZG93OyAvLyBpT1MgPDQuMyAmIEFuZHJvaWQgPDQuMVxyXG4gICAgICAgICAgYm94LXNoYWRvdzogQHNoYWRvdztcclxufVxyXG5cclxuLy8gQm94IHNpemluZ1xyXG4uYm94LXNpemluZyhAYm94bW9kZWwpIHtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IEBib3htb2RlbDtcclxuICAgICAtbW96LWJveC1zaXppbmc6IEBib3htb2RlbDtcclxuICAgICAgICAgIGJveC1zaXppbmc6IEBib3htb2RlbDtcclxufVxyXG5cclxuLy8gQ1NTMyBDb250ZW50IENvbHVtbnNcclxuLmNvbnRlbnQtY29sdW1ucyhAY29sdW1uLWNvdW50OyBAY29sdW1uLWdhcDogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XHJcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XHJcbiAgICAgLW1vei1jb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XHJcbiAgICAgICAgICBjb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XHJcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiBAY29sdW1uLWdhcDtcclxuICAgICAtbW96LWNvbHVtbi1nYXA6IEBjb2x1bW4tZ2FwO1xyXG4gICAgICAgICAgY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XHJcbn1cclxuXHJcbi8vIE9wdGlvbmFsIGh5cGhlbmF0aW9uXHJcbi5oeXBoZW5zKEBtb2RlOiBhdXRvKSB7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gIC13ZWJraXQtaHlwaGVuczogQG1vZGU7XHJcbiAgICAgLW1vei1oeXBoZW5zOiBAbW9kZTtcclxuICAgICAgLW1zLWh5cGhlbnM6IEBtb2RlOyAvLyBJRTEwK1xyXG4gICAgICAgLW8taHlwaGVuczogQG1vZGU7XHJcbiAgICAgICAgICBoeXBoZW5zOiBAbW9kZTtcclxufVxyXG5cclxuLy8gUGxhY2Vob2xkZXIgdGV4dFxyXG4ucGxhY2Vob2xkZXIoQGNvbG9yOiBAaW5wdXQtY29sb3ItcGxhY2Vob2xkZXIpIHtcclxuICAvLyBGaXJlZm94XHJcbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgICBjb2xvcjogQGNvbG9yO1xyXG4gICAgb3BhY2l0eTogMTsgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzExNTI2XHJcbiAgfVxyXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6IEBjb2xvcjsgfSAvLyBJbnRlcm5ldCBFeHBsb3JlciAxMCtcclxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyICB7IGNvbG9yOiBAY29sb3I7IH0gLy8gU2FmYXJpIGFuZCBDaHJvbWVcclxufVxyXG5cclxuLy8gVHJhbnNmb3JtYXRpb25zXHJcbi5zY2FsZShAcmF0aW8pIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTsgLy8gSUU5IG9ubHlcclxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcclxufVxyXG4uc2NhbGUoQHJhdGlvWDsgQHJhdGlvWSkge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7IC8vIElFOSBvbmx5XHJcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTtcclxufVxyXG4uc2NhbGVYKEByYXRpbykge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7IC8vIElFOSBvbmx5XHJcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTtcclxufVxyXG4uc2NhbGVZKEByYXRpbykge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7IC8vIElFOSBvbmx5XHJcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTtcclxufVxyXG4uc2tldyhAeDsgQHkpIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTsgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvNDg4NTsgSUU5K1xyXG4gICAgICAgLW8tdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xyXG59XHJcbi50cmFuc2xhdGUoQHg7IEB5KSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xyXG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTsgLy8gSUU5IG9ubHlcclxuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xyXG59XHJcbi50cmFuc2xhdGUzZChAeDsgQHk7IEB6KSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKEB4LCBAeSwgQHopO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAeCwgQHksIEB6KTtcclxufVxyXG4ucm90YXRlKEBkZWdyZWVzKSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7IC8vIElFOSBvbmx5XHJcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbn1cclxuLnJvdGF0ZVgoQGRlZ3JlZXMpIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxyXG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XHJcbn1cclxuLnJvdGF0ZVkoQGRlZ3JlZXMpIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxyXG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XHJcbn1cclxuLnBlcnNwZWN0aXZlKEBwZXJzcGVjdGl2ZSkge1xyXG4gIC13ZWJraXQtcGVyc3BlY3RpdmU6IEBwZXJzcGVjdGl2ZTtcclxuICAgICAtbW96LXBlcnNwZWN0aXZlOiBAcGVyc3BlY3RpdmU7XHJcbiAgICAgICAgICBwZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xyXG59XHJcbi5wZXJzcGVjdGl2ZS1vcmlnaW4oQHBlcnNwZWN0aXZlKSB7XHJcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW46IEBwZXJzcGVjdGl2ZTtcclxuICAgICAtbW96LXBlcnNwZWN0aXZlLW9yaWdpbjogQHBlcnNwZWN0aXZlO1xyXG4gICAgICAgICAgcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XHJcbn1cclxuLnRyYW5zZm9ybS1vcmlnaW4oQG9yaWdpbikge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcclxuICAgICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47XHJcbiAgICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luOyAvLyBJRTkgb25seVxyXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcclxufVxyXG5cclxuXHJcbi8vIFRyYW5zaXRpb25zXHJcblxyXG4udHJhbnNpdGlvbihAdHJhbnNpdGlvbikge1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XHJcbiAgICAgICAtby10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcclxuICAgICAgICAgIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xyXG59XHJcbi50cmFuc2l0aW9uLXByb3BlcnR5KEB0cmFuc2l0aW9uLXByb3BlcnR5KSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBAdHJhbnNpdGlvbi1wcm9wZXJ0eTtcclxuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IEB0cmFuc2l0aW9uLXByb3BlcnR5O1xyXG59XHJcbi50cmFuc2l0aW9uLWRlbGF5KEB0cmFuc2l0aW9uLWRlbGF5KSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiBAdHJhbnNpdGlvbi1kZWxheTtcclxuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IEB0cmFuc2l0aW9uLWRlbGF5O1xyXG59XHJcbi50cmFuc2l0aW9uLWR1cmF0aW9uKEB0cmFuc2l0aW9uLWR1cmF0aW9uKSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiBAdHJhbnNpdGlvbi1kdXJhdGlvbjtcclxuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uO1xyXG59XHJcbi50cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbihAdGltaW5nLWZ1bmN0aW9uKSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcclxuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xyXG59XHJcbi50cmFuc2l0aW9uLXRyYW5zZm9ybShAdHJhbnNpdGlvbikge1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gQHRyYW5zaXRpb247XHJcbiAgICAgLW1vei10cmFuc2l0aW9uOiAtbW96LXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcclxuICAgICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcclxuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcclxufVxyXG5cclxuXHJcbi8vIFVzZXIgc2VsZWN0XHJcbi8vIEZvciBzZWxlY3RpbmcgdGV4dCBvbiB0aGUgcGFnZVxyXG5cclxuLnVzZXItc2VsZWN0KEBzZWxlY3QpIHtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xyXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XHJcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogQHNlbGVjdDsgLy8gSUUxMCtcclxuICAgICAgICAgIHVzZXItc2VsZWN0OiBAc2VsZWN0O1xyXG59XHJcbiIsIi8vXHJcbi8vIFNjYWZmb2xkaW5nXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cclxuLy8gUmVzZXQgdGhlIGJveC1zaXppbmdcclxuLy9cclxuLy8gSGVhZHMgdXAhIFRoaXMgcmVzZXQgbWF5IGNhdXNlIGNvbmZsaWN0cyB3aXRoIHNvbWUgdGhpcmQtcGFydHkgd2lkZ2V0cy5cclxuLy8gRm9yIHJlY29tbWVuZGF0aW9ucyBvbiByZXNvbHZpbmcgc3VjaCBjb25mbGljdHMsIHNlZVxyXG4vLyBodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9nZXR0aW5nLXN0YXJ0ZWQvI3RoaXJkLWJveC1zaXppbmdcclxuKiB7XHJcbiAgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7XHJcbn1cclxuKjpiZWZvcmUsXHJcbio6YWZ0ZXIge1xyXG4gIC5ib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xyXG59XHJcblxyXG5cclxuLy8gQm9keSByZXNldFxyXG5cclxuaHRtbCB7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgZm9udC1mYW1pbHk6IEBmb250LWZhbWlseS1iYXNlO1xyXG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xyXG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcclxuICBjb2xvcjogQHRleHQtY29sb3I7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJvZHktYmc7XHJcbn1cclxuXHJcbi8vIFJlc2V0IGZvbnRzIGZvciByZWxldmFudCBlbGVtZW50c1xyXG5pbnB1dCxcclxuYnV0dG9uLFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuICBmb250LWZhbWlseTogaW5oZXJpdDtcclxuICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcblxyXG4vLyBMaW5rc1xyXG5cclxuYSB7XHJcbiAgY29sb3I6IEBsaW5rLWNvbG9yO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgJjpob3ZlcixcclxuICAmOmZvY3VzIHtcclxuICAgIGNvbG9yOiBAbGluay1ob3Zlci1jb2xvcjtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogQGxpbmstaG92ZXItZGVjb3JhdGlvbjtcclxuICB9XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgLnRhYi1mb2N1cygpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIEZpZ3VyZXNcclxuLy9cclxuLy8gV2UgcmVzZXQgdGhpcyBoZXJlIGJlY2F1c2UgcHJldmlvdXNseSBOb3JtYWxpemUgaGFkIG5vIGBmaWd1cmVgIG1hcmdpbnMuIFRoaXNcclxuLy8gZW5zdXJlcyB3ZSBkb24ndCBicmVhayBhbnlvbmUncyB1c2Ugb2YgdGhlIGVsZW1lbnQuXHJcblxyXG5maWd1cmUge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuXHJcbi8vIEltYWdlc1xyXG5cclxuaW1nIHtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG59XHJcblxyXG4vLyBSZXNwb25zaXZlIGltYWdlcyAoZW5zdXJlIGltYWdlcyBkb24ndCBzY2FsZSBiZXlvbmQgdGhlaXIgcGFyZW50cylcclxuLmltZy1yZXNwb25zaXZlIHtcclxuICAuaW1nLXJlc3BvbnNpdmUoKTtcclxufVxyXG5cclxuLy8gUm91bmRlZCBjb3JuZXJzXHJcbi5pbWctcm91bmRlZCB7XHJcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7XHJcbn1cclxuXHJcbi8vIEltYWdlIHRodW1ibmFpbHNcclxuLy9cclxuLy8gSGVhZHMgdXAhIFRoaXMgaXMgbWl4aW4tZWQgaW50byB0aHVtYm5haWxzLmxlc3MgZm9yIGAudGh1bWJuYWlsYC5cclxuLmltZy10aHVtYm5haWwge1xyXG4gIHBhZGRpbmc6IEB0aHVtYm5haWwtcGFkZGluZztcclxuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRodW1ibmFpbC1iZztcclxuICBib3JkZXI6IDFweCBzb2xpZCBAdGh1bWJuYWlsLWJvcmRlcjtcclxuICBib3JkZXItcmFkaXVzOiBAdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM7XHJcbiAgLnRyYW5zaXRpb24oYWxsIC4ycyBlYXNlLWluLW91dCk7XHJcblxyXG4gIC8vIEtlZXAgdGhlbSBhdCBtb3N0IDEwMCUgd2lkZVxyXG4gIC5pbWctcmVzcG9uc2l2ZShpbmxpbmUtYmxvY2spO1xyXG59XHJcblxyXG4vLyBQZXJmZWN0IGNpcmNsZVxyXG4uaW1nLWNpcmNsZSB7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlOyAvLyBzZXQgcmFkaXVzIGluIHBlcmNlbnRzXHJcbn1cclxuXHJcblxyXG4vLyBIb3Jpem9udGFsIHJ1bGVzXHJcblxyXG5ociB7XHJcbiAgbWFyZ2luLXRvcDogICAgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xyXG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcclxuICBib3JkZXI6IDA7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEBoci1ib3JkZXI7XHJcbn1cclxuXHJcblxyXG4vLyBPbmx5IGRpc3BsYXkgY29udGVudCB0byBzY3JlZW4gcmVhZGVyc1xyXG4vL1xyXG4vLyBTZWU6IGh0dHA6Ly9hMTF5cHJvamVjdC5jb20vcG9zdHMvaG93LXRvLWhpZGUtY29udGVudC9cclxuXHJcbi5zci1vbmx5IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDFweDtcclxuICBoZWlnaHQ6IDFweDtcclxuICBtYXJnaW46IC0xcHg7XHJcbiAgcGFkZGluZzogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGNsaXA6IHJlY3QoMCwwLDAsMCk7XHJcbiAgYm9yZGVyOiAwO1xyXG59XHJcblxyXG4vLyBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCAuc3Itb25seSB0byBvbmx5IGRpc3BsYXkgY29udGVudCB3aGVuIGl0J3MgZm9jdXNlZC5cclxuLy8gVXNlZnVsIGZvciBcIlNraXAgdG8gbWFpbiBjb250ZW50XCIgbGlua3M7IHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEzL05PVEUtV0NBRzIwLVRFQ0hTLTIwMTMwOTA1L0cxXHJcbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcclxuXHJcbi5zci1vbmx5LWZvY3VzYWJsZSB7XHJcbiAgJjphY3RpdmUsXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgIGNsaXA6IGF1dG87XHJcbiAgfVxyXG59XHJcbiIsIi8vIFdlYktpdC1zdHlsZSBmb2N1c1xyXG5cclxuLnRhYi1mb2N1cygpIHtcclxuICAvLyBEZWZhdWx0XHJcbiAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XHJcbiAgLy8gV2ViS2l0XHJcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xyXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xyXG59XHJcbiIsIi8vIEltYWdlIE1peGluc1xyXG4vLyAtIFJlc3BvbnNpdmUgaW1hZ2VcclxuLy8gLSBSZXRpbmEgaW1hZ2VcclxuXHJcblxyXG4vLyBSZXNwb25zaXZlIGltYWdlXHJcbi8vXHJcbi8vIEtlZXAgaW1hZ2VzIGZyb20gc2NhbGluZyBiZXlvbmQgdGhlIHdpZHRoIG9mIHRoZWlyIHBhcmVudHMuXHJcbi5pbWctcmVzcG9uc2l2ZShAZGlzcGxheTogYmxvY2spIHtcclxuICBkaXNwbGF5OiBAZGlzcGxheTtcclxuICBtYXgtd2lkdGg6IDEwMCU7IC8vIFBhcnQgMTogU2V0IGEgbWF4aW11bSByZWxhdGl2ZSB0byB0aGUgcGFyZW50XHJcbiAgaGVpZ2h0OiBhdXRvOyAvLyBQYXJ0IDI6IFNjYWxlIHRoZSBoZWlnaHQgYWNjb3JkaW5nIHRvIHRoZSB3aWR0aCwgb3RoZXJ3aXNlIHlvdSBnZXQgc3RyZXRjaGluZ1xyXG59XHJcblxyXG5cclxuLy8gUmV0aW5hIGltYWdlXHJcbi8vXHJcbi8vIFNob3J0IHJldGluYSBtaXhpbiBmb3Igc2V0dGluZyBiYWNrZ3JvdW5kLWltYWdlIGFuZCAtc2l6ZS4gTm90ZSB0aGF0IHRoZVxyXG4vLyBzcGVsbGluZyBvZiBgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvYCBpcyBpbnRlbnRpb25hbC5cclxuLmltZy1yZXRpbmEoQGZpbGUtMXg7IEBmaWxlLTJ4OyBAd2lkdGgtMXg7IEBoZWlnaHQtMXgpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAe2ZpbGUtMXh9XCIpO1xyXG5cclxuICBAbWVkaWFcclxuICBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXHJcbiAgb25seSBzY3JlZW4gYW5kICggICBtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLzEpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICBtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgICAgICAgICBtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgICAgICAgICBtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIkB7ZmlsZS0yeH1cIik7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IEB3aWR0aC0xeCBAaGVpZ2h0LTF4O1xyXG4gIH1cclxufVxyXG4iLCIvLyBHcmlkIHN5c3RlbVxyXG4vL1xyXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXHJcblxyXG4vLyBDZW50ZXJlZCBjb250YWluZXIgZWxlbWVudFxyXG4uY29udGFpbmVyLWZpeGVkKEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xyXG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XHJcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XHJcbn1cclxuXHJcbi8vIENyZWF0ZXMgYSB3cmFwcGVyIGZvciBhIHNlcmllcyBvZiBjb2x1bW5zXHJcbi5tYWtlLXJvdyhAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcclxuICBtYXJnaW4tbGVmdDogIChAZ3V0dGVyIC8gLTIpO1xyXG4gIG1hcmdpbi1yaWdodDogKEBndXR0ZXIgLyAtMik7XHJcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XHJcbn1cclxuXHJcbi8vIEdlbmVyYXRlIHRoZSBleHRyYSBzbWFsbCBjb2x1bW5zXHJcbi5tYWtlLXhzLWNvbHVtbihAY29sdW1uczsgQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxuICBtaW4taGVpZ2h0OiAxcHg7XHJcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcclxuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xyXG59XHJcbi5tYWtlLXhzLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcclxuICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbn1cclxuLm1ha2UteHMtY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcclxuICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxufVxyXG4ubWFrZS14cy1jb2x1bW4tcHVsbChAY29sdW1ucykge1xyXG4gIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxufVxyXG5cclxuLy8gR2VuZXJhdGUgdGhlIHNtYWxsIGNvbHVtbnNcclxuLm1ha2Utc20tY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWluLWhlaWdodDogMXB4O1xyXG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XHJcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxuICB9XHJcbn1cclxuLm1ha2Utc20tY29sdW1uLW9mZnNldChAY29sdW1ucykge1xyXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xyXG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG4ubWFrZS1zbS1jb2x1bW4tcHVzaChAY29sdW1ucykge1xyXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xyXG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcbi5tYWtlLXNtLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XHJcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBHZW5lcmF0ZSB0aGUgbWVkaXVtIGNvbHVtbnNcclxuLm1ha2UtbWQtY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWluLWhlaWdodDogMXB4O1xyXG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XHJcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxuICB9XHJcbn1cclxuLm1ha2UtbWQtY29sdW1uLW9mZnNldChAY29sdW1ucykge1xyXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xyXG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG4ubWFrZS1tZC1jb2x1bW4tcHVzaChAY29sdW1ucykge1xyXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xyXG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcbi5tYWtlLW1kLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XHJcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBHZW5lcmF0ZSB0aGUgbGFyZ2UgY29sdW1uc1xyXG4ubWFrZS1sZy1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtaW4taGVpZ2h0OiAxcHg7XHJcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcclxuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG4ubWFrZS1sZy1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XHJcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcbi5tYWtlLWxnLWNvbHVtbi1wdXNoKEBjb2x1bW5zKSB7XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XHJcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxuICB9XHJcbn1cclxuLm1ha2UtbGctY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcclxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcclxuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxuICB9XHJcbn1cclxuIiwiLy9cclxuLy8gR3JpZCBzeXN0ZW1cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcblxyXG4vLyBDb250YWluZXIgd2lkdGhzXHJcbi8vXHJcbi8vIFNldCB0aGUgY29udGFpbmVyIHdpZHRoLCBhbmQgb3ZlcnJpZGUgaXQgZm9yIGZpeGVkIG5hdmJhcnMgaW4gbWVkaWEgcXVlcmllcy5cclxuXHJcbi5jb250YWluZXIge1xyXG4gIC5jb250YWluZXItZml4ZWQoKTtcclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XHJcbiAgICB3aWR0aDogQGNvbnRhaW5lci1zbTtcclxuICB9XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XHJcbiAgICB3aWR0aDogQGNvbnRhaW5lci1tZDtcclxuICB9XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XHJcbiAgICB3aWR0aDogQGNvbnRhaW5lci1sZztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBGbHVpZCBjb250YWluZXJcclxuLy9cclxuLy8gVXRpbGl6ZXMgdGhlIG1peGluIG1lYW50IGZvciBmaXhlZCB3aWR0aCBjb250YWluZXJzLCBidXQgd2l0aG91dCBhbnkgZGVmaW5lZFxyXG4vLyB3aWR0aCBmb3IgZmx1aWQsIGZ1bGwgd2lkdGggbGF5b3V0cy5cclxuXHJcbi5jb250YWluZXItZmx1aWQge1xyXG4gIC5jb250YWluZXItZml4ZWQoKTtcclxufVxyXG5cclxuXHJcbi8vIFJvd1xyXG4vL1xyXG4vLyBSb3dzIGNvbnRhaW4gYW5kIGNsZWFyIHRoZSBmbG9hdHMgb2YgeW91ciBjb2x1bW5zLlxyXG5cclxuLnJvdyB7XHJcbiAgLm1ha2Utcm93KCk7XHJcbn1cclxuXHJcblxyXG4vLyBDb2x1bW5zXHJcbi8vXHJcbi8vIENvbW1vbiBzdHlsZXMgZm9yIHNtYWxsIGFuZCBsYXJnZSBncmlkIGNvbHVtbnNcclxuXHJcbi5tYWtlLWdyaWQtY29sdW1ucygpO1xyXG5cclxuXHJcbi8vIEV4dHJhIHNtYWxsIGdyaWRcclxuLy9cclxuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIGV4dHJhIHNtYWxsIGRldmljZXMgbGlrZVxyXG4vLyBzbWFydHBob25lcy5cclxuXHJcbi5tYWtlLWdyaWQoeHMpO1xyXG5cclxuXHJcbi8vIFNtYWxsIGdyaWRcclxuLy9cclxuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBzbWFsbCBkZXZpY2UgcmFuZ2UsIGZyb20gcGhvbmVzXHJcbi8vIHRvIHRhYmxldHMuXHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcclxuICAubWFrZS1ncmlkKHNtKTtcclxufVxyXG5cclxuXHJcbi8vIE1lZGl1bSBncmlkXHJcbi8vXHJcbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgZGVza3RvcCBkZXZpY2UgcmFuZ2UuXHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcclxuICAubWFrZS1ncmlkKG1kKTtcclxufVxyXG5cclxuXHJcbi8vIExhcmdlIGdyaWRcclxuLy9cclxuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBsYXJnZSBkZXNrdG9wIGRldmljZSByYW5nZS5cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xyXG4gIC5tYWtlLWdyaWQobGcpO1xyXG59XHJcbiIsIi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cclxuLy9cclxuLy8gVXNlZCBvbmx5IGJ5IEJvb3RzdHJhcCB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgZ3JpZCBjbGFzc2VzIGdpdmVuXHJcbi8vIGFueSB2YWx1ZSBvZiBgQGdyaWQtY29sdW1uc2AuXHJcblxyXG4ubWFrZS1ncmlkLWNvbHVtbnMoKSB7XHJcbiAgLy8gQ29tbW9uIHN0eWxlcyBmb3IgYWxsIHNpemVzIG9mIGdyaWQgY29sdW1ucywgd2lkdGhzIDEtMTJcclxuICAuY29sKEBpbmRleCkgeyAvLyBpbml0aWFsXHJcbiAgICBAaXRlbTogflwiLmNvbC14cy1Ae2luZGV4fSwgLmNvbC1zbS1Ae2luZGV4fSwgLmNvbC1tZC1Ae2luZGV4fSwgLmNvbC1sZy1Ae2luZGV4fVwiO1xyXG4gICAgLmNvbCgoQGluZGV4ICsgMSksIEBpdGVtKTtcclxuICB9XHJcbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPTwgQGdyaWQtY29sdW1ucykgeyAvLyBnZW5lcmFsOyBcIj08XCIgaXNuJ3QgYSB0eXBvXHJcbiAgICBAaXRlbTogflwiLmNvbC14cy1Ae2luZGV4fSwgLmNvbC1zbS1Ae2luZGV4fSwgLmNvbC1tZC1Ae2luZGV4fSwgLmNvbC1sZy1Ae2luZGV4fVwiO1xyXG4gICAgLmNvbCgoQGluZGV4ICsgMSksIH5cIkB7bGlzdH0sIEB7aXRlbX1cIik7XHJcbiAgfVxyXG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID4gQGdyaWQtY29sdW1ucykgeyAvLyB0ZXJtaW5hbFxyXG4gICAgQHtsaXN0fSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgLy8gUHJldmVudCBjb2x1bW5zIGZyb20gY29sbGFwc2luZyB3aGVuIGVtcHR5XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDFweDtcclxuICAgICAgLy8gSW5uZXIgZ3V0dGVyIHZpYSBwYWRkaW5nXHJcbiAgICAgIHBhZGRpbmctbGVmdDogIChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcclxuICAgICAgcGFkZGluZy1yaWdodDogKEBncmlkLWd1dHRlci13aWR0aCAvIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuICAuY29sKDEpOyAvLyBraWNrc3RhcnQgaXRcclxufVxyXG5cclxuLmZsb2F0LWdyaWQtY29sdW1ucyhAY2xhc3MpIHtcclxuICAuY29sKEBpbmRleCkgeyAvLyBpbml0aWFsXHJcbiAgICBAaXRlbTogflwiLmNvbC1Ae2NsYXNzfS1Ae2luZGV4fVwiO1xyXG4gICAgLmNvbCgoQGluZGV4ICsgMSksIEBpdGVtKTtcclxuICB9XHJcbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPTwgQGdyaWQtY29sdW1ucykgeyAvLyBnZW5lcmFsXHJcbiAgICBAaXRlbTogflwiLmNvbC1Ae2NsYXNzfS1Ae2luZGV4fVwiO1xyXG4gICAgLmNvbCgoQGluZGV4ICsgMSksIH5cIkB7bGlzdH0sIEB7aXRlbX1cIik7XHJcbiAgfVxyXG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID4gQGdyaWQtY29sdW1ucykgeyAvLyB0ZXJtaW5hbFxyXG4gICAgQHtsaXN0fSB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxuICAuY29sKDEpOyAvLyBraWNrc3RhcnQgaXRcclxufVxyXG5cclxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHdpZHRoKSBhbmQgKEBpbmRleCA+IDApIHtcclxuICAuY29sLUB7Y2xhc3N9LUB7aW5kZXh9IHtcclxuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAaW5kZXggLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBwdXNoKSBhbmQgKEBpbmRleCA+IDApIHtcclxuICAuY29sLUB7Y2xhc3N9LXB1c2gtQHtpbmRleH0ge1xyXG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVzaCkgYW5kIChAaW5kZXggPSAwKSB7XHJcbiAgLmNvbC1Ae2NsYXNzfS1wdXNoLTAge1xyXG4gICAgbGVmdDogYXV0bztcclxuICB9XHJcbn1cclxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHB1bGwpIGFuZCAoQGluZGV4ID4gMCkge1xyXG4gIC5jb2wtQHtjbGFzc30tcHVsbC1Ae2luZGV4fSB7XHJcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVsbCkgYW5kIChAaW5kZXggPSAwKSB7XHJcbiAgLmNvbC1Ae2NsYXNzfS1wdWxsLTAge1xyXG4gICAgcmlnaHQ6IGF1dG87XHJcbiAgfVxyXG59XHJcbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBvZmZzZXQpIHtcclxuICAuY29sLUB7Y2xhc3N9LW9mZnNldC1Ae2luZGV4fSB7XHJcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gQmFzaWMgbG9vcGluZyBpbiBMRVNTXHJcbi5sb29wLWdyaWQtY29sdW1ucyhAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEBpbmRleCA+PSAwKSB7XHJcbiAgLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKTtcclxuICAvLyBuZXh0IGl0ZXJhdGlvblxyXG4gIC5sb29wLWdyaWQtY29sdW1ucygoQGluZGV4IC0gMSksIEBjbGFzcywgQHR5cGUpO1xyXG59XHJcblxyXG4vLyBDcmVhdGUgZ3JpZCBmb3Igc3BlY2lmaWMgY2xhc3NcclxuLm1ha2UtZ3JpZChAY2xhc3MpIHtcclxuICAuZmxvYXQtZ3JpZC1jb2x1bW5zKEBjbGFzcyk7XHJcbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKEBncmlkLWNvbHVtbnMsIEBjbGFzcywgd2lkdGgpO1xyXG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIHB1bGwpO1xyXG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIHB1c2gpO1xyXG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIG9mZnNldCk7XHJcbn1cclxuIiwiLy8gQ2xlYXJmaXhcclxuLy9cclxuLy8gRm9yIG1vZGVybiBicm93c2Vyc1xyXG4vLyAxLiBUaGUgc3BhY2UgY29udGVudCBpcyBvbmUgd2F5IHRvIGF2b2lkIGFuIE9wZXJhIGJ1ZyB3aGVuIHRoZVxyXG4vLyAgICBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxyXG4vLyAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcclxuLy8gICAgdGhhdCBhcmUgY2xlYXJmaXhlZC5cclxuLy8gMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcclxuLy8gICAgYDpiZWZvcmVgIHRvIGNvbnRhaW4gdGhlIHRvcC1tYXJnaW5zIG9mIGNoaWxkIGVsZW1lbnRzLlxyXG4vL1xyXG4vLyBTb3VyY2U6IGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xyXG5cclxuLmNsZWFyZml4KCkge1xyXG4gICY6YmVmb3JlLFxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCIgXCI7IC8vIDFcclxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAyXHJcbiAgfVxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgfVxyXG59XHJcbiIsIi8vXHJcbi8vIFV0aWxpdHkgY2xhc3Nlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHJcbi8vIEZsb2F0c1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4uY2xlYXJmaXgge1xyXG4gIC5jbGVhcmZpeCgpO1xyXG59XHJcbi5jZW50ZXItYmxvY2sge1xyXG4gIC5jZW50ZXItYmxvY2soKTtcclxufVxyXG4ucHVsbC1yaWdodCB7XHJcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XHJcbn1cclxuLnB1bGwtbGVmdCB7XHJcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbi8vIFRvZ2dsaW5nIGNvbnRlbnRcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gTm90ZTogRGVwcmVjYXRlZCAuaGlkZSBpbiBmYXZvciBvZiAuaGlkZGVuIG9yIC5zci1vbmx5IChhcyBhcHByb3ByaWF0ZSkgaW4gdjMuMC4xXHJcbi5oaWRlIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuLnNob3cge1xyXG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbn1cclxuLmludmlzaWJsZSB7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcbi50ZXh0LWhpZGUge1xyXG4gIC50ZXh0LWhpZGUoKTtcclxufVxyXG5cclxuXHJcbi8vIEhpZGUgZnJvbSBzY3JlZW5yZWFkZXJzIGFuZCBicm93c2Vyc1xyXG4vL1xyXG4vLyBDcmVkaXQ6IEhUTUw1IEJvaWxlcnBsYXRlXHJcblxyXG4uaGlkZGVuIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4vLyBGb3IgQWZmaXggcGx1Z2luXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi5hZmZpeCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG59XHJcbiIsIi8vIENlbnRlci1hbGlnbiBhIGJsb2NrIGxldmVsIGVsZW1lbnRcclxuXHJcbi5jZW50ZXItYmxvY2soKSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG59XHJcbiIsIi8vIENTUyBpbWFnZSByZXBsYWNlbWVudFxyXG4vL1xyXG4vLyBIZWFkcyB1cCEgdjMgbGF1bmNoZWQgd2l0aCB3aXRoIG9ubHkgYC5oaWRlLXRleHQoKWAsIGJ1dCBwZXIgb3VyIHBhdHRlcm4gZm9yXHJcbi8vIG1peGlucyBiZWluZyByZXVzZWQgYXMgY2xhc3NlcyB3aXRoIHRoZSBzYW1lIG5hbWUsIHRoaXMgZG9lc24ndCBob2xkIHVwLiBBc1xyXG4vLyBvZiB2My4wLjEgd2UgaGF2ZSBhZGRlZCBgLnRleHQtaGlkZSgpYCBhbmQgZGVwcmVjYXRlZCBgLmhpZGUtdGV4dCgpYC5cclxuLy9cclxuLy8gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9jb21taXQvYWEwMzk2ZWFlNzU3XHJcblxyXG4vLyBEZXByZWNhdGVkIGFzIG9mIHYzLjAuMSAod2lsbCBiZSByZW1vdmVkIGluIHY0KVxyXG4uaGlkZS10ZXh0KCkge1xyXG4gIGZvbnQ6IH5cIjAvMFwiIGE7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIHRleHQtc2hhZG93OiBub25lO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMDtcclxufVxyXG5cclxuLy8gTmV3IG1peGluIHRvIHVzZSBhcyBvZiB2My4wLjFcclxuLnRleHQtaGlkZSgpIHtcclxuICAuaGlkZS10ZXh0KCk7XHJcbn1cclxuIiwiLyogRk9OVCBQQVRIXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcclxuICBzcmM6IHVybCgnQHtmYS1mb250LXBhdGh9L2ZvbnRhd2Vzb21lLXdlYmZvbnQuZW90P3Y9QHtmYS12ZXJzaW9ufScpO1xyXG4gIHNyYzogdXJsKCdAe2ZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/I2llZml4JnY9QHtmYS12ZXJzaW9ufScpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICAgIHVybCgnQHtmYS1mb250LXBhdGh9L2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZjI/dj1Ae2ZhLXZlcnNpb259JykgZm9ybWF0KCd3b2ZmMicpLFxyXG4gICAgdXJsKCdAe2ZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9QHtmYS12ZXJzaW9ufScpIGZvcm1hdCgnd29mZicpLFxyXG4gICAgdXJsKCdAe2ZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC50dGY/dj1Ae2ZhLXZlcnNpb259JykgZm9ybWF0KCd0cnVldHlwZScpLFxyXG4gICAgdXJsKCdAe2ZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC5zdmc/dj1Ae2ZhLXZlcnNpb259I2ZvbnRhd2Vzb21lcmVndWxhcicpIGZvcm1hdCgnc3ZnJyk7XHJcbi8vICBzcmM6IHVybCgnQHtmYS1mb250LXBhdGh9L0ZvbnRBd2Vzb21lLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgLy8gdXNlZCB3aGVuIGRldmVsb3BpbmcgZm9udHNcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG4iLCIvLyBCYXNlIENsYXNzIERlZmluaXRpb25cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLkB7ZmEtY3NzLXByZWZpeH0ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCBAZmEtZm9udC1zaXplLWJhc2UvMSBGb250QXdlc29tZTsgLy8gc2hvcnRlbmluZyBmb250IGRlY2xhcmF0aW9uXHJcbiAgZm9udC1zaXplOiBpbmhlcml0OyAvLyBjYW4ndCBoYXZlIGZvbnQtc2l6ZSBpbmhlcml0IG9uIGxpbmUgYWJvdmUsIHNvIG5lZWQgdG8gb3ZlcnJpZGVcclxuICB0ZXh0LXJlbmRlcmluZzogYXV0bzsgLy8gb3B0aW1pemVsZWdpYmlsaXR5IHRocm93cyB0aGluZ3Mgb2ZmICMxMDk0XHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgLy8gZW5zdXJlcyBubyBoYWxmLXBpeGVsIHJlbmRlcmluZyBpbiBmaXJlZm94XHJcblxyXG59XHJcbiIsIi8vIEljb24gU2l6ZXNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLyogbWFrZXMgdGhlIGZvbnQgMzMlIGxhcmdlciByZWxhdGl2ZSB0byB0aGUgaWNvbiBjb250YWluZXIgKi9cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGcge1xyXG4gIGZvbnQtc2l6ZTogKDRlbSAvIDMpO1xyXG4gIGxpbmUtaGVpZ2h0OiAoM2VtIC8gNCk7XHJcbiAgdmVydGljYWwtYWxpZ246IC0xNSU7XHJcbn1cclxuLkB7ZmEtY3NzLXByZWZpeH0tMnggeyBmb250LXNpemU6IDJlbTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS0zeCB7IGZvbnQtc2l6ZTogM2VtOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LTR4IHsgZm9udC1zaXplOiA0ZW07IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tNXggeyBmb250LXNpemU6IDVlbTsgfVxyXG4iLCIvLyBGaXhlZCBXaWR0aCBJY29uc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZ3IHtcclxuICB3aWR0aDogKDE4ZW0gLyAxNCk7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbiIsIi8vIExpc3QgSWNvbnNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLkB7ZmEtY3NzLXByZWZpeH0tdWwge1xyXG4gIHBhZGRpbmctbGVmdDogMDtcclxuICBtYXJnaW4tbGVmdDogQGZhLWxpLXdpZHRoO1xyXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICA+IGxpIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XHJcbn1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGkge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAtQGZhLWxpLXdpZHRoO1xyXG4gIHdpZHRoOiBAZmEtbGktd2lkdGg7XHJcbiAgdG9wOiAoMmVtIC8gMTQpO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAmLkB7ZmEtY3NzLXByZWZpeH0tbGcge1xyXG4gICAgbGVmdDogKC1AZmEtbGktd2lkdGggKyAoNGVtIC8gMTQpKTtcclxuICB9XHJcbn1cclxuIiwiLy8gQm9yZGVyZWQgJiBQdWxsZWRcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLkB7ZmEtY3NzLXByZWZpeH0tYm9yZGVyIHtcclxuICBwYWRkaW5nOiAuMmVtIC4yNWVtIC4xNWVtO1xyXG4gIGJvcmRlcjogc29saWQgLjA4ZW0gQGZhLWJvcmRlci1jb2xvcjtcclxuICBib3JkZXItcmFkaXVzOiAuMWVtO1xyXG59XHJcblxyXG4ucHVsbC1yaWdodCB7IGZsb2F0OiByaWdodDsgfVxyXG4ucHVsbC1sZWZ0IHsgZmxvYXQ6IGxlZnQ7IH1cclxuXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9IHtcclxuICAmLnB1bGwtbGVmdCB7IG1hcmdpbi1yaWdodDogLjNlbTsgfVxyXG4gICYucHVsbC1yaWdodCB7IG1hcmdpbi1sZWZ0OiAuM2VtOyB9XHJcbn1cclxuIiwiLy8gQW5pbWF0ZWQgSWNvbnNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNwaW4ge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjtcclxuICAgICAgICAgIGFuaW1hdGlvbjogZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XHJcbn1cclxuXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXB1bHNlIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZhLXNwaW4ge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZmEtc3BpbiB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gIH1cclxufVxyXG4iLCIvLyBSb3RhdGVkICYgRmxpcHBlZCBJY29uc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb3RhdGUtOTAgIHsgLmZhLWljb24tcm90YXRlKDkwZGVnLCAxKTsgIH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcm90YXRlLTE4MCB7IC5mYS1pY29uLXJvdGF0ZSgxODBkZWcsIDIpOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJvdGF0ZS0yNzAgeyAuZmEtaWNvbi1yb3RhdGUoMjcwZGVnLCAzKTsgfVxyXG5cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmxpcC1ob3Jpem9udGFsIHsgLmZhLWljb24tZmxpcCgtMSwgMSwgMCk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmxpcC12ZXJ0aWNhbCAgIHsgLmZhLWljb24tZmxpcCgxLCAtMSwgMik7IH1cclxuXHJcbi8vIEhvb2sgZm9yIElFOC05XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbjpyb290IC5Ae2ZhLWNzcy1wcmVmaXh9LXJvdGF0ZS05MCxcclxuOnJvb3QgLkB7ZmEtY3NzLXByZWZpeH0tcm90YXRlLTE4MCxcclxuOnJvb3QgLkB7ZmEtY3NzLXByZWZpeH0tcm90YXRlLTI3MCxcclxuOnJvb3QgLkB7ZmEtY3NzLXByZWZpeH0tZmxpcC1ob3Jpem9udGFsLFxyXG46cm9vdCAuQHtmYS1jc3MtcHJlZml4fS1mbGlwLXZlcnRpY2FsIHtcclxuICBmaWx0ZXI6IG5vbmU7XHJcbn1cclxuIiwiLy8gTWl4aW5zXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4uZmEtaWNvbigpIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgQGZhLWZvbnQtc2l6ZS1iYXNlLzEgRm9udEF3ZXNvbWU7IC8vIHNob3J0ZW5pbmcgZm9udCBkZWNsYXJhdGlvblxyXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgLy8gY2FuJ3QgaGF2ZSBmb250LXNpemUgaW5oZXJpdCBvbiBsaW5lIGFib3ZlLCBzbyBuZWVkIHRvIG92ZXJyaWRlXHJcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87IC8vIG9wdGltaXplbGVnaWJpbGl0eSB0aHJvd3MgdGhpbmdzIG9mZiAjMTA5NFxyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IC8vIGVuc3VyZXMgbm8gaGFsZi1waXhlbCByZW5kZXJpbmcgaW4gZmlyZWZveFxyXG5cclxufVxyXG5cclxuLmZhLWljb24tcm90YXRlKEBkZWdyZWVzLCBAcm90YXRpb24pIHtcclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPUByb3RhdGlvbik7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbn1cclxuXHJcbi5mYS1pY29uLWZsaXAoQGhvcml6LCBAdmVydCwgQHJvdGF0aW9uKSB7XHJcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj1Acm90YXRpb24sIG1pcnJvcj0xKTtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQGhvcml6LCBAdmVydCk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKEBob3JpeiwgQHZlcnQpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZShAaG9yaXosIEB2ZXJ0KTtcclxufVxyXG4iLCIvLyBTdGFja2VkIEljb25zXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YWNrIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAyZW07XHJcbiAgaGVpZ2h0OiAyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDJlbTtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG59XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YWNrLTF4LCAuQHtmYS1jc3MtcHJlZml4fS1zdGFjay0yeCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YWNrLTF4IHsgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3RhY2stMnggeyBmb250LXNpemU6IDJlbTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1pbnZlcnNlIHsgY29sb3I6IEBmYS1pbnZlcnNlOyB9XHJcbiIsIi8qIEZvbnQgQXdlc29tZSB1c2VzIHRoZSBVbmljb2RlIFByaXZhdGUgVXNlIEFyZWEgKFBVQSkgdG8gZW5zdXJlIHNjcmVlblxyXG4gICByZWFkZXJzIGRvIG5vdCByZWFkIG9mZiByYW5kb20gY2hhcmFjdGVycyB0aGF0IHJlcHJlc2VudCBpY29ucyAqL1xyXG5cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2xhc3M6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1nbGFzczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tdXNpYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW11c2ljOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNlYXJjaDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNlYXJjaDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1lbnZlbG9wZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZW52ZWxvcGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oZWFydDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWhlYXJ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdGFyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YXItbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXN0YXItbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11c2VyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdXNlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxtOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmlsbTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10aC1sYXJnZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRoLWxhcmdlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRoOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGg7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGgtbGlzdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRoLWxpc3Q7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hlY2s6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaGVjazsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZW1vdmU6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1jbG9zZTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRpbWVzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGltZXM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2VhcmNoLXBsdXM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zZWFyY2gtcGx1czsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zZWFyY2gtbWludXM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zZWFyY2gtbWludXM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcG93ZXItb2ZmOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcG93ZXItb2ZmOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNpZ25hbDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNpZ25hbDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1nZWFyOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tY29nOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY29nOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRyYXNoLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10cmFzaC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWhvbWU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ob21lOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jbG9jay1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2xvY2stbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb2FkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcm9hZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1kb3dubG9hZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWRvd25sb2FkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFycm93LWNpcmNsZS1vLWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcnJvdy1jaXJjbGUtby1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFycm93LWNpcmNsZS1vLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3ctY2lyY2xlLW8tdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taW5ib3g6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1pbmJveDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1wbGF5LWNpcmNsZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGxheS1jaXJjbGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb3RhdGUtcmlnaHQ6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZXBlYXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZXBlYXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcmVmcmVzaDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXJlZnJlc2g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGlzdC1hbHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1saXN0LWFsdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbG9jazsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mbGFnOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmxhZzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oZWFkcGhvbmVzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItaGVhZHBob25lczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS12b2x1bWUtb2ZmOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdm9sdW1lLW9mZjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS12b2x1bWUtZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZvbHVtZS1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXZvbHVtZS11cDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZvbHVtZS11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1xcmNvZGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1xcmNvZGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYmFyY29kZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJhcmNvZGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGFnOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGFnOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRhZ3M6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10YWdzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJvb2s6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ib29rOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJvb2ttYXJrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYm9va21hcms7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcHJpbnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wcmludDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYW1lcmE6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYW1lcmE7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZm9udDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZvbnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYm9sZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJvbGQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taXRhbGljOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItaXRhbGljOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRleHQtaGVpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGV4dC1oZWlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGV4dC13aWR0aDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRleHQtd2lkdGg7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYWxpZ24tbGVmdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFsaWduLWxlZnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYWxpZ24tY2VudGVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYWxpZ24tY2VudGVyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFsaWduLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYWxpZ24tcmlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYWxpZ24tanVzdGlmeTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFsaWduLWp1c3RpZnk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGlzdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxpc3Q7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGVkZW50OmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tb3V0ZGVudDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW91dGRlbnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taW5kZW50OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItaW5kZW50OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXZpZGVvLWNhbWVyYTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZpZGVvLWNhbWVyYTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1waG90bzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWltYWdlOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tcGljdHVyZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGljdHVyZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBlbmNpbDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXBlbmNpbDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tYXAtbWFya2VyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWFwLW1hcmtlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hZGp1c3Q6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hZGp1c3Q7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGludDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRpbnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZWRpdDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBlbmNpbC1zcXVhcmUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXBlbmNpbC1zcXVhcmUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaGFyZS1zcXVhcmUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNoYXJlLXNxdWFyZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoZWNrLXNxdWFyZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hlY2stc3F1YXJlLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3dzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3dzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0ZXAtYmFja3dhcmQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdGVwLWJhY2t3YXJkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZhc3QtYmFja3dhcmQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1mYXN0LWJhY2t3YXJkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJhY2t3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmFja3dhcmQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGxheTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXBsYXk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGF1c2U6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wYXVzZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdG9wOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RvcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mb3J3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZm9yd2FyZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mYXN0LWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1mYXN0LWZvcndhcmQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3RlcC1mb3J3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RlcC1mb3J3YXJkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWVqZWN0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZWplY3Q7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hldnJvbi1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hldnJvbi1sZWZ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoZXZyb24tcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaGV2cm9uLXJpZ2h0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBsdXMtY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGx1cy1jaXJjbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWludXMtY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWludXMtY2lyY2xlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRpbWVzLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRpbWVzLWNpcmNsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jaGVjay1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaGVjay1jaXJjbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcXVlc3Rpb24tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcXVlc3Rpb24tY2lyY2xlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWluZm8tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItaW5mby1jaXJjbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY3Jvc3NoYWlyczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNyb3NzaGFpcnM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGltZXMtY2lyY2xlLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10aW1lcy1jaXJjbGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jaGVjay1jaXJjbGUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNoZWNrLWNpcmNsZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJhbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJhbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3ctbGVmdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFycm93LXJpZ2h0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFycm93LXVwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3ctdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3ctZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFycm93LWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWFpbC1mb3J3YXJkOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tc2hhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaGFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1leHBhbmQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1leHBhbmQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29tcHJlc3M6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jb21wcmVzczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGx1czsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1taW51czpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1pbnVzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFzdGVyaXNrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXN0ZXJpc2s7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZXhjbGFtYXRpb24tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXhjbGFtYXRpb24tY2lyY2xlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdpZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1naWZ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxlYWY6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1sZWFmOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV5ZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWV5ZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1leWUtc2xhc2g6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1leWUtc2xhc2g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0td2FybmluZzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXhjbGFtYXRpb24tdHJpYW5nbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGxhbmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wbGFuZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYWxlbmRhcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhbGVuZGFyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJhbmRvbTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXJhbmRvbTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jb21tZW50OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY29tbWVudDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tYWduZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tYWduZXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hldnJvbi11cDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNoZXZyb24tdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hldnJvbi1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hldnJvbi1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJldHdlZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZXR3ZWV0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNob3BwaW5nLWNhcnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaG9wcGluZy1jYXJ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZvbGRlcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZvbGRlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mb2xkZXItb3BlbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZvbGRlci1vcGVuOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFycm93cy12OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3dzLXY7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3dzLWg6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcnJvd3MtaDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iYXItY2hhcnQtbzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJhci1jaGFydDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJhci1jaGFydDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10d2l0dGVyLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXR3aXR0ZXItc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZhY2Vib29rLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZhY2Vib29rLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYW1lcmEtcmV0cm86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYW1lcmEtcmV0cm87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0ta2V5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXIta2V5OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdlYXJzOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tY29nczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNvZ3M7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29tbWVudHM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jb21tZW50czsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10aHVtYnMtby11cDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRodW1icy1vLXVwOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRodW1icy1vLWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10aHVtYnMtby1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YXItaGFsZjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXN0YXItaGFsZjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oZWFydC1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItaGVhcnQtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaWduLW91dDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNpZ24tb3V0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpbmtlZGluLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxpbmtlZGluLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10aHVtYi10YWNrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGh1bWItdGFjazsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1leHRlcm5hbC1saW5rOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXh0ZXJuYWwtbGluazsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaWduLWluOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2lnbi1pbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10cm9waHk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10cm9waHk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2l0aHViLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdpdGh1Yi1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdXBsb2FkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdXBsb2FkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxlbW9uLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1sZW1vbi1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBob25lOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGhvbmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3F1YXJlLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zcXVhcmUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1ib29rbWFyay1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYm9va21hcmstbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1waG9uZS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1waG9uZS1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHdpdHRlcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXR3aXR0ZXI7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmFjZWJvb2stZjpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZhY2Vib29rOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmFjZWJvb2s7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2l0aHViOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZ2l0aHViOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXVubG9jazpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVubG9jazsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jcmVkaXQtY2FyZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNyZWRpdC1jYXJkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJzczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXJzczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oZGQtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWhkZC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJ1bGxob3JuOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYnVsbGhvcm47IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYmVsbDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJlbGw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2VydGlmaWNhdGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jZXJ0aWZpY2F0ZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oYW5kLW8tcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1oYW5kLW8tcmlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taGFuZC1vLWxlZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1oYW5kLW8tbGVmdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oYW5kLW8tdXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1oYW5kLW8tdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taGFuZC1vLWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1oYW5kLW8tZG93bjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFycm93LWNpcmNsZS1sZWZ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFycm93LWNpcmNsZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFycm93LWNpcmNsZS1yaWdodDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hcnJvdy1jaXJjbGUtdXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcnJvdy1jaXJjbGUtdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3ctY2lyY2xlLWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcnJvdy1jaXJjbGUtZG93bjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1nbG9iZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdsb2JlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXdyZW5jaDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXdyZW5jaDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10YXNrczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRhc2tzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbHRlcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbHRlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1icmllZmNhc2U6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1icmllZmNhc2U7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3dzLWFsdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFycm93cy1hbHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ3JvdXA6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS11c2VyczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVzZXJzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoYWluOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tbGluazpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxpbms7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2xvdWQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jbG91ZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mbGFzazpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZsYXNrOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWN1dDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNjaXNzb3JzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2Npc3NvcnM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29weTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGVzLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maWxlcy1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBhcGVyY2xpcDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXBhcGVyY2xpcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zYXZlOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tZmxvcHB5LW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1mbG9wcHktbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbmF2aWNvbjpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJlb3JkZXI6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1iYXJzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmFyczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1saXN0LXVsOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGlzdC11bDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1saXN0LW9sOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGlzdC1vbDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdHJpa2V0aHJvdWdoOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RyaWtldGhyb3VnaDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11bmRlcmxpbmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci11bmRlcmxpbmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGFibGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10YWJsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tYWdpYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1hZ2ljOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRydWNrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdHJ1Y2s7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGludGVyZXN0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGludGVyZXN0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBpbnRlcmVzdC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1waW50ZXJlc3Qtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdvb2dsZS1wbHVzLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdvb2dsZS1wbHVzLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1nb29nbGUtcGx1czpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdvb2dsZS1wbHVzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1vbmV5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbW9uZXk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FyZXQtZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhcmV0LWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FyZXQtdXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYXJldC11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYXJldC1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2FyZXQtbGVmdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYXJldC1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhcmV0LXJpZ2h0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNvbHVtbnM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jb2x1bW5zOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXVuc29ydGVkOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tc29ydDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNvcnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc29ydC1kb3duOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tc29ydC1kZXNjOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc29ydC1kZXNjOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNvcnQtdXA6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1zb3J0LWFzYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNvcnQtYXNjOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWVudmVsb3BlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZW52ZWxvcGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGlua2VkaW46YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1saW5rZWRpbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb3RhdGUtbGVmdDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXVuZG86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci11bmRvOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxlZ2FsOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2F2ZWw6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1nYXZlbDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1kYXNoYm9hcmQ6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS10YWNob21ldGVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGFjaG9tZXRlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jb21tZW50LW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jb21tZW50LW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29tbWVudHMtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNvbW1lbnRzLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmxhc2g6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1ib2x0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYm9sdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaXRlbWFwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2l0ZW1hcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11bWJyZWxsYTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVtYnJlbGxhOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBhc3RlOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tY2xpcGJvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2xpcGJvYXJkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpZ2h0YnVsYi1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGlnaHRidWxiLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZXhjaGFuZ2U6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1leGNoYW5nZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jbG91ZC1kb3dubG9hZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNsb3VkLWRvd25sb2FkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNsb3VkLXVwbG9hZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNsb3VkLXVwbG9hZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11c2VyLW1kOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdXNlci1tZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdGV0aG9zY29wZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXN0ZXRob3Njb3BlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN1aXRjYXNlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3VpdGNhc2U7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYmVsbC1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmVsbC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNvZmZlZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNvZmZlZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jdXRsZXJ5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY3V0bGVyeTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLXRleHQtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtdGV4dC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJ1aWxkaW5nLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1idWlsZGluZy1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWhvc3BpdGFsLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ob3NwaXRhbC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFtYnVsYW5jZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFtYnVsYW5jZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tZWRraXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tZWRraXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlnaHRlci1qZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maWdodGVyLWpldDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iZWVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmVlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWgtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBsdXMtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGx1cy1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hbmdsZS1kb3VibGUtbGVmdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hbmdsZS1kb3VibGUtcmlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYW5nbGUtZG91YmxlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYW5nbGUtZG91YmxlLXVwOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYW5nbGUtZG91YmxlLWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYW5nbGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFuZ2xlLWxlZnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYW5nbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hbmdsZS1yaWdodDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hbmdsZS11cDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFuZ2xlLXVwOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFuZ2xlLWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hbmdsZS1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWRlc2t0b3A6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1kZXNrdG9wOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxhcHRvcDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxhcHRvcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10YWJsZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10YWJsZXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbW9iaWxlLXBob25lOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tbW9iaWxlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbW9iaWxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNpcmNsZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2lyY2xlLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcXVvdGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXF1b3RlLWxlZnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcXVvdGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1xdW90ZS1yaWdodDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zcGlubmVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3Bpbm5lcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaXJjbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWFpbC1yZXBseTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJlcGx5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcmVwbHk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2l0aHViLWFsdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdpdGh1Yi1hbHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZm9sZGVyLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1mb2xkZXItbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mb2xkZXItb3Blbi1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZm9sZGVyLW9wZW4tbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zbWlsZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc21pbGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mcm93bi1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZnJvd24tbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tZWgtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1laC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdhbWVwYWQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1nYW1lcGFkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWtleWJvYXJkLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1rZXlib2FyZC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZsYWctbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZsYWctbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mbGFnLWNoZWNrZXJlZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZsYWctY2hlY2tlcmVkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRlcm1pbmFsOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGVybWluYWw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29kZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNvZGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWFpbC1yZXBseS1hbGw6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZXBseS1hbGw6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZXBseS1hbGw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3Rhci1oYWxmLWVtcHR5OmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tc3Rhci1oYWxmLWZ1bGw6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdGFyLWhhbGYtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXN0YXItaGFsZi1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxvY2F0aW9uLWFycm93OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbG9jYXRpb24tYXJyb3c7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY3JvcDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNyb3A7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29kZS1mb3JrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY29kZS1mb3JrOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXVubGluazpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoYWluLWJyb2tlbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNoYWluLWJyb2tlbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1xdWVzdGlvbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXF1ZXN0aW9uOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWluZm86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1pbmZvOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV4Y2xhbWF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXhjbGFtYXRpb247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3VwZXJzY3JpcHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdXBlcnNjcmlwdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdWJzY3JpcHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdWJzY3JpcHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZXJhc2VyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXJhc2VyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXB1enpsZS1waWVjZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXB1enpsZS1waWVjZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1taWNyb3Bob25lOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWljcm9waG9uZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWljcm9waG9uZS1zbGFzaDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaGllbGQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaGllbGQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FsZW5kYXItbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhbGVuZGFyLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlyZS1leHRpbmd1aXNoZXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maXJlLWV4dGluZ3Vpc2hlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb2NrZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yb2NrZXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWF4Y2RuOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWF4Y2RuOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaGV2cm9uLWNpcmNsZS1sZWZ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hldnJvbi1jaXJjbGUtcmlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hldnJvbi1jaXJjbGUtdXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaGV2cm9uLWNpcmNsZS11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hldnJvbi1jaXJjbGUtZG93bjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1odG1sNTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWh0bWw1OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNzczM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jc3MzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFuY2hvcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFuY2hvcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11bmxvY2stYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdW5sb2NrLWFsdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1idWxsc2V5ZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJ1bGxzZXllOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWVsbGlwc2lzLWg6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1lbGxpcHNpcy1oOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWVsbGlwc2lzLXY6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1lbGxpcHNpcy12OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJzcy1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yc3Mtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBsYXktY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGxheS1jaXJjbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGlja2V0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGlja2V0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1pbnVzLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1pbnVzLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1taW51cy1zcXVhcmUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1pbnVzLXNxdWFyZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxldmVsLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGV2ZWwtdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGV2ZWwtZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxldmVsLWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hlY2stc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hlY2stc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBlbmNpbC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wZW5jaWwtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV4dGVybmFsLWxpbmstc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXh0ZXJuYWwtbGluay1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2hhcmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2hhcmUtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNvbXBhc3M6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jb21wYXNzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRvZ2dsZS1kb3duOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FyZXQtc3F1YXJlLW8tZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhcmV0LXNxdWFyZS1vLWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdG9nZ2xlLXVwOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FyZXQtc3F1YXJlLW8tdXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYXJldC1zcXVhcmUtby11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10b2dnbGUtcmlnaHQ6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYXJldC1zcXVhcmUtby1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhcmV0LXNxdWFyZS1vLXJpZ2h0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV1cm86YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1ldXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ldXI7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2JwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZ2JwOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWRvbGxhcjpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXVzZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVzZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1ydXBlZTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWlucjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWlucjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jbnk6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1ybWI6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS15ZW46YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1qcHk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1qcHk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcnVibGU6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb3VibGU6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1ydWI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ydWI7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0td29uOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0ta3J3OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXIta3J3OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJpdGNvaW46YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1idGM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1idGM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlsZS10ZXh0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmlsZS10ZXh0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNvcnQtYWxwaGEtYXNjOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc29ydC1hbHBoYS1hc2M7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc29ydC1hbHBoYS1kZXNjOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc29ydC1hbHBoYS1kZXNjOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNvcnQtYW1vdW50LWFzYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNvcnQtYW1vdW50LWFzYzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zb3J0LWFtb3VudC1kZXNjOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc29ydC1hbW91bnQtZGVzYzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zb3J0LW51bWVyaWMtYXNjOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc29ydC1udW1lcmljLWFzYzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zb3J0LW51bWVyaWMtZGVzYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNvcnQtbnVtZXJpYy1kZXNjOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRodW1icy11cDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRodW1icy11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10aHVtYnMtZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRodW1icy1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXlvdXR1YmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXIteW91dHViZS1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0teW91dHViZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXlvdXR1YmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0teGluZzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXhpbmc7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0teGluZy1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci14aW5nLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS15b3V0dWJlLXBsYXk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci15b3V0dWJlLXBsYXk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZHJvcGJveDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWRyb3Bib3g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3RhY2stb3ZlcmZsb3c6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdGFjay1vdmVyZmxvdzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1pbnN0YWdyYW07IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmxpY2tyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmxpY2tyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFkbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFkbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iaXRidWNrZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1iaXRidWNrZXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYml0YnVja2V0LXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJpdGJ1Y2tldC1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHVtYmxyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdHVtYmxyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXR1bWJsci1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10dW1ibHItc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxvbmctYXJyb3ctZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxvbmctYXJyb3ctZG93bjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1sb25nLWFycm93LXVwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbG9uZy1hcnJvdy11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1sb25nLWFycm93LWxlZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1sb25nLWFycm93LWxlZnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbG9uZy1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxvbmctYXJyb3ctcmlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXBwbGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcHBsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS13aW5kb3dzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItd2luZG93czsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hbmRyb2lkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYW5kcm9pZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1saW51eDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxpbnV4OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWRyaWJiYmxlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZHJpYmJibGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2t5cGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1za3lwZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mb3Vyc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZm91cnNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10cmVsbG86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10cmVsbG87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmVtYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmVtYWxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1hbGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tYWxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdpdHRpcDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdyYXRpcGF5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZ3JhdGlwYXk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3VuLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdW4tbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tb29uLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tb29uLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJjaGl2ZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFyY2hpdmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYnVnOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYnVnOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXZrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdms7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0td2VpYm86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci13ZWlibzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZW5yZW46YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZW5yZW47IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGFnZWxpbmVzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGFnZWxpbmVzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YWNrLWV4Y2hhbmdlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RhY2stZXhjaGFuZ2U7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3ctY2lyY2xlLW8tcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcnJvdy1jaXJjbGUtby1yaWdodDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hcnJvdy1jaXJjbGUtby1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3ctY2lyY2xlLW8tbGVmdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10b2dnbGUtbGVmdDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNhcmV0LXNxdWFyZS1vLWxlZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYXJldC1zcXVhcmUtby1sZWZ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWRvdC1jaXJjbGUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWRvdC1jaXJjbGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS13aGVlbGNoYWlyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItd2hlZWxjaGFpcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS12aW1lby1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci12aW1lby1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHVya2lzaC1saXJhOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tdHJ5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdHJ5OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBsdXMtc3F1YXJlLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wbHVzLXNxdWFyZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNwYWNlLXNodXR0bGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zcGFjZS1zaHV0dGxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNsYWNrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2xhY2s7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZW52ZWxvcGUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZW52ZWxvcGUtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXdvcmRwcmVzczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXdvcmRwcmVzczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1vcGVuaWQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1vcGVuaWQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taW5zdGl0dXRpb246YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1iYW5rOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tdW5pdmVyc2l0eTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVuaXZlcnNpdHk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbW9ydGFyLWJvYXJkOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tZ3JhZHVhdGlvbi1jYXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ncmFkdWF0aW9uLWNhcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS15YWhvbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXlhaG9vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdvb2dsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdvb2dsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZWRkaXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZWRkaXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcmVkZGl0LXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXJlZGRpdC1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3R1bWJsZXVwb24tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3R1bWJsZXVwb24tY2lyY2xlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0dW1ibGV1cG9uOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3R1bWJsZXVwb247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGVsaWNpb3VzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZGVsaWNpb3VzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWRpZ2c6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1kaWdnOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBpZWQtcGlwZXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1waWVkLXBpcGVyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBpZWQtcGlwZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGllZC1waXBlci1hbHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZHJ1cGFsOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZHJ1cGFsOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWpvb21sYTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWpvb21sYTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1sYW5ndWFnZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxhbmd1YWdlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZheDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZheDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1idWlsZGluZzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJ1aWxkaW5nOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoaWxkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hpbGQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGF3OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGF3OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNwb29uOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3Bvb247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY3ViZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWN1YmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY3ViZXM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jdWJlczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iZWhhbmNlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmVoYW5jZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iZWhhbmNlLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJlaGFuY2Utc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0ZWFtOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RlYW07IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3RlYW0tc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RlYW0tc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJlY3ljbGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZWN5Y2xlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWF1dG9tb2JpbGU6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYXI7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FiOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tdGF4aTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRheGk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHJlZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRyZWU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3BvdGlmeTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNwb3RpZnk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGV2aWFudGFydDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWRldmlhbnRhcnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc291bmRjbG91ZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNvdW5kY2xvdWQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGF0YWJhc2U6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1kYXRhYmFzZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLXBkZi1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmlsZS1wZGYtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLXdvcmQtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtd29yZC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtZXhjZWwtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtZXhjZWwtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLXBvd2VycG9pbnQtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtcG93ZXJwb2ludC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtcGhvdG8tbzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtcGljdHVyZS1vOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlsZS1pbWFnZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmlsZS1pbWFnZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtemlwLW86YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLWFyY2hpdmUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtYXJjaGl2ZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtc291bmQtbzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtYXVkaW8tbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtYXVkaW8tbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLW1vdmllLW86YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLXZpZGVvLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maWxlLXZpZGVvLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlsZS1jb2RlLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maWxlLWNvZGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS12aW5lOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdmluZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jb2RlcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY29kZXBlbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1qc2ZpZGRsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWpzZmlkZGxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpZmUtYm91eTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpZmUtYnVveTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpZmUtc2F2ZXI6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdXBwb3J0OmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tbGlmZS1yaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGlmZS1yaW5nOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNpcmNsZS1vLW5vdGNoOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2lyY2xlLW8tbm90Y2g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcmE6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZWJlbDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXJlYmVsOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdlOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tZW1waXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZW1waXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdpdC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1naXQtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdpdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdpdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oYWNrZXItbmV3czpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWhhY2tlci1uZXdzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRlbmNlbnQtd2VpYm86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10ZW5jZW50LXdlaWJvOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXFxOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcXE7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0td2VjaGF0OmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0td2VpeGluOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItd2VpeGluOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNlbmQ6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1wYXBlci1wbGFuZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXBhcGVyLXBsYW5lOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNlbmQtbzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBhcGVyLXBsYW5lLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wYXBlci1wbGFuZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWhpc3Rvcnk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1oaXN0b3J5OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdlbmRlcmxlc3M6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1jaXJjbGUtdGhpbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNpcmNsZS10aGluOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWhlYWRlcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWhlYWRlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1wYXJhZ3JhcGg6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wYXJhZ3JhcGg7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2xpZGVyczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNsaWRlcnM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2hhcmUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2hhcmUtYWx0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNoYXJlLWFsdC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaGFyZS1hbHQtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJvbWI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ib21iOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNvY2Nlci1iYWxsLW86YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1mdXRib2wtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZ1dGJvbC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXR0eTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXR0eTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iaW5vY3VsYXJzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmlub2N1bGFyczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1wbHVnOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGx1ZzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zbGlkZXNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2xpZGVzaGFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10d2l0Y2g6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10d2l0Y2g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0teWVscDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXllbHA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbmV3c3BhcGVyLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1uZXdzcGFwZXItbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS13aWZpOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItd2lmaTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYWxjdWxhdG9yOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2FsY3VsYXRvcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1wYXlwYWw6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wYXlwYWw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ29vZ2xlLXdhbGxldDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdvb2dsZS13YWxsZXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2MtdmlzYTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNjLXZpc2E7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2MtbWFzdGVyY2FyZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNjLW1hc3RlcmNhcmQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2MtZGlzY292ZXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYy1kaXNjb3ZlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYy1hbWV4OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2MtYW1leDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYy1wYXlwYWw6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYy1wYXlwYWw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2Mtc3RyaXBlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2Mtc3RyaXBlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJlbGwtc2xhc2g6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1iZWxsLXNsYXNoOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJlbGwtc2xhc2gtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJlbGwtc2xhc2gtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10cmFzaDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRyYXNoOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNvcHlyaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNvcHlyaWdodDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWF0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV5ZWRyb3BwZXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1leWVkcm9wcGVyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBhaW50LWJydXNoOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGFpbnQtYnJ1c2g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYmlydGhkYXktY2FrZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJpcnRoZGF5LWNha2U7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJlYS1jaGFydDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFyZWEtY2hhcnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGllLWNoYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGllLWNoYXJ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpbmUtY2hhcnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1saW5lLWNoYXJ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxhc3RmbTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxhc3RmbTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1sYXN0Zm0tc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGFzdGZtLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10b2dnbGUtb2ZmOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdG9nZ2xlLW9mZjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10b2dnbGUtb246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10b2dnbGUtb247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYmljeWNsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJpY3ljbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYnVzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYnVzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWlveGhvc3Q6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1pb3hob3N0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFuZ2VsbGlzdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFuZ2VsbGlzdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNjOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNoZWtlbDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNoZXFlbDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWlsczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWlsczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tZWFucGF0aDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1lYW5wYXRoOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJ1eXNlbGxhZHM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1idXlzZWxsYWRzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNvbm5lY3RkZXZlbG9wOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY29ubmVjdGRldmVsb3A7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGFzaGN1YmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1kYXNoY3ViZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mb3J1bWJlZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZvcnVtYmVlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxlYW5wdWI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1sZWFucHViOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNlbGxzeTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNlbGxzeTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaGlydHNpbmJ1bGs6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaGlydHNpbmJ1bGs7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2ltcGx5YnVpbHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaW1wbHlidWlsdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1za3lhdGxhczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNreWF0bGFzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNhcnQtcGx1czpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhcnQtcGx1czsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYXJ0LWFycm93LWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYXJ0LWFycm93LWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGlhbW9uZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWRpYW1vbmQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2hpcDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNoaXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdXNlci1zZWNyZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci11c2VyLXNlY3JldDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tb3RvcmN5Y2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbW90b3JjeWNsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdHJlZXQtdmlldzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXN0cmVldC12aWV3OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWhlYXJ0YmVhdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWhlYXJ0YmVhdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS12ZW51czpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZlbnVzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1hcnM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tYXJzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1lcmN1cnk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tZXJjdXJ5OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRyYW5zZ2VuZGVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdHJhbnNnZW5kZXI7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHJhbnNnZW5kZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdHJhbnNnZW5kZXItYWx0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXZlbnVzLWRvdWJsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZlbnVzLWRvdWJsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tYXJzLWRvdWJsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1hcnMtZG91YmxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXZlbnVzLW1hcnM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci12ZW51cy1tYXJzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1hcnMtc3Ryb2tlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWFycy1zdHJva2U7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWFycy1zdHJva2UtdjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1hcnMtc3Ryb2tlLXY7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWFycy1zdHJva2UtaDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1hcnMtc3Ryb2tlLWg7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbmV1dGVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbmV1dGVyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZhY2Vib29rLW9mZmljaWFsOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmFjZWJvb2stb2ZmaWNpYWw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGludGVyZXN0LXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1waW50ZXJlc3QtcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS13aGF0c2FwcDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXdoYXRzYXBwOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNlcnZlcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNlcnZlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11c2VyLXBsdXM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci11c2VyLXBsdXM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdXNlci10aW1lczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVzZXItdGltZXM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taG90ZWw6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1iZWQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1iZWQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdmlhY29pbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZpYWNvaW47IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHJhaW46YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10cmFpbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdWJ3YXk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdWJ3YXk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWVkaXVtOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWVkaXVtOyB9XHJcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */ +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxpYi5jc3MiLCJib290c3RyYXAubGVzcyIsIm1peGlucy92ZW5kb3ItcHJlZml4ZXMubGVzcyIsInNjYWZmb2xkaW5nLmxlc3MiLCJtaXhpbnMvdGFiLWZvY3VzLmxlc3MiLCJtaXhpbnMvaW1hZ2UubGVzcyIsIm1peGlucy9ncmlkLmxlc3MiLCJncmlkLmxlc3MiLCJtaXhpbnMvZ3JpZC1mcmFtZXdvcmsubGVzcyIsIm1peGlucy9jbGVhcmZpeC5sZXNzIiwidXRpbGl0aWVzLmxlc3MiLCJtaXhpbnMvY2VudGVyLWJsb2NrLmxlc3MiLCJtaXhpbnMvaGlkZS10ZXh0Lmxlc3MiLCJwYXRoLmxlc3MiLCJjb3JlLmxlc3MiLCJsYXJnZXIubGVzcyIsImZpeGVkLXdpZHRoLmxlc3MiLCJsaXN0Lmxlc3MiLCJib3JkZXJlZC1wdWxsZWQubGVzcyIsImFuaW1hdGVkLmxlc3MiLCJyb3RhdGVkLWZsaXBwZWQubGVzcyIsIm1peGlucy5sZXNzIiwic3RhY2tlZC5sZXNzIiwiaWNvbnMubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQUNBQTtFQ3VFVSx1QkFBQTtDRnhFVDtBQ0NEOztFQ3VFVSx1QkFBQTtDRmxFVDtBQ0xEO0VFaUJFLGdCQUFBO0VBQ0EsOENBQUE7Q0hURDtBQ1REO0VFc0JFLDREQUFBO0VBQ0EsZ0JBQUE7RUFDQSx3QkFBQTtFQUNBLGVBQUE7RUFDQSx1QkFBQTtDSFZEO0FDaEJEOzs7O0VFa0NFLHFCQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQkFBQTtDSFpEO0FDeEJEO0VFMkNFLGVBQUE7RUFDQSxzQkFBQTtDSGhCRDtBR2tCQzs7RUFFRSxlQUFBO0VBQ0EsMkJBQUE7Q0hoQkg7QUdtQkM7RUNyREEscUJBQUE7RUFFQSwyQ0FBQTtFQUNBLHFCQUFBO0NKb0NEO0FDdENEO0VFZ0VFLFVBQUE7Q0h2QkQ7QUN6Q0Q7RUV1RUUsdUJBQUE7Q0gzQkQ7QUM1Q0Q7RUlJRSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxhQUFBO0NMMkNEO0FDakREO0VFaUZFLG1CQUFBO0NIN0JEO0FDcEREO0VFd0ZFLGFBQUE7RUFDQSx3QkFBQTtFQUNBLHVCQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFRCtGUSxpQ0FBQTtFR3ZMUixzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYUFBQTtDTDJERDtBQ2pFRDtFRXFHRSxtQkFBQTtDSGpDRDtBQ3BFRDtFRTRHRSxpQkFBQTtFQUNBLG9CQUFBO0VBQ0EsVUFBQTtFQUNBLDhCQUFBO0NIckNEO0FDMUVEO0VFd0hFLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7RUFDQSxVQUFBO0NIM0NEO0FHbURDOztFQUVFLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0NIakRIO0FDN0ZEO0VLQ0UsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7Q04rRkQ7QU96RkM7RUFxRUY7SUF2RUksYUFBQTtHUCtGRDtDQUNGO0FPM0ZDO0VBa0VGO0lBcEVJLGFBQUE7R1BpR0Q7Q0FDRjtBTzdGRDtFQStEQTtJQWpFSSxjQUFBO0dQbUdEO0NBQ0Y7QUNsSEQ7RUtDRSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtDTm9IRDtBQ3hIRDtFS1VFLG1CQUFBO0VBQ0Esb0JBQUE7Q05pSEQ7QUM1SEQ7RU9ZTSxtQkFBQTtFQUVBLGdCQUFBO0VBRUEsbUJBQUE7RUFDQSxvQkFBQTtDUmlITDtBQ2xJRDtFT2tDTSxZQUFBO0NSbUdMO0FDcklEO0VPMENJLFlBQUE7Q1I4Rkg7QUN4SUQ7RU8wQ0ksb0JBQUE7Q1JpR0g7QUMzSUQ7RU8wQ0ksb0JBQUE7Q1JvR0g7QUM5SUQ7RU8wQ0ksV0FBQTtDUnVHSDtBQ2pKRDtFTzBDSSxvQkFBQTtDUjBHSDtBQ3BKRDtFTzBDSSxvQkFBQTtDUjZHSDtBQ3ZKRDtFTzBDSSxXQUFBO0NSZ0hIO0FDMUpEO0VPMENJLG9CQUFBO0NSbUhIO0FDN0pEO0VPMENJLG9CQUFBO0NSc0hIO0FDaEtEO0VPMENJLFdBQUE7Q1J5SEg7QUNuS0Q7RU8wQ0ksb0JBQUE7Q1I0SEg7QUN0S0Q7RU8wQ0ksbUJBQUE7Q1IrSEg7QUN6S0Q7RU95REksWUFBQTtDUm1ISDtBQzVLRDtFT3lESSxvQkFBQTtDUnNISDtBQy9LRDtFT3lESSxvQkFBQTtDUnlISDtBQ2xMRDtFT3lESSxXQUFBO0NSNEhIO0FDckxEO0VPeURJLG9CQUFBO0NSK0hIO0FDeExEO0VPeURJLG9CQUFBO0NSa0lIO0FDM0xEO0VPeURJLFdBQUE7Q1JxSUg7QUM5TEQ7RU95REksb0JBQUE7Q1J3SUg7QUNqTUQ7RU95REksb0JBQUE7Q1IySUg7QUNwTUQ7RU95REksV0FBQTtDUjhJSDtBQ3ZNRDtFT3lESSxvQkFBQTtDUmlKSDtBQzFNRDtFT3lESSxtQkFBQTtDUm9KSDtBQzdNRDtFTzhESSxZQUFBO0NSa0pIO0FDaE5EO0VPK0NJLFdBQUE7Q1JvS0g7QUNuTkQ7RU8rQ0ksbUJBQUE7Q1J1S0g7QUN0TkQ7RU8rQ0ksbUJBQUE7Q1IwS0g7QUN6TkQ7RU8rQ0ksVUFBQTtDUjZLSDtBQzVORDtFTytDSSxtQkFBQTtDUmdMSDtBQy9ORDtFTytDSSxtQkFBQTtDUm1MSDtBQ2xPRDtFTytDSSxVQUFBO0NSc0xIO0FDck9EO0VPK0NJLG1CQUFBO0NSeUxIO0FDeE9EO0VPK0NJLG1CQUFBO0NSNExIO0FDM09EO0VPK0NJLFVBQUE7Q1IrTEg7QUM5T0Q7RU8rQ0ksbUJBQUE7Q1JrTUg7QUNqUEQ7RU8rQ0ksa0JBQUE7Q1JxTUg7QUNwUEQ7RU9vREksV0FBQTtDUm1NSDtBQ3ZQRDtFT21FSSxrQkFBQTtDUnVMSDtBQzFQRDtFT21FSSwwQkFBQTtDUjBMSDtBQzdQRDtFT21FSSwwQkFBQTtDUjZMSDtBQ2hRRDtFT21FSSxpQkFBQTtDUmdNSDtBQ25RRDtFT21FSSwwQkFBQTtDUm1NSDtBQ3RRRDtFT21FSSwwQkFBQTtDUnNNSDtBQ3pRRDtFT21FSSxpQkFBQTtDUnlNSDtBQzVRRDtFT21FSSwwQkFBQTtDUjRNSDtBQy9RRDtFT21FSSwwQkFBQTtDUitNSDtBQ2xSRDtFT21FSSxpQkFBQTtDUmtOSDtBQ3JSRDtFT21FSSwwQkFBQTtDUnFOSDtBQ3hSRDtFT21FSSx5QkFBQTtDUndOSDtBQzNSRDtFT21FSSxnQkFBQTtDUjJOSDtBTzNORDtFQVlBO0lDN0NNLFlBQUE7R1JnUUg7RU9uTkg7SUNyQ0ksWUFBQTtHUjJQRDtFT3ROSDtJQ3JDSSxvQkFBQTtHUjhQRDtFT3pOSDtJQ3JDSSxvQkFBQTtHUmlRRDtFTzVOSDtJQ3JDSSxXQUFBO0dSb1FEO0VPL05IO0lDckNJLG9CQUFBO0dSdVFEO0VPbE9IO0lDckNJLG9CQUFBO0dSMFFEO0VPck9IO0lDckNJLFdBQUE7R1I2UUQ7RU94T0g7SUNyQ0ksb0JBQUE7R1JnUkQ7RU8zT0g7SUNyQ0ksb0JBQUE7R1JtUkQ7RU85T0g7SUNyQ0ksV0FBQTtHUnNSRDtFT2pQSDtJQ3JDSSxvQkFBQTtHUnlSRDtFT3BQSDtJQ3JDSSxtQkFBQTtHUjRSRDtFT3ZQSDtJQ3RCSSxZQUFBO0dSZ1JEO0VPMVBIO0lDdEJJLG9CQUFBO0dSbVJEO0VPN1BIO0lDdEJJLG9CQUFBO0dSc1JEO0VPaFFIO0lDdEJJLFdBQUE7R1J5UkQ7RU9uUUg7SUN0Qkksb0JBQUE7R1I0UkQ7RU90UUg7SUN0Qkksb0JBQUE7R1IrUkQ7RU96UUg7SUN0QkksV0FBQTtHUmtTRDtFTzVRSDtJQ3RCSSxvQkFBQTtHUnFTRDtFTy9RSDtJQ3RCSSxvQkFBQTtHUndTRDtFT2xSSDtJQ3RCSSxXQUFBO0dSMlNEO0VPclJIO0lDdEJJLG9CQUFBO0dSOFNEO0VPeFJIO0lDdEJJLG1CQUFBO0dSaVREO0VPM1JIO0lDakJJLFlBQUE7R1IrU0Q7RU85Ukg7SUNoQ0ksV0FBQTtHUmlVRDtFT2pTSDtJQ2hDSSxtQkFBQTtHUm9VRDtFT3BTSDtJQ2hDSSxtQkFBQTtHUnVVRDtFT3ZTSDtJQ2hDSSxVQUFBO0dSMFVEO0VPMVNIO0lDaENJLG1CQUFBO0dSNlVEO0VPN1NIO0lDaENJLG1CQUFBO0dSZ1ZEO0VPaFRIO0lDaENJLFVBQUE7R1JtVkQ7RU9uVEg7SUNoQ0ksbUJBQUE7R1JzVkQ7RU90VEg7SUNoQ0ksbUJBQUE7R1J5VkQ7RU96VEg7SUNoQ0ksVUFBQTtHUjRWRDtFTzVUSDtJQ2hDSSxtQkFBQTtHUitWRDtFTy9USDtJQ2hDSSxrQkFBQTtHUmtXRDtFT2xVSDtJQzNCSSxXQUFBO0dSZ1dEO0VPclVIO0lDWkksa0JBQUE7R1JvVkQ7RU94VUg7SUNaSSwwQkFBQTtHUnVWRDtFTzNVSDtJQ1pJLDBCQUFBO0dSMFZEO0VPOVVIO0lDWkksaUJBQUE7R1I2VkQ7RU9qVkg7SUNaSSwwQkFBQTtHUmdXRDtFT3BWSDtJQ1pJLDBCQUFBO0dSbVdEO0VPdlZIO0lDWkksaUJBQUE7R1JzV0Q7RU8xVkg7SUNaSSwwQkFBQTtHUnlXRDtFTzdWSDtJQ1pJLDBCQUFBO0dSNFdEO0VPaFdIO0lDWkksaUJBQUE7R1IrV0Q7RU9uV0g7SUNaSSwwQkFBQTtHUmtYRDtFT3RXSDtJQ1pJLHlCQUFBO0dScVhEO0VPeldIO0lDWkksZ0JBQUE7R1J3WEQ7Q0FDRjtBT2hYRDtFQUdBO0lDN0NNLFlBQUE7R1I4Wkg7RU9qWEg7SUNyQ0ksWUFBQTtHUnlaRDtFT3BYSDtJQ3JDSSxvQkFBQTtHUjRaRDtFT3ZYSDtJQ3JDSSxvQkFBQTtHUitaRDtFTzFYSDtJQ3JDSSxXQUFBO0dSa2FEO0VPN1hIO0lDckNJLG9CQUFBO0dScWFEO0VPaFlIO0lDckNJLG9CQUFBO0dSd2FEO0VPbllIO0lDckNJLFdBQUE7R1IyYUQ7RU90WUg7SUNyQ0ksb0JBQUE7R1I4YUQ7RU96WUg7SUNyQ0ksb0JBQUE7R1JpYkQ7RU81WUg7SUNyQ0ksV0FBQTtHUm9iRDtFTy9ZSDtJQ3JDSSxvQkFBQTtHUnViRDtFT2xaSDtJQ3JDSSxtQkFBQTtHUjBiRDtFT3JaSDtJQ3RCSSxZQUFBO0dSOGFEO0VPeFpIO0lDdEJJLG9CQUFBO0dSaWJEO0VPM1pIO0lDdEJJLG9CQUFBO0dSb2JEO0VPOVpIO0lDdEJJLFdBQUE7R1J1YkQ7RU9qYUg7SUN0Qkksb0JBQUE7R1IwYkQ7RU9wYUg7SUN0Qkksb0JBQUE7R1I2YkQ7RU92YUg7SUN0QkksV0FBQTtHUmdjRDtFTzFhSDtJQ3RCSSxvQkFBQTtHUm1jRDtFTzdhSDtJQ3RCSSxvQkFBQTtHUnNjRDtFT2hiSDtJQ3RCSSxXQUFBO0dSeWNEO0VPbmJIO0lDdEJJLG9CQUFBO0dSNGNEO0VPdGJIO0lDdEJJLG1CQUFBO0dSK2NEO0VPemJIO0lDakJJLFlBQUE7R1I2Y0Q7RU81Ykg7SUNoQ0ksV0FBQTtHUitkRDtFTy9iSDtJQ2hDSSxtQkFBQTtHUmtlRDtFT2xjSDtJQ2hDSSxtQkFBQTtHUnFlRDtFT3JjSDtJQ2hDSSxVQUFBO0dSd2VEO0VPeGNIO0lDaENJLG1CQUFBO0dSMmVEO0VPM2NIO0lDaENJLG1CQUFBO0dSOGVEO0VPOWNIO0lDaENJLFVBQUE7R1JpZkQ7RU9qZEg7SUNoQ0ksbUJBQUE7R1JvZkQ7RU9wZEg7SUNoQ0ksbUJBQUE7R1J1ZkQ7RU92ZEg7SUNoQ0ksVUFBQTtHUjBmRDtFTzFkSDtJQ2hDSSxtQkFBQTtHUjZmRDtFTzdkSDtJQ2hDSSxrQkFBQTtHUmdnQkQ7RU9oZUg7SUMzQkksV0FBQTtHUjhmRDtFT25lSDtJQ1pJLGtCQUFBO0dSa2ZEO0VPdGVIO0lDWkksMEJBQUE7R1JxZkQ7RU96ZUg7SUNaSSwwQkFBQTtHUndmRDtFTzVlSDtJQ1pJLGlCQUFBO0dSMmZEO0VPL2VIO0lDWkksMEJBQUE7R1I4ZkQ7RU9sZkg7SUNaSSwwQkFBQTtHUmlnQkQ7RU9yZkg7SUNaSSxpQkFBQTtHUm9nQkQ7RU94Zkg7SUNaSSwwQkFBQTtHUnVnQkQ7RU8zZkg7SUNaSSwwQkFBQTtHUjBnQkQ7RU85Zkg7SUNaSSxpQkFBQTtHUjZnQkQ7RU9qZ0JIO0lDWkksMEJBQUE7R1JnaEJEO0VPcGdCSDtJQ1pJLHlCQUFBO0dSbWhCRDtFT3ZnQkg7SUNaSSxnQkFBQTtHUnNoQkQ7Q0FDRjtBTzNnQkQ7RUFBQTtJQzdDTSxZQUFBO0dSNGpCSDtFTy9nQkg7SUNyQ0ksWUFBQTtHUnVqQkQ7RU9saEJIO0lDckNJLG9CQUFBO0dSMGpCRDtFT3JoQkg7SUNyQ0ksb0JBQUE7R1I2akJEO0VPeGhCSDtJQ3JDSSxXQUFBO0dSZ2tCRDtFTzNoQkg7SUNyQ0ksb0JBQUE7R1Jta0JEO0VPOWhCSDtJQ3JDSSxvQkFBQTtHUnNrQkQ7RU9qaUJIO0lDckNJLFdBQUE7R1J5a0JEO0VPcGlCSDtJQ3JDSSxvQkFBQTtHUjRrQkQ7RU92aUJIO0lDckNJLG9CQUFBO0dSK2tCRDtFTzFpQkg7SUNyQ0ksV0FBQTtHUmtsQkQ7RU83aUJIO0lDckNJLG9CQUFBO0dScWxCRDtFT2hqQkg7SUNyQ0ksbUJBQUE7R1J3bEJEO0VPbmpCSDtJQ3RCSSxZQUFBO0dSNGtCRDtFT3RqQkg7SUN0Qkksb0JBQUE7R1Ira0JEO0VPempCSDtJQ3RCSSxvQkFBQTtHUmtsQkQ7RU81akJIO0lDdEJJLFdBQUE7R1JxbEJEO0VPL2pCSDtJQ3RCSSxvQkFBQTtHUndsQkQ7RU9sa0JIO0lDdEJJLG9CQUFBO0dSMmxCRDtFT3JrQkg7SUN0QkksV0FBQTtHUjhsQkQ7RU94a0JIO0lDdEJJLG9CQUFBO0dSaW1CRDtFTzNrQkg7SUN0Qkksb0JBQUE7R1JvbUJEO0VPOWtCSDtJQ3RCSSxXQUFBO0dSdW1CRDtFT2psQkg7SUN0Qkksb0JBQUE7R1IwbUJEO0VPcGxCSDtJQ3RCSSxtQkFBQTtHUjZtQkQ7RU92bEJIO0lDakJJLFlBQUE7R1IybUJEO0VPMWxCSDtJQ2hDSSxXQUFBO0dSNm5CRDtFTzdsQkg7SUNoQ0ksbUJBQUE7R1Jnb0JEO0VPaG1CSDtJQ2hDSSxtQkFBQTtHUm1vQkQ7RU9ubUJIO0lDaENJLFVBQUE7R1Jzb0JEO0VPdG1CSDtJQ2hDSSxtQkFBQTtHUnlvQkQ7RU96bUJIO0lDaENJLG1CQUFBO0dSNG9CRDtFTzVtQkg7SUNoQ0ksVUFBQTtHUitvQkQ7RU8vbUJIO0lDaENJLG1CQUFBO0dSa3BCRDtFT2xuQkg7SUNoQ0ksbUJBQUE7R1JxcEJEO0VPcm5CSDtJQ2hDSSxVQUFBO0dSd3BCRDtFT3huQkg7SUNoQ0ksbUJBQUE7R1IycEJEO0VPM25CSDtJQ2hDSSxrQkFBQTtHUjhwQkQ7RU85bkJIO0lDM0JJLFdBQUE7R1I0cEJEO0VPam9CSDtJQ1pJLGtCQUFBO0dSZ3BCRDtFT3BvQkg7SUNaSSwwQkFBQTtHUm1wQkQ7RU92b0JIO0lDWkksMEJBQUE7R1JzcEJEO0VPMW9CSDtJQ1pJLGlCQUFBO0dSeXBCRDtFTzdvQkg7SUNaSSwwQkFBQTtHUjRwQkQ7RU9ocEJIO0lDWkksMEJBQUE7R1IrcEJEO0VPbnBCSDtJQ1pJLGlCQUFBO0dSa3FCRDtFT3RwQkg7SUNaSSwwQkFBQTtHUnFxQkQ7RU96cEJIO0lDWkksMEJBQUE7R1J3cUJEO0VPNXBCSDtJQ1pJLGlCQUFBO0dSMnFCRDtFTy9wQkg7SUNaSSwwQkFBQTtHUjhxQkQ7RU9scUJIO0lDWkkseUJBQUE7R1JpckJEO0VPcnFCSDtJQ1pJLGdCQUFBO0dSb3JCRDtDQUNGO0FTaHZCQzs7Ozs7Ozs7RUFFRSxhQUFBO0VBQ0EsZUFBQTtDVHd2Qkg7QVN0dkJDOzs7O0VBQ0UsWUFBQTtDVDJ2Qkg7QVVud0JEO0VDUkUsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7Q1g4d0JEO0FVcndCRDtFQUNFLHdCQUFBO0NWdXdCRDtBVXJ3QkQ7RUFDRSx1QkFBQTtDVnV3QkQ7QVUvdkJEO0VBQ0UseUJBQUE7Q1Zpd0JEO0FVL3ZCRDtFQUNFLDBCQUFBO0NWaXdCRDtBVS92QkQ7RUFDRSxtQkFBQTtDVml3QkQ7QVUvdkJEO0VFekJFLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsOEJBQUE7RUFDQSxVQUFBO0NaMnhCRDtBVTd2QkQ7RUFDRSx5QkFBQTtFQUNBLDhCQUFBO0NWK3ZCRDtBVXh2QkQ7RUFDRSxnQkFBQTtDVjB2QkQ7O0FBRUQ7OztHQUdHO0FBQ0g7Z0NBQ2dDO0FhcHpCaEM7RUFDRSwyQkFBQTtFQUNBLGtEQUFBO0VBQ0EsbVdBQUE7RUFNQSxvQkFBQTtFQUNBLG1CQUFBO0NiaXpCRDtBYzN6QkQ7RUFDRSxzQkFBQTtFQUNBLDhDQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLG9DQUFBO0VBQ0EsbUNBQUE7RUFDQSxtQ0FBQTtVQUFBLDJCQUFBO0NkNnpCRDtBQUNELDhEQUE4RDtBZXAwQjlEO0VBQ0Usd0JBQUE7RUFDQSxvQkFBQTtFQUNBLHFCQUFBO0NmczBCRDtBZXAwQkQ7RUFBdUIsZUFBQTtDZnUwQnRCO0FldDBCRDtFQUF1QixlQUFBO0NmeTBCdEI7QWV4MEJEO0VBQXVCLGVBQUE7Q2YyMEJ0QjtBZTEwQkQ7RUFBdUIsZUFBQTtDZjYwQnRCO0FnQnYxQkQ7RUFDRSxvQkFBQTtFQUNBLG1CQUFBO0NoQnkxQkQ7QWlCMTFCRDtFQUNFLGdCQUFBO0VBQ0EsMEJBQUE7RUFDQSxzQkFBQTtDakI0MUJEO0FpQi8xQkQ7RUFJUyxtQkFBQTtDakI4MUJSO0FpQjUxQkQ7RUFDRSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0NqQjgxQkQ7QWlCNzFCQztFQUNFLG9CQUFBO0NqQisxQkg7QWtCNTJCRDtFQUNFLDBCQUFBO0VBQ0EsMEJBQUE7RUFDQSxvQkFBQTtDbEI4MkJEO0FrQjMyQkQ7RUFBYyxhQUFBO0NsQjgyQmI7QWtCNzJCRDtFQUFhLFlBQUE7Q2xCZzNCWjtBa0I3MkJDO0VBQWMsbUJBQUE7Q2xCZzNCZjtBa0IvMkJDO0VBQWUsa0JBQUE7Q2xCazNCaEI7QW1CNzNCRDtFQUNFLDhDQUFBO0VBQ1Esc0NBQUE7Q25CKzNCVDtBbUI1M0JEO0VBQ0UsZ0RBQUE7RUFDUSx3Q0FBQTtDbkI4M0JUO0FtQjMzQkQ7RUFDRTtJQUNFLGdDQUFBO0lBQ1Esd0JBQUE7R25CNjNCVDtFbUIzM0JEO0lBQ0Usa0NBQUE7SUFDUSwwQkFBQTtHbkI2M0JUO0NBQ0Y7QW1CMTNCRDtFQUNFO0lBQ0UsZ0NBQUE7SUFDUSx3QkFBQTtHbkI0M0JUO0VtQjEzQkQ7SUFDRSxrQ0FBQTtJQUNRLDBCQUFBO0duQjQzQlQ7Q0FDRjtBb0J6NUJEO0VDWUUsaUVBQUE7RUFDQSxpQ0FBQTtFQUVRLHlCQUFBO0NyQmc1QlQ7QW9COTVCRDtFQ1dFLGlFQUFBO0VBQ0Esa0NBQUE7RUFFUSwwQkFBQTtDckJzNUJUO0FvQm42QkQ7RUNVRSxpRUFBQTtFQUNBLGtDQUFBO0VBRVEsMEJBQUE7Q3JCNDVCVDtBb0J2NkJEO0VDZUUsMkVBQUE7RUFDQSxnQ0FBQTtFQUVRLHdCQUFBO0NyQjI1QlQ7QW9CNTZCRDtFQ2NFLDJFQUFBO0VBQ0EsZ0NBQUE7RUFFUSx3QkFBQTtDckJpNkJUO0FvQjc2QkQ7Ozs7O0VBS0UscUJBQUE7VUFBQSxhQUFBO0NwQis2QkQ7QXNCOTdCRDtFQUNFLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7Q3RCZzhCRDtBc0I5N0JEOztFQUNFLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtDdEJpOEJEO0FzQi83QkQ7RUFBNkIscUJBQUE7Q3RCazhCNUI7QXNCajhCRDtFQUE2QixlQUFBO0N0Qm84QjVCO0FzQm44QkQ7RUFBNEIsWUFBQTtDdEJzOEIzQjtBQUNEO29FQUNvRTtBdUJ4OUJwRTtFQUFpQyxpQkFBQTtDdkIyOUJoQztBdUIxOUJEO0VBQWlDLGlCQUFBO0N2QjY5QmhDO0F1QjU5QkQ7RUFBa0MsaUJBQUE7Q3ZCKzlCakM7QXVCOTlCRDtFQUFzQyxpQkFBQTtDdkJpK0JyQztBdUJoK0JEO0VBQWlDLGlCQUFBO0N2Qm0rQmhDO0F1QmwrQkQ7RUFBZ0MsaUJBQUE7Q3ZCcStCL0I7QXVCcCtCRDtFQUFrQyxpQkFBQTtDdkJ1K0JqQztBdUJ0K0JEO0VBQWdDLGlCQUFBO0N2QnkrQi9CO0F1QngrQkQ7RUFBZ0MsaUJBQUE7Q3ZCMitCL0I7QXVCMStCRDtFQUFvQyxpQkFBQTtDdkI2K0JuQztBdUI1K0JEO0VBQThCLGlCQUFBO0N2QisrQjdCO0F1QjkrQkQ7RUFBbUMsaUJBQUE7Q3ZCaS9CbEM7QXVCaC9CRDtFQUFpQyxpQkFBQTtDdkJtL0JoQztBdUJsL0JEOzs7RUFFaUMsaUJBQUE7Q3ZCcS9CaEM7QXVCcC9CRDtFQUF1QyxpQkFBQTtDdkJ1L0J0QztBdUJ0L0JEO0VBQXdDLGlCQUFBO0N2QnkvQnZDO0F1QngvQkQ7RUFBcUMsaUJBQUE7Q3ZCMi9CcEM7QXVCMS9CRDtFQUFrQyxpQkFBQTtDdkI2L0JqQztBdUI1L0JEOztFQUMrQixpQkFBQTtDdkIrL0I5QjtBdUI5L0JEO0VBQW1DLGlCQUFBO0N2QmlnQ2xDO0F1QmhnQ0Q7RUFBZ0MsaUJBQUE7Q3ZCbWdDL0I7QXVCbGdDRDtFQUFrQyxpQkFBQTtDdkJxZ0NqQztBdUJwZ0NEO0VBQW1DLGlCQUFBO0N2QnVnQ2xDO0F1QnRnQ0Q7RUFBZ0MsaUJBQUE7Q3ZCeWdDL0I7QXVCeGdDRDtFQUFvQyxpQkFBQTtDdkIyZ0NuQztBdUIxZ0NEO0VBQStDLGlCQUFBO0N2QjZnQzlDO0F1QjVnQ0Q7RUFBNkMsaUJBQUE7Q3ZCK2dDNUM7QXVCOWdDRDtFQUFpQyxpQkFBQTtDdkJpaENoQztBdUJoaENEO0VBQXlDLGlCQUFBO0N2Qm1oQ3hDO0F1QmxoQ0Q7O0VBQ2tDLGlCQUFBO0N2QnFoQ2pDO0F1QnBoQ0Q7RUFBbUMsaUJBQUE7Q3ZCdWhDbEM7QXVCdGhDRDtFQUFvQyxpQkFBQTtDdkJ5aENuQztBdUJ4aENEO0VBQWdDLGlCQUFBO0N2QjJoQy9CO0F1QjFoQ0Q7RUFBZ0MsaUJBQUE7Q3ZCNmhDL0I7QXVCNWhDRDtFQUFzQyxpQkFBQTtDdkIraENyQztBdUI5aENEO0VBQXNDLGlCQUFBO0N2QmlpQ3JDO0F1QmhpQ0Q7RUFBdUMsaUJBQUE7Q3ZCbWlDdEM7QXVCbGlDRDtFQUFxQyxpQkFBQTtDdkJxaUNwQztBdUJwaUNEO0VBQWtDLGlCQUFBO0N2QnVpQ2pDO0F1QnRpQ0Q7RUFBbUMsaUJBQUE7Q3ZCeWlDbEM7QXVCeGlDRDtFQUErQixpQkFBQTtDdkIyaUM5QjtBdUIxaUNEO0VBQWdDLGlCQUFBO0N2QjZpQy9CO0F1QjVpQ0Q7RUFBZ0MsaUJBQUE7Q3ZCK2lDL0I7QXVCOWlDRDtFQUFvQyxpQkFBQTtDdkJpakNuQztBdUJoakNEO0VBQWlDLGlCQUFBO0N2Qm1qQ2hDO0F1QmxqQ0Q7RUFBa0MsaUJBQUE7Q3ZCcWpDakM7QXVCcGpDRDtFQUFnQyxpQkFBQTtDdkJ1akMvQjtBdUJ0akNEO0VBQWdDLGlCQUFBO0N2QnlqQy9CO0F1QnhqQ0Q7RUFBa0MsaUJBQUE7Q3ZCMmpDakM7QXVCMWpDRDtFQUF1QyxpQkFBQTtDdkI2akN0QztBdUI1akNEO0VBQXNDLGlCQUFBO0N2QitqQ3JDO0F1QjlqQ0Q7RUFBc0MsaUJBQUE7Q3ZCaWtDckM7QXVCaGtDRDtFQUF3QyxpQkFBQTtDdkJta0N2QztBdUJsa0NEO0VBQXVDLGlCQUFBO0N2QnFrQ3RDO0F1QnBrQ0Q7RUFBeUMsaUJBQUE7Q3ZCdWtDeEM7QXVCdGtDRDtFQUFnQyxpQkFBQTtDdkJ5a0MvQjtBdUJ4a0NEOztFQUNtQyxpQkFBQTtDdkIya0NsQztBdUIxa0NEO0VBQWtDLGlCQUFBO0N2QjZrQ2pDO0F1QjVrQ0Q7RUFBd0MsaUJBQUE7Q3ZCK2tDdkM7QXVCOWtDRDs7O0VBRXFDLGlCQUFBO0N2QmlsQ3BDO0F1QmhsQ0Q7RUFBa0MsaUJBQUE7Q3ZCbWxDakM7QXVCbGxDRDtFQUFzQyxpQkFBQTtDdkJxbENyQztBdUJwbENEO0VBQWtDLGlCQUFBO0N2QnVsQ2pDO0F1QnRsQ0Q7RUFBZ0MsaUJBQUE7Q3ZCeWxDL0I7QXVCeGxDRDs7RUFDMkMsaUJBQUE7Q3ZCMmxDMUM7QXVCMWxDRDtFQUEwQyxpQkFBQTtDdkI2bEN6QztBdUI1bENEO0VBQTBDLGlCQUFBO0N2QitsQ3pDO0F1QjlsQ0Q7RUFBa0MsaUJBQUE7Q3ZCaW1DakM7QXVCaG1DRDtFQUF5QyxpQkFBQTtDdkJtbUN4QztBdUJsbUNEO0VBQXlDLGlCQUFBO0N2QnFtQ3hDO0F1QnBtQ0Q7RUFBb0MsaUJBQUE7Q3ZCdW1DbkM7QXVCdG1DRDtFQUFnQyxpQkFBQTtDdkJ5bUMvQjtBdUJ4bUNEO0VBQWlDLGlCQUFBO0N2QjJtQ2hDO0F1QjFtQ0Q7RUFBZ0MsaUJBQUE7Q3ZCNm1DL0I7QXVCNW1DRDtFQUFtQyxpQkFBQTtDdkIrbUNsQztBdUI5bUNEO0VBQXdDLGlCQUFBO0N2QmluQ3ZDO0F1QmhuQ0Q7RUFBd0MsaUJBQUE7Q3ZCbW5DdkM7QXVCbG5DRDtFQUFpQyxpQkFBQTtDdkJxbkNoQztBdUJwbkNEO0VBQXdDLGlCQUFBO0N2QnVuQ3ZDO0F1QnRuQ0Q7RUFBeUMsaUJBQUE7Q3ZCeW5DeEM7QXVCeG5DRDtFQUF1QyxpQkFBQTtDdkIybkN0QztBdUIxbkNEO0VBQXdDLGlCQUFBO0N2QjZuQ3ZDO0F1QjVuQ0Q7RUFBd0MsaUJBQUE7Q3ZCK25DdkM7QXVCOW5DRDtFQUF3QyxpQkFBQTtDdkJpb0N2QztBdUJob0NEO0VBQTJDLGlCQUFBO0N2Qm1vQzFDO0F1QmxvQ0Q7RUFBdUMsaUJBQUE7Q3ZCcW9DdEM7QXVCcG9DRDtFQUFzQyxpQkFBQTtDdkJ1b0NyQztBdUJ0b0NEO0VBQTBDLGlCQUFBO0N2QnlvQ3pDO0F1QnhvQ0Q7RUFBMEMsaUJBQUE7Q3ZCMm9DekM7QXVCMW9DRDtFQUErQixpQkFBQTtDdkI2b0M5QjtBdUI1b0NEO0VBQXNDLGlCQUFBO0N2QitvQ3JDO0F1QjlvQ0Q7RUFBdUMsaUJBQUE7Q3ZCaXBDdEM7QXVCaHBDRDtFQUFvQyxpQkFBQTtDdkJtcENuQztBdUJscENEO0VBQXNDLGlCQUFBO0N2QnFwQ3JDO0F1QnBwQ0Q7O0VBQ2lDLGlCQUFBO0N2QnVwQ2hDO0F1QnRwQ0Q7RUFBa0MsaUJBQUE7Q3ZCeXBDakM7QXVCeHBDRDtFQUFvQyxpQkFBQTtDdkIycENuQztBdUIxcENEO0VBQWdDLGlCQUFBO0N2QjZwQy9CO0F1QjVwQ0Q7RUFBaUMsaUJBQUE7Q3ZCK3BDaEM7QXVCOXBDRDtFQUFvQyxpQkFBQTtDdkJpcUNuQztBdUJocUNEO0VBQThDLGlCQUFBO0N2Qm1xQzdDO0F1QmxxQ0Q7RUFBZ0MsaUJBQUE7Q3ZCcXFDL0I7QXVCcHFDRDtFQUFnQyxpQkFBQTtDdkJ1cUMvQjtBdUJ0cUNEO0VBQWdDLGlCQUFBO0N2QnlxQy9CO0F1QnhxQ0Q7RUFBK0IsaUJBQUE7Q3ZCMnFDOUI7QXVCMXFDRDtFQUFxQyxpQkFBQTtDdkI2cUNwQztBdUI1cUNEOztFQUNnRCxpQkFBQTtDdkIrcUMvQztBdUI5cUNEO0VBQWlDLGlCQUFBO0N2QmlyQ2hDO0F1QmhyQ0Q7RUFBb0MsaUJBQUE7Q3ZCbXJDbkM7QXVCbHJDRDtFQUFrQyxpQkFBQTtDdkJxckNqQztBdUJwckNEO0VBQW1DLGlCQUFBO0N2QnVyQ2xDO0F1QnRyQ0Q7RUFBa0MsaUJBQUE7Q3ZCeXJDakM7QXVCeHJDRDtFQUFzQyxpQkFBQTtDdkIyckNyQztBdUIxckNEO0VBQXdDLGlCQUFBO0N2QjZyQ3ZDO0F1QjVyQ0Q7RUFBbUMsaUJBQUE7Q3ZCK3JDbEM7QXVCOXJDRDtFQUF5QyxpQkFBQTtDdkJpc0N4QztBdUJoc0NEO0VBQWtDLGlCQUFBO0N2Qm1zQ2pDO0F1QmxzQ0Q7RUFBdUMsaUJBQUE7Q3ZCcXNDdEM7QXVCcHNDRDtFQUFvQyxpQkFBQTtDdkJ1c0NuQztBdUJ0c0NEO0VBQW9DLGlCQUFBO0N2QnlzQ25DO0F1QnhzQ0Q7O0VBQ3FDLGlCQUFBO0N2QjJzQ3BDO0F1QjFzQ0Q7RUFBMEMsaUJBQUE7Q3ZCNnNDekM7QXVCNXNDRDtFQUEyQyxpQkFBQTtDdkIrc0MxQztBdUI5c0NEO0VBQXdDLGlCQUFBO0N2Qml0Q3ZDO0F1Qmh0Q0Q7RUFBK0IsaUJBQUE7Q3ZCbXRDOUI7QXVCbHRDRDs7RUFDZ0MsaUJBQUE7Q3ZCcXRDL0I7QXVCcHRDRDtFQUFvQyxpQkFBQTtDdkJ1dENuQztBdUJ0dENEO0VBQXVDLGlCQUFBO0N2Qnl0Q3RDO0F1Qnh0Q0Q7RUFBeUMsaUJBQUE7Q3ZCMnRDeEM7QXVCMXRDRDtFQUFxQyxpQkFBQTtDdkI2dENwQztBdUI1dENEO0VBQW1DLGlCQUFBO0N2Qit0Q2xDO0F1Qjl0Q0Q7RUFBb0MsaUJBQUE7Q3ZCaXVDbkM7QXVCaHVDRDtFQUEyQyxpQkFBQTtDdkJtdUMxQztBdUJsdUNEO0VBQXNDLGlCQUFBO0N2QnF1Q3JDO0F1QnB1Q0Q7RUFBeUMsaUJBQUE7Q3ZCdXVDeEM7QXVCdHVDRDtFQUFtQyxpQkFBQTtDdkJ5dUNsQztBdUJ4dUNEO0VBQWtDLGlCQUFBO0N2QjJ1Q2pDO0F1QjF1Q0Q7RUFBeUMsaUJBQUE7Q3ZCNnVDeEM7QXVCNXVDRDtFQUFrQyxpQkFBQTtDdkIrdUNqQztBdUI5dUNEO0VBQW1DLGlCQUFBO0N2Qml2Q2xDO0F1Qmh2Q0Q7RUFBaUMsaUJBQUE7Q3ZCbXZDaEM7QXVCbHZDRDtFQUFvQyxpQkFBQTtDdkJxdkNuQztBdUJwdkNEO0VBQXNDLGlCQUFBO0N2QnV2Q3JDO0F1QnR2Q0Q7RUFBd0MsaUJBQUE7Q3ZCeXZDdkM7QXVCeHZDRDtFQUFtQyxpQkFBQTtDdkIydkNsQztBdUIxdkNEOztFQUNvQyxpQkFBQTtDdkI2dkNuQztBdUI1dkNEO0VBQWtDLGlCQUFBO0N2Qit2Q2pDO0F1Qjl2Q0Q7RUFBa0MsaUJBQUE7Q3ZCaXdDakM7QXVCaHdDRDtFQUF1QyxpQkFBQTtDdkJtd0N0QztBdUJsd0NEO0VBQStCLGlCQUFBO0N2QnF3QzlCO0F1QnB3Q0Q7RUFBaUMsaUJBQUE7Q3ZCdXdDaEM7QXVCdHdDRDtFQUFvQyxpQkFBQTtDdkJ5d0NuQztBdUJ4d0NEO0VBQWdDLGlCQUFBO0N2QjJ3Qy9CO0F1QjF3Q0Q7RUFBdUMsaUJBQUE7Q3ZCNndDdEM7QXVCNXdDRDtFQUF3QyxpQkFBQTtDdkIrd0N2QztBdUI5d0NEO0VBQXVDLGlCQUFBO0N2Qml4Q3RDO0F1Qmh4Q0Q7RUFBcUMsaUJBQUE7Q3ZCbXhDcEM7QXVCbHhDRDtFQUF1QyxpQkFBQTtDdkJxeEN0QztBdUJweENEO0VBQTZDLGlCQUFBO0N2QnV4QzVDO0F1QnR4Q0Q7RUFBOEMsaUJBQUE7Q3ZCeXhDN0M7QXVCeHhDRDtFQUEyQyxpQkFBQTtDdkIyeEMxQztBdUIxeENEO0VBQTZDLGlCQUFBO0N2QjZ4QzVDO0F1QjV4Q0Q7RUFBaUMsaUJBQUE7Q3ZCK3hDaEM7QXVCOXhDRDtFQUFrQyxpQkFBQTtDdkJpeUNqQztBdUJoeUNEO0VBQWlDLGlCQUFBO0N2Qm15Q2hDO0F1Qmx5Q0Q7RUFBa0MsaUJBQUE7Q3ZCcXlDakM7QXVCcHlDRDtFQUFxQyxpQkFBQTtDdkJ1eUNwQztBdUJ0eUNEO0VBQXNDLGlCQUFBO0N2Qnl5Q3JDO0F1Qnh5Q0Q7O0VBQ2lDLGlCQUFBO0N2QjJ5Q2hDO0F1QjF5Q0Q7O0VBQ2dDLGlCQUFBO0N2QjZ5Qy9CO0F1QjV5Q0Q7RUFBaUMsaUJBQUE7Q3ZCK3lDaEM7QXVCOXlDRDtFQUFpQyxpQkFBQTtDdkJpekNoQztBdUJoekNEOztFQUNvQyxpQkFBQTtDdkJtekNuQztBdUJsekNEOztFQUNtQyxpQkFBQTtDdkJxekNsQztBdUJwekNEO0VBQXFDLGlCQUFBO0N2QnV6Q3BDO0F1QnR6Q0Q7O0VBQ29DLGlCQUFBO0N2Qnl6Q25DO0F1Qnh6Q0Q7RUFBa0MsaUJBQUE7Q3ZCMnpDakM7QXVCMXpDRDs7O0VBRWdDLGlCQUFBO0N2QjZ6Qy9CO0F1QjV6Q0Q7RUFBbUMsaUJBQUE7Q3ZCK3pDbEM7QXVCOXpDRDtFQUFtQyxpQkFBQTtDdkJpMENsQztBdUJoMENEO0VBQXlDLGlCQUFBO0N2Qm0wQ3hDO0F1QmwwQ0Q7RUFBcUMsaUJBQUE7Q3ZCcTBDcEM7QXVCcDBDRDtFQUFpQyxpQkFBQTtDdkJ1MENoQztBdUJ0MENEO0VBQWlDLGlCQUFBO0N2QnkwQ2hDO0F1QngwQ0Q7RUFBaUMsaUJBQUE7Q3ZCMjBDaEM7QXVCMTBDRDtFQUFxQyxpQkFBQTtDdkI2MENwQztBdUI1MENEO0VBQTRDLGlCQUFBO0N2QiswQzNDO0F1QjkwQ0Q7RUFBOEMsaUJBQUE7Q3ZCaTFDN0M7QXVCaDFDRDtFQUF1QyxpQkFBQTtDdkJtMUN0QztBdUJsMUNEO0VBQWlDLGlCQUFBO0N2QnExQ2hDO0F1QnAxQ0Q7RUFBc0MsaUJBQUE7Q3ZCdTFDckM7QXVCdDFDRDtFQUFvQyxpQkFBQTtDdkJ5MUNuQztBdUJ4MUNEO0VBQXNDLGlCQUFBO0N2QjIxQ3JDO0F1QjExQ0Q7RUFBdUMsaUJBQUE7Q3ZCNjFDdEM7QXVCNTFDRDtFQUFtQyxpQkFBQTtDdkIrMUNsQztBdUI5MUNEOztFQUNnQyxpQkFBQTtDdkJpMkMvQjtBdUJoMkNEOztFQUNxQyxpQkFBQTtDdkJtMkNwQztBdUJsMkNEOztFQUNvQyxpQkFBQTtDdkJxMkNuQztBdUJwMkNEO0VBQW9DLGlCQUFBO0N2QnUyQ25DO0F1QnQyQ0Q7RUFBb0MsaUJBQUE7Q3ZCeTJDbkM7QXVCeDJDRDs7RUFDZ0MsaUJBQUE7Q3ZCMjJDL0I7QXVCMTJDRDs7RUFDaUMsaUJBQUE7Q3ZCNjJDaEM7QXVCNTJDRDs7RUFDc0MsaUJBQUE7Q3ZCKzJDckM7QXVCOTJDRDtFQUFxQyxpQkFBQTtDdkJpM0NwQztBdUJoM0NEO0VBQXNDLGlCQUFBO0N2Qm0zQ3JDO0F1QmwzQ0Q7O0VBQ2dDLGlCQUFBO0N2QnEzQy9CO0F1QnAzQ0Q7RUFBbUMsaUJBQUE7Q3ZCdTNDbEM7QXVCdDNDRDtFQUFvQyxpQkFBQTtDdkJ5M0NuQztBdUJ4M0NEOztFQUNxQyxpQkFBQTtDdkIyM0NwQztBdUIxM0NEO0VBQXVDLGlCQUFBO0N2QjYzQ3RDO0F1QjUzQ0Q7RUFBb0MsaUJBQUE7Q3ZCKzNDbkM7QXVCOTNDRDtFQUEwQyxpQkFBQTtDdkJpNEN6QztBdUJoNENEO0VBQXdDLGlCQUFBO0N2Qm00Q3ZDO0F1Qmw0Q0Q7RUFBbUMsaUJBQUE7Q3ZCcTRDbEM7QXVCcDRDRDtFQUF1QyxpQkFBQTtDdkJ1NEN0QztBdUJ0NENEO0VBQW9DLGlCQUFBO0N2Qnk0Q25DO0F1Qng0Q0Q7RUFBa0MsaUJBQUE7Q3ZCMjRDakM7QXVCMTRDRDtFQUFrQyxpQkFBQTtDdkI2NENqQztBdUI1NENEO0VBQW1DLGlCQUFBO0N2Qis0Q2xDO0F1Qjk0Q0Q7RUFBdUMsaUJBQUE7Q3ZCaTVDdEM7QXVCaDVDRDtFQUFzQyxpQkFBQTtDdkJtNUNyQztBdUJsNUNEO0VBQXNDLGlCQUFBO0N2QnE1Q3JDO0F1QnA1Q0Q7RUFBcUMsaUJBQUE7Q3ZCdTVDcEM7QXVCdDVDRDtFQUFrQyxpQkFBQTtDdkJ5NUNqQztBdUJ4NUNEO0VBQXVDLGlCQUFBO0N2QjI1Q3RDO0F1QjE1Q0Q7RUFBZ0MsaUJBQUE7Q3ZCNjVDL0I7QXVCNTVDRDtFQUFvQyxpQkFBQTtDdkIrNUNuQztBdUI5NUNEO0VBQXVDLGlCQUFBO0N2Qmk2Q3RDO0F1Qmg2Q0Q7RUFBNkMsaUJBQUE7Q3ZCbTZDNUM7QXVCbDZDRDtFQUE4QyxpQkFBQTtDdkJxNkM3QztBdUJwNkNEO0VBQTJDLGlCQUFBO0N2QnU2QzFDO0F1QnQ2Q0Q7RUFBNkMsaUJBQUE7Q3ZCeTZDNUM7QXVCeDZDRDtFQUFzQyxpQkFBQTtDdkIyNkNyQztBdUIxNkNEO0VBQXVDLGlCQUFBO0N2QjY2Q3RDO0F1QjU2Q0Q7RUFBb0MsaUJBQUE7Q3ZCKzZDbkM7QXVCOTZDRDtFQUFzQyxpQkFBQTtDdkJpN0NyQztBdUJoN0NEO0VBQW1DLGlCQUFBO0N2Qm03Q2xDO0F1Qmw3Q0Q7RUFBa0MsaUJBQUE7Q3ZCcTdDakM7QXVCcDdDRDtFQUFrQyxpQkFBQTtDdkJ1N0NqQztBdUJ0N0NEOztFQUNrQyxpQkFBQTtDdkJ5N0NqQztBdUJ4N0NEO0VBQW9DLGlCQUFBO0N2QjI3Q25DO0F1QjE3Q0Q7RUFBc0MsaUJBQUE7Q3ZCNjdDckM7QXVCNTdDRDtFQUF1QyxpQkFBQTtDdkIrN0N0QztBdUI5N0NEO0VBQW1DLGlCQUFBO0N2Qmk4Q2xDO0F1Qmg4Q0Q7RUFBa0MsaUJBQUE7Q3ZCbThDakM7QXVCbDhDRDs7RUFDaUMsaUJBQUE7Q3ZCcThDaEM7QXVCcDhDRDtFQUFzQyxpQkFBQTtDdkJ1OENyQztBdUJ0OENEO0VBQW9DLGlCQUFBO0N2Qnk4Q25DO0F1Qng4Q0Q7RUFBeUMsaUJBQUE7Q3ZCMjhDeEM7QXVCMThDRDtFQUFtQyxpQkFBQTtDdkI2OENsQztBdUI1OENEO0VBQW1DLGlCQUFBO0N2Qis4Q2xDO0F1Qjk4Q0Q7RUFBaUMsaUJBQUE7Q3ZCaTlDaEM7QXVCaDlDRDtFQUFtQyxpQkFBQTtDdkJtOUNsQztBdUJsOUNEO0VBQXNDLGlCQUFBO0N2QnE5Q3JDO0F1QnA5Q0Q7RUFBa0MsaUJBQUE7Q3ZCdTlDakM7QXVCdDlDRDtFQUEwQyxpQkFBQTtDdkJ5OUN6QztBdUJ4OUNEO0VBQW9DLGlCQUFBO0N2QjI5Q25DO0F1QjE5Q0Q7RUFBZ0MsaUJBQUE7Q3ZCNjlDL0I7QXVCNTlDRDs7RUFDcUMsaUJBQUE7Q3ZCKzlDcEM7QXVCOTlDRDs7O0VBRXVDLGlCQUFBO0N2QmkrQ3RDO0F1QmgrQ0Q7RUFBMEMsaUJBQUE7Q3ZCbStDekM7QXVCbCtDRDtFQUFnQyxpQkFBQTtDdkJxK0MvQjtBdUJwK0NEO0VBQXFDLGlCQUFBO0N2QnUrQ3BDO0F1QnQrQ0Q7O0VBQ3dDLGlCQUFBO0N2QnkrQ3ZDO0F1QngrQ0Q7RUFBb0MsaUJBQUE7Q3ZCMitDbkM7QXVCMStDRDtFQUFnQyxpQkFBQTtDdkI2K0MvQjtBdUI1K0NEO0VBQXVDLGlCQUFBO0N2QisrQ3RDO0F1QjkrQ0Q7RUFBdUMsaUJBQUE7Q3ZCaS9DdEM7QXVCaC9DRDtFQUFxQyxpQkFBQTtDdkJtL0NwQztBdUJsL0NEO0VBQWtDLGlCQUFBO0N2QnEvQ2pDO0F1QnAvQ0Q7RUFBd0MsaUJBQUE7Q3ZCdS9DdkM7QXVCdC9DRDtFQUFzQyxpQkFBQTtDdkJ5L0NyQztBdUJ4L0NEO0VBQTRDLGlCQUFBO0N2QjIvQzNDO0F1QjEvQ0Q7RUFBa0MsaUJBQUE7Q3ZCNi9DakM7QXVCNS9DRDtFQUFzQyxpQkFBQTtDdkIrL0NyQztBdUI5L0NEO0VBQTZDLGlCQUFBO0N2QmlnRDVDO0F1QmhnREQ7RUFBa0MsaUJBQUE7Q3ZCbWdEakM7QXVCbGdERDtFQUFrQyxpQkFBQTtDdkJxZ0RqQztBdUJwZ0REO0VBQStDLGlCQUFBO0N2QnVnRDlDO0F1QnRnREQ7RUFBZ0QsaUJBQUE7Q3ZCeWdEL0M7QXVCeGdERDtFQUE2QyxpQkFBQTtDdkIyZ0Q1QztBdUIxZ0REO0VBQStDLGlCQUFBO0N2QjZnRDlDO0F1QjVnREQ7RUFBaUMsaUJBQUE7Q3ZCK2dEaEM7QXVCOWdERDtFQUFnQyxpQkFBQTtDdkJpaEQvQjtBdUJoaEREO0VBQWtDLGlCQUFBO0N2Qm1oRGpDO0F1QmxoREQ7RUFBc0MsaUJBQUE7Q3ZCcWhEckM7QXVCcGhERDtFQUFvQyxpQkFBQTtDdkJ1aERuQztBdUJ0aEREO0VBQXNDLGlCQUFBO0N2QnloRHJDO0F1QnhoREQ7RUFBc0MsaUJBQUE7Q3ZCMmhEckM7QXVCMWhERDtFQUFzQyxpQkFBQTtDdkI2aERyQztBdUI1aEREO0VBQXVDLGlCQUFBO0N2QitoRHRDO0F1QjloREQ7RUFBa0MsaUJBQUE7Q3ZCaWlEakM7QXVCaGlERDtFQUF3QyxpQkFBQTtDdkJtaUR2QztBdUJsaUREO0VBQTBDLGlCQUFBO0N2QnFpRHpDO0F1QnBpREQ7RUFBb0MsaUJBQUE7Q3ZCdWlEbkM7QXVCdGlERDtFQUFzQyxpQkFBQTtDdkJ5aURyQztBdUJ4aUREO0VBQXdDLGlCQUFBO0N2QjJpRHZDO0F1QjFpREQ7RUFBeUMsaUJBQUE7Q3ZCNmlEeEM7QXVCNWlERDtFQUFnRCxpQkFBQTtDdkIraUQvQztBdUI5aUREO0VBQXdDLGlCQUFBO0N2QmlqRHZDO0F1QmhqREQ7RUFBbUMsaUJBQUE7Q3ZCbWpEbEM7QXVCbGpERDs7RUFDK0MsaUJBQUE7Q3ZCcWpEOUM7QXVCcGpERDs7RUFDNkMsaUJBQUE7Q3ZCdWpENUM7QXVCdGpERDs7RUFDZ0QsaUJBQUE7Q3ZCeWpEL0M7QXVCeGpERDs7RUFDK0IsaUJBQUE7Q3ZCMmpEOUI7QXVCMWpERDtFQUErQixpQkFBQTtDdkI2akQ5QjtBdUI1akREOztFQUMrQixpQkFBQTtDdkIrakQ5QjtBdUI5akREOztFQUMrQixpQkFBQTtDdkJpa0Q5QjtBdUJoa0REOzs7O0VBRytCLGlCQUFBO0N2Qm1rRDlCO0F1QmxrREQ7OztFQUUrQixpQkFBQTtDdkJxa0Q5QjtBdUJwa0REOztFQUMrQixpQkFBQTtDdkJ1a0Q5QjtBdUJ0a0REOztFQUMrQixpQkFBQTtDdkJ5a0Q5QjtBdUJ4a0REO0VBQWdDLGlCQUFBO0N2QjJrRC9CO0F1QjFrREQ7RUFBcUMsaUJBQUE7Q3ZCNmtEcEM7QXVCNWtERDtFQUEwQyxpQkFBQTtDdkIra0R6QztBdUI5a0REO0VBQTJDLGlCQUFBO0N2QmlsRDFDO0F1QmhsREQ7RUFBMkMsaUJBQUE7Q3ZCbWxEMUM7QXVCbGxERDtFQUE0QyxpQkFBQTtDdkJxbEQzQztBdUJwbEREO0VBQTRDLGlCQUFBO0N2QnVsRDNDO0F1QnRsREQ7RUFBNkMsaUJBQUE7Q3ZCeWxENUM7QXVCeGxERDtFQUFxQyxpQkFBQTtDdkIybERwQztBdUIxbEREO0VBQXVDLGlCQUFBO0N2QjZsRHRDO0F1QjVsREQ7RUFBMEMsaUJBQUE7Q3ZCK2xEekM7QXVCOWxERDtFQUFtQyxpQkFBQTtDdkJpbURsQztBdUJobUREO0VBQWdDLGlCQUFBO0N2Qm1tRC9CO0F1QmxtREQ7RUFBdUMsaUJBQUE7Q3ZCcW1EdEM7QXVCcG1ERDtFQUF3QyxpQkFBQTtDdkJ1bUR2QztBdUJ0bUREO0VBQW1DLGlCQUFBO0N2QnltRGxDO0F1QnhtREQ7RUFBMEMsaUJBQUE7Q3ZCMm1EekM7QXVCMW1ERDtFQUFxQyxpQkFBQTtDdkI2bURwQztBdUI1bUREO0VBQWtDLGlCQUFBO0N2QittRGpDO0F1QjltREQ7RUFBK0IsaUJBQUE7Q3ZCaW5EOUI7QXVCaG5ERDtFQUFxQyxpQkFBQTtDdkJtbkRwQztBdUJsbkREO0VBQTRDLGlCQUFBO0N2QnFuRDNDO0F1QnBuREQ7RUFBa0MsaUJBQUE7Q3ZCdW5EakM7QXVCdG5ERDtFQUF5QyxpQkFBQTtDdkJ5bkR4QztBdUJ4bkREO0VBQTJDLGlCQUFBO0N2QjJuRDFDO0F1QjFuREQ7RUFBeUMsaUJBQUE7Q3ZCNm5EeEM7QXVCNW5ERDtFQUEyQyxpQkFBQTtDdkIrbkQxQztBdUI5bkREO0VBQTRDLGlCQUFBO0N2QmlvRDNDO0F1QmhvREQ7RUFBaUMsaUJBQUE7Q3ZCbW9EaEM7QXVCbG9ERDtFQUFtQyxpQkFBQTtDdkJxb0RsQztBdUJwb0REO0VBQW1DLGlCQUFBO0N2QnVvRGxDO0F1QnRvREQ7RUFBaUMsaUJBQUE7Q3ZCeW9EaEM7QXVCeG9ERDtFQUFvQyxpQkFBQTtDdkIyb0RuQztBdUIxb0REO0VBQWlDLGlCQUFBO0N2QjZvRGhDO0F1QjVvREQ7RUFBc0MsaUJBQUE7Q3ZCK29EckM7QXVCOW9ERDtFQUFrQyxpQkFBQTtDdkJpcERqQztBdUJocEREO0VBQWtDLGlCQUFBO0N2Qm1wRGpDO0F1QmxwREQ7RUFBZ0MsaUJBQUE7Q3ZCcXBEL0I7QXVCcHBERDs7RUFDb0MsaUJBQUE7Q3ZCdXBEbkM7QXVCdHBERDtFQUFpQyxpQkFBQTtDdkJ5cERoQztBdUJ4cEREO0VBQWtDLGlCQUFBO0N2QjJwRGpDO0F1QjFwREQ7RUFBbUMsaUJBQUE7Q3ZCNnBEbEM7QXVCNXBERDtFQUErQixpQkFBQTtDdkIrcEQ5QjtBdUI5cEREO0VBQThCLGlCQUFBO0N2QmlxRDdCO0F1QmhxREQ7RUFBaUMsaUJBQUE7Q3ZCbXFEaEM7QXVCbHFERDtFQUFrQyxpQkFBQTtDdkJxcURqQztBdUJwcUREO0VBQXFDLGlCQUFBO0N2QnVxRHBDO0F1QnRxREQ7RUFBMEMsaUJBQUE7Q3ZCeXFEekM7QXVCeHFERDtFQUFnRCxpQkFBQTtDdkIycUQvQztBdUIxcUREO0VBQStDLGlCQUFBO0N2QjZxRDlDO0F1QjVxREQ7O0VBQytDLGlCQUFBO0N2QitxRDlDO0F1QjlxREQ7RUFBd0MsaUJBQUE7Q3ZCaXJEdkM7QXVCaHJERDtFQUFzQyxpQkFBQTtDdkJtckRyQztBdUJsckREO0VBQXdDLGlCQUFBO0N2QnFyRHZDO0F1QnByREQ7O0VBQytCLGlCQUFBO0N2QnVyRDlCO0F1QnRyREQ7RUFBeUMsaUJBQUE7Q3ZCeXJEeEM7QXVCeHJERDtFQUF5QyxpQkFBQTtDdkIyckR4QztBdUIxckREO0VBQWlDLGlCQUFBO0N2QjZyRGhDO0F1QjVyREQ7RUFBMkMsaUJBQUE7Q3ZCK3JEMUM7QXVCOXJERDtFQUFxQyxpQkFBQTtDdkJpc0RwQztBdUJoc0REO0VBQWtDLGlCQUFBO0N2Qm1zRGpDO0F1QmxzREQ7OztFQUVzQyxpQkFBQTtDdkJxc0RyQztBdUJwc0REOztFQUMwQyxpQkFBQTtDdkJ1c0R6QztBdUJ0c0REO0VBQWlDLGlCQUFBO0N2QnlzRGhDO0F1QnhzREQ7RUFBa0MsaUJBQUE7Q3ZCMnNEakM7QXVCMXNERDtFQUFrQyxpQkFBQTtDdkI2c0RqQztBdUI1c0REO0VBQXlDLGlCQUFBO0N2QitzRHhDO0F1QjlzREQ7RUFBOEMsaUJBQUE7Q3ZCaXREN0M7QXVCaHRERDtFQUF1QyxpQkFBQTtDdkJtdER0QztBdUJsdEREO0VBQXFDLGlCQUFBO0N2QnF0RHBDO0F1QnB0REQ7RUFBZ0MsaUJBQUE7Q3ZCdXREL0I7QXVCdHRERDtFQUFzQyxpQkFBQTtDdkJ5dERyQztBdUJ4dEREO0VBQTBDLGlCQUFBO0N2QjJ0RHpDO0F1QjF0REQ7RUFBa0MsaUJBQUE7Q3ZCNnREakM7QXVCNXRERDtFQUFrQyxpQkFBQTtDdkIrdERqQztBdUI5dEREO0VBQW9DLGlCQUFBO0N2Qml1RG5DO0F1Qmh1REQ7RUFBK0IsaUJBQUE7Q3ZCbXVEOUI7QXVCbHVERDtFQUFvQyxpQkFBQTtDdkJxdURuQztBdUJwdUREO0VBQWlDLGlCQUFBO0N2QnV1RGhDO0F1QnR1REQ7RUFBK0IsaUJBQUE7Q3ZCeXVEOUI7QXVCeHVERDtFQUFpQyxpQkFBQTtDdkIydURoQztBdUIxdUREO0VBQWdDLGlCQUFBO0N2QjZ1RC9CO0F1QjV1REQ7RUFBaUMsaUJBQUE7Q3ZCK3VEaEM7QXVCOXVERDtFQUFtQyxpQkFBQTtDdkJpdkRsQztBdUJodkREO0VBQTBDLGlCQUFBO0N2Qm12RHpDO0F1Qmx2REQ7RUFBaUMsaUJBQUE7Q3ZCcXZEaEM7QXVCcHZERDtFQUF3QyxpQkFBQTtDdkJ1dkR2QztBdUJ0dkREO0VBQW1DLGlCQUFBO0N2Qnl2RGxDO0F1Qnh2REQ7O0VBQytCLGlCQUFBO0N2QjJ2RDlCO0F1QjF2REQ7O0VBQ2dDLGlCQUFBO0N2QjZ2RC9CO0F1QjV2REQ7RUFBZ0MsaUJBQUE7Q3ZCK3ZEL0I7QXVCOXZERDtFQUFtQyxpQkFBQTtDdkJpd0RsQztBdUJod0REO0VBQXNDLGlCQUFBO0N2Qm13RHJDO0F1Qmx3REQ7RUFBc0MsaUJBQUE7Q3ZCcXdEckM7QXVCcHdERDtFQUFvQyxpQkFBQTtDdkJ1d0RuQztBdUJ0d0REO0VBQXNDLGlCQUFBO0N2Qnl3RHJDO0F1Qnh3REQ7RUFBdUMsaUJBQUE7Q3ZCMndEdEM7QXVCMXdERDtFQUF3QyxpQkFBQTtDdkI2d0R2QztBdUI1d0REO0VBQTZDLGlCQUFBO0N2Qit3RDVDO0F1Qjl3REQ7OztFQUV3QyxpQkFBQTtDdkJpeER2QztBdUJoeEREOztFQUMwQyxpQkFBQTtDdkJteER6QztBdUJseEREOztFQUN3QyxpQkFBQTtDdkJxeER2QztBdUJweEREOztFQUN3QyxpQkFBQTtDdkJ1eER2QztBdUJ0eEREO0VBQXVDLGlCQUFBO0N2Qnl4RHRDO0F1Qnh4REQ7RUFBZ0MsaUJBQUE7Q3ZCMnhEL0I7QXVCMXhERDtFQUFtQyxpQkFBQTtDdkI2eERsQztBdUI1eEREO0VBQW9DLGlCQUFBO0N2Qit4RG5DO0F1Qjl4REQ7Ozs7O0VBSXFDLGlCQUFBO0N2Qml5RHBDO0F1Qmh5REQ7RUFBMEMsaUJBQUE7Q3ZCbXlEekM7QXVCbHlERDs7RUFDaUMsaUJBQUE7Q3ZCcXlEaEM7QXVCcHlERDs7RUFDa0MsaUJBQUE7Q3ZCdXlEakM7QXVCdHlERDtFQUFzQyxpQkFBQTtDdkJ5eURyQztBdUJ4eUREO0VBQStCLGlCQUFBO0N2QjJ5RDlCO0F1QjF5REQ7RUFBdUMsaUJBQUE7Q3ZCNnlEdEM7QXVCNXlERDtFQUF5QyxpQkFBQTtDdkIreUR4QztBdUI5eUREO0VBQThCLGlCQUFBO0N2Qml6RDdCO0F1Qmh6REQ7O0VBQ2tDLGlCQUFBO0N2Qm16RGpDO0F1Qmx6REQ7O0VBQ3VDLGlCQUFBO0N2QnF6RHRDO0F1QnB6REQ7O0VBQ3lDLGlCQUFBO0N2QnV6RHhDO0F1QnR6REQ7RUFBbUMsaUJBQUE7Q3ZCeXpEbEM7QXVCeHpERDs7RUFDdUMsaUJBQUE7Q3ZCMnpEdEM7QXVCMXpERDtFQUFrQyxpQkFBQTtDdkI2ekRqQztBdUI1ekREO0VBQXFDLGlCQUFBO0N2Qit6RHBDO0F1Qjl6REQ7RUFBbUMsaUJBQUE7Q3ZCaTBEbEM7QXVCaDBERDtFQUFxQyxpQkFBQTtDdkJtMERwQztBdUJsMEREO0VBQTRDLGlCQUFBO0N2QnEwRDNDO0F1QnAwREQ7RUFBZ0MsaUJBQUE7Q3ZCdTBEL0I7QXVCdDBERDs7RUFDb0MsaUJBQUE7Q3ZCeTBEbkM7QXVCeDBERDtFQUErQixpQkFBQTtDdkIyMEQ5QjtBdUIxMEREO0VBQXNDLGlCQUFBO0N2QjYwRHJDO0F1QjUwREQ7RUFBZ0MsaUJBQUE7Q3ZCKzBEL0I7QXVCOTBERDtFQUFzQyxpQkFBQTtDdkJpMURyQztBdUJoMUREO0VBQWtDLGlCQUFBO0N2Qm0xRGpDO0F1QmwxREQ7RUFBZ0MsaUJBQUE7Q3ZCcTFEL0I7QXVCcDFERDtFQUF1QyxpQkFBQTtDdkJ1MUR0QztBdUJ0MUREO0VBQWdDLGlCQUFBO0N2QnkxRC9CO0F1QngxREQ7RUFBc0MsaUJBQUE7Q3ZCMjFEckM7QXVCMTFERDtFQUFrQyxpQkFBQTtDdkI2MURqQztBdUI1MUREO0VBQXlDLGlCQUFBO0N2QisxRHhDO0F1QjkxREQ7RUFBbUMsaUJBQUE7Q3ZCaTJEbEM7QXVCaDJERDtFQUF5QyxpQkFBQTtDdkJtMkR4QztBdUJsMkREO0VBQXVDLGlCQUFBO0N2QnEyRHRDO0F1QnAyREQ7RUFBbUMsaUJBQUE7Q3ZCdTJEbEM7QXVCdDJERDtFQUFxQyxpQkFBQTtDdkJ5MkRwQztBdUJ4MkREO0VBQXFDLGlCQUFBO0N2QjIyRHBDO0F1QjEyREQ7RUFBc0MsaUJBQUE7Q3ZCNjJEckM7QXVCNTJERDtFQUF3QyxpQkFBQTtDdkIrMkR2QztBdUI5MkREO0VBQWlDLGlCQUFBO0N2QmkzRGhDO0F1QmgzREQ7RUFBcUMsaUJBQUE7Q3ZCbTNEcEM7QXVCbDNERDtFQUE4QixpQkFBQTtDdkJxM0Q3QjtBdUJwM0REO0VBQXNDLGlCQUFBO0N2QnUzRHJDO0F1QnQzREQ7RUFBdUMsaUJBQUE7Q3ZCeTNEdEM7QXVCeDNERDtFQUF5QyxpQkFBQTtDdkIyM0R4QztBdUIxM0REO0VBQXNDLGlCQUFBO0N2QjYzRHJDO0F1QjUzREQ7RUFBcUMsaUJBQUE7Q3ZCKzNEcEM7QXVCOTNERDtFQUFzQyxpQkFBQTtDdkJpNERyQztBdUJoNEREO0VBQWtDLGlCQUFBO0N2Qm00RGpDO0F1Qmw0REQ7RUFBeUMsaUJBQUE7Q3ZCcTREeEM7QXVCcDRERDtFQUFzQyxpQkFBQTtDdkJ1NERyQztBdUJ0NEREO0VBQXFDLGlCQUFBO0N2Qnk0RHBDO0F1Qng0REQ7RUFBbUMsaUJBQUE7Q3ZCMjREbEM7QXVCMTRERDtFQUErQixpQkFBQTtDdkI2NEQ5QjtBdUI1NEREO0VBQW1DLGlCQUFBO0N2Qis0RGxDO0F1Qjk0REQ7RUFBcUMsaUJBQUE7Q3ZCaTVEcEM7QXVCaDVERDtFQUE4QixpQkFBQTtDdkJtNUQ3QjtBdUJsNUREOzs7RUFFK0IsaUJBQUE7Q3ZCcTVEOUI7QXVCcDVERDtFQUFvQyxpQkFBQTtDdkJ1NURuQztBdUJ0NUREO0VBQXNDLGlCQUFBO0N2Qnk1RHJDO0F1Qng1REQ7RUFBMEMsaUJBQUE7Q3ZCMjVEekM7QXVCMTVERDtFQUFvQyxpQkFBQTtDdkI2NURuQztBdUI1NUREO0VBQW9DLGlCQUFBO0N2Qis1RG5DO0F1Qjk1REQ7RUFBbUMsaUJBQUE7Q3ZCaTZEbEM7QXVCaDZERDtFQUFrQyxpQkFBQTtDdkJtNkRqQztBdUJsNkREO0VBQXdDLGlCQUFBO0N2QnE2RHZDO0F1QnA2REQ7RUFBdUMsaUJBQUE7Q3ZCdTZEdEM7QXVCdDZERDtFQUFvQyxpQkFBQTtDdkJ5NkRuQztBdUJ4NkREO0VBQXFDLGlCQUFBO0N2QjI2RHBDO0F1QjE2REQ7RUFBMkMsaUJBQUE7Q3ZCNjZEMUM7QXVCNTZERDtFQUFtQyxpQkFBQTtDdkIrNkRsQztBdUI5NkREO0VBQWdDLGlCQUFBO0N2Qmk3RC9CO0F1Qmg3REQ7RUFBdUMsaUJBQUE7Q3ZCbTdEdEM7QXVCbDdERDtFQUFzQyxpQkFBQTtDdkJxN0RyQztBdUJwN0REO0VBQXVDLGlCQUFBO0N2QnU3RHRDO0F1QnQ3REQ7RUFBcUMsaUJBQUE7Q3ZCeTdEcEM7QXVCeDdERDtFQUFpQyxpQkFBQTtDdkIyN0RoQztBdUIxN0REO0VBQWdDLGlCQUFBO0N2QjY3RC9CO0F1QjU3REQ7RUFBbUMsaUJBQUE7Q3ZCKzdEbEM7QXVCOTdERDtFQUF1QyxpQkFBQTtDdkJpOER0QztBdUJoOEREO0VBQTJDLGlCQUFBO0N2Qm04RDFDO0F1Qmw4REQ7RUFBd0MsaUJBQUE7Q3ZCcThEdkM7QXVCcDhERDtFQUF1QyxpQkFBQTtDdkJ1OER0QztBdUJ0OEREO0VBQXNDLGlCQUFBO0N2Qnk4RHJDO0F1Qng4REQ7RUFBdUMsaUJBQUE7Q3ZCMjhEdEM7QXVCMThERDtFQUF5QyxpQkFBQTtDdkI2OER4QztBdUI1OEREO0VBQXlDLGlCQUFBO0N2Qis4RHhDO0F1Qjk4REQ7RUFBa0MsaUJBQUE7Q3ZCaTlEakM7QXVCaDlERDtFQUE2QyxpQkFBQTtDdkJtOUQ1QztBdUJsOUREO0VBQXVDLGlCQUFBO0N2QnE5RHRDO0F1QnA5REQ7RUFBb0MsaUJBQUE7Q3ZCdTlEbkM7QXVCdDlERDtFQUFrQyxpQkFBQTtDdkJ5OURqQztBdUJ4OUREO0VBQXFDLGlCQUFBO0N2QjI5RHBDO0F1QjE5REQ7RUFBc0MsaUJBQUE7Q3ZCNjlEckM7QXVCNTlERDs7RUFDK0IsaUJBQUE7Q3ZCKzlEOUI7QXVCOTlERDtFQUFtQyxpQkFBQTtDdkJpK0RsQztBdUJoK0REO0VBQWlDLGlCQUFBO0N2Qm0rRGhDO0F1QmwrREQ7RUFBa0MsaUJBQUE7Q3ZCcStEakM7QXVCcCtERDtFQUFrQyxpQkFBQTtDdkJ1K0RqQyIsImZpbGUiOiJMaWIuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmxheW91dC1lZGl0b3IgKiB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmxheW91dC1lZGl0b3IgKjpiZWZvcmUsXG4ubGF5b3V0LWVkaXRvciAqOmFmdGVyIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ubGF5b3V0LWVkaXRvciBodG1sIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4ubGF5b3V0LWVkaXRvciBib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ubGF5b3V0LWVkaXRvciBpbnB1dCxcbi5sYXlvdXQtZWRpdG9yIGJ1dHRvbixcbi5sYXlvdXQtZWRpdG9yIHNlbGVjdCxcbi5sYXlvdXQtZWRpdG9yIHRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG4ubGF5b3V0LWVkaXRvciBhIHtcbiAgY29sb3I6ICMzMzdhYjc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5sYXlvdXQtZWRpdG9yIGE6aG92ZXIsXG4ubGF5b3V0LWVkaXRvciBhOmZvY3VzIHtcbiAgY29sb3I6ICMyMzUyN2M7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmxheW91dC1lZGl0b3IgYTpmb2N1cyB7XG4gIG91dGxpbmU6IHRoaW4gZG90dGVkO1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuLmxheW91dC1lZGl0b3IgZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuLmxheW91dC1lZGl0b3IgaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5pbWctcmVzcG9uc2l2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi5sYXlvdXQtZWRpdG9yIC5pbWctcm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi5sYXlvdXQtZWRpdG9yIC5pbWctdGh1bWJuYWlsIHtcbiAgcGFkZGluZzogNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4ubGF5b3V0LWVkaXRvciAuaW1nLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5sYXlvdXQtZWRpdG9yIGhyIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2VlZWVlZTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBib3JkZXI6IDA7XG59XG4ubGF5b3V0LWVkaXRvciAuc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLFxuLmxheW91dC1lZGl0b3IgLnNyLW9ubHktZm9jdXNhYmxlOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb250YWluZXIge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmxheW91dC1lZGl0b3IgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDc1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmxheW91dC1lZGl0b3IgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDk3MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5sYXlvdXQtZWRpdG9yIC5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMTcwcHg7XG4gIH1cbn1cbi5sYXlvdXQtZWRpdG9yIC5jb250YWluZXItZmx1aWQge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4ubGF5b3V0LWVkaXRvciAucm93IHtcbiAgbWFyZ2luLWxlZnQ6IC0xNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy0xLCAuY29sLXNtLTEsIC5jb2wtbWQtMSwgLmNvbC1sZy0xLCAuY29sLXhzLTIsIC5jb2wtc20tMiwgLmNvbC1tZC0yLCAuY29sLWxnLTIsIC5jb2wteHMtMywgLmNvbC1zbS0zLCAuY29sLW1kLTMsIC5jb2wtbGctMywgLmNvbC14cy00LCAuY29sLXNtLTQsIC5jb2wtbWQtNCwgLmNvbC1sZy00LCAuY29sLXhzLTUsIC5jb2wtc20tNSwgLmNvbC1tZC01LCAuY29sLWxnLTUsIC5jb2wteHMtNiwgLmNvbC1zbS02LCAuY29sLW1kLTYsIC5jb2wtbGctNiwgLmNvbC14cy03LCAuY29sLXNtLTcsIC5jb2wtbWQtNywgLmNvbC1sZy03LCAuY29sLXhzLTgsIC5jb2wtc20tOCwgLmNvbC1tZC04LCAuY29sLWxnLTgsIC5jb2wteHMtOSwgLmNvbC1zbS05LCAuY29sLW1kLTksIC5jb2wtbGctOSwgLmNvbC14cy0xMCwgLmNvbC1zbS0xMCwgLmNvbC1tZC0xMCwgLmNvbC1sZy0xMCwgLmNvbC14cy0xMSwgLmNvbC1zbS0xMSwgLmNvbC1tZC0xMSwgLmNvbC1sZy0xMSwgLmNvbC14cy0xMiwgLmNvbC1zbS0xMiwgLmNvbC1tZC0xMiwgLmNvbC1sZy0xMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTEsIC5jb2wteHMtMiwgLmNvbC14cy0zLCAuY29sLXhzLTQsIC5jb2wteHMtNSwgLmNvbC14cy02LCAuY29sLXhzLTcsIC5jb2wteHMtOCwgLmNvbC14cy05LCAuY29sLXhzLTEwLCAuY29sLXhzLTExLCAuY29sLXhzLTEyIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTEyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTExIHtcbiAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtMTAge1xuICB3aWR0aDogODMuMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy05IHtcbiAgd2lkdGg6IDc1JTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtOCB7XG4gIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTcge1xuICB3aWR0aDogNTguMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy02IHtcbiAgd2lkdGg6IDUwJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtNSB7XG4gIHdpZHRoOiA0MS42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTQge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy0zIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtMiB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLTEge1xuICB3aWR0aDogOC4zMzMzMzMzMyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1bGwtMTIge1xuICByaWdodDogMTAwJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVsbC0xMSB7XG4gIHJpZ2h0OiA5MS42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1bGwtMTAge1xuICByaWdodDogODMuMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTkge1xuICByaWdodDogNzUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTgge1xuICByaWdodDogNjYuNjY2NjY2NjclO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTcge1xuICByaWdodDogNTguMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTYge1xuICByaWdodDogNTAlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTUge1xuICByaWdodDogNDEuNjY2NjY2NjclO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTQge1xuICByaWdodDogMzMuMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTMge1xuICByaWdodDogMjUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTIge1xuICByaWdodDogMTYuNjY2NjY2NjclO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdWxsLTEge1xuICByaWdodDogOC4zMzMzMzMzMyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1bGwtMCB7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdXNoLTEyIHtcbiAgbGVmdDogMTAwJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVzaC0xMSB7XG4gIGxlZnQ6IDkxLjY2NjY2NjY3JTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVzaC0xMCB7XG4gIGxlZnQ6IDgzLjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVzaC05IHtcbiAgbGVmdDogNzUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdXNoLTgge1xuICBsZWZ0OiA2Ni42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1c2gtNyB7XG4gIGxlZnQ6IDU4LjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVzaC02IHtcbiAgbGVmdDogNTAlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdXNoLTUge1xuICBsZWZ0OiA0MS42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1c2gtNCB7XG4gIGxlZnQ6IDMzLjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtcHVzaC0zIHtcbiAgbGVmdDogMjUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdXNoLTIge1xuICBsZWZ0OiAxNi42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLXB1c2gtMSB7XG4gIGxlZnQ6IDguMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1wdXNoLTAge1xuICBsZWZ0OiBhdXRvO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1vZmZzZXQtMTIge1xuICBtYXJnaW4tbGVmdDogMTAwJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtb2Zmc2V0LTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbn1cbi5sYXlvdXQtZWRpdG9yIC5jb2wteHMtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG59XG4ubGF5b3V0LWVkaXRvciAuY29sLXhzLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xufVxuLmxheW91dC1lZGl0b3IgLmNvbC14cy1vZmZzZXQtMCB7XG4gIG1hcmdpbi1sZWZ0OiAwJTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTEsIC5jb2wtc20tMiwgLmNvbC1zbS0zLCAuY29sLXNtLTQsIC5jb2wtc20tNSwgLmNvbC1zbS02LCAuY29sLXNtLTcsIC5jb2wtc20tOCwgLmNvbC1zbS05LCAuY29sLXNtLTEwLCAuY29sLXNtLTExLCAuY29sLXNtLTEyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1bGwtMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTUge1xuICAgIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVzaC0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVzaC0xMCB7XG4gICAgbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVzaC05IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdXNoLTgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVzaC02IHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdXNoLTUge1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1c2gtNCB7XG4gICAgbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdXNoLTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLXB1c2gtMSB7XG4gICAgbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtc20tb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLXNtLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1zbS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC0xLCAuY29sLW1kLTIsIC5jb2wtbWQtMywgLmNvbC1tZC00LCAuY29sLW1kLTUsIC5jb2wtbWQtNiwgLmNvbC1tZC03LCAuY29sLW1kLTgsIC5jb2wtbWQtOSwgLmNvbC1tZC0xMCwgLmNvbC1tZC0xMSwgLmNvbC1tZC0xMiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC0xMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtOSB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC03IHtcbiAgICB3aWR0aDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtNiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtMyB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdWxsLTEyIHtcbiAgICByaWdodDogMTAwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1bGwtMTEge1xuICAgIHJpZ2h0OiA5MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdWxsLTEwIHtcbiAgICByaWdodDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC05IHtcbiAgICByaWdodDogNzUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC04IHtcbiAgICByaWdodDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC03IHtcbiAgICByaWdodDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC02IHtcbiAgICByaWdodDogNTAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC01IHtcbiAgICByaWdodDogNDEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC00IHtcbiAgICByaWdodDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC0zIHtcbiAgICByaWdodDogMjUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC0yIHtcbiAgICByaWdodDogMTYuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVsbC0xIHtcbiAgICByaWdodDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdWxsLTAge1xuICAgIHJpZ2h0OiBhdXRvO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVzaC0xMiB7XG4gICAgbGVmdDogMTAwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1c2gtMTEge1xuICAgIGxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1c2gtMTAge1xuICAgIGxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1c2gtOSB7XG4gICAgbGVmdDogNzUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVzaC04IHtcbiAgICBsZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdXNoLTcge1xuICAgIGxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1c2gtNiB7XG4gICAgbGVmdDogNTAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVzaC01IHtcbiAgICBsZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdXNoLTQge1xuICAgIGxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLXB1c2gtMyB7XG4gICAgbGVmdDogMjUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVzaC0yIHtcbiAgICBsZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1wdXNoLTEge1xuICAgIGxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtcHVzaC0wIHtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtb2Zmc2V0LTEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLW1kLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1tZC1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbWQtb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTEsIC5jb2wtbGctMiwgLmNvbC1sZy0zLCAuY29sLWxnLTQsIC5jb2wtbGctNSwgLmNvbC1sZy02LCAuY29sLWxnLTcsIC5jb2wtbGctOCwgLmNvbC1sZy05LCAuY29sLWxnLTEwLCAuY29sLWxnLTExLCAuY29sLWxnLTEyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTEyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy05IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy02IHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy0zIHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1bGwtMTIge1xuICAgIHJpZ2h0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVsbC0xMSB7XG4gICAgcmlnaHQ6IDkxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1bGwtMTAge1xuICAgIHJpZ2h0OiA4My4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTkge1xuICAgIHJpZ2h0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTgge1xuICAgIHJpZ2h0OiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTcge1xuICAgIHJpZ2h0OiA1OC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTYge1xuICAgIHJpZ2h0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTUge1xuICAgIHJpZ2h0OiA0MS42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTQge1xuICAgIHJpZ2h0OiAzMy4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTMge1xuICAgIHJpZ2h0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTIge1xuICAgIHJpZ2h0OiAxNi42NjY2NjY2NyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdWxsLTEge1xuICAgIHJpZ2h0OiA4LjMzMzMzMzMzJTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1bGwtMCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdXNoLTEyIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVzaC0xMSB7XG4gICAgbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVzaC0xMCB7XG4gICAgbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVzaC05IHtcbiAgICBsZWZ0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdXNoLTgge1xuICAgIGxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1c2gtNyB7XG4gICAgbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVzaC02IHtcbiAgICBsZWZ0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdXNoLTUge1xuICAgIGxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1c2gtNCB7XG4gICAgbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctcHVzaC0zIHtcbiAgICBsZWZ0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdXNoLTIge1xuICAgIGxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLXB1c2gtMSB7XG4gICAgbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1wdXNoLTAge1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1vZmZzZXQtMTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjclO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5sYXlvdXQtZWRpdG9yIC5jb2wtbGctb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY2NjY3JTtcbiAgfVxuICAubGF5b3V0LWVkaXRvciAuY29sLWxnLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMyU7XG4gIH1cbiAgLmxheW91dC1lZGl0b3IgLmNvbC1sZy1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xuICB9XG59XG4uY2xlYXJmaXg6YmVmb3JlLFxuLmNsZWFyZml4OmFmdGVyLFxuLmxheW91dC1lZGl0b3IgLmNvbnRhaW5lcjpiZWZvcmUsXG4ubGF5b3V0LWVkaXRvciAuY29udGFpbmVyOmFmdGVyLFxuLmxheW91dC1lZGl0b3IgLmNvbnRhaW5lci1mbHVpZDpiZWZvcmUsXG4ubGF5b3V0LWVkaXRvciAuY29udGFpbmVyLWZsdWlkOmFmdGVyLFxuLmxheW91dC1lZGl0b3IgLnJvdzpiZWZvcmUsXG4ubGF5b3V0LWVkaXRvciAucm93OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuLmNsZWFyZml4OmFmdGVyLFxuLmxheW91dC1lZGl0b3IgLmNvbnRhaW5lcjphZnRlcixcbi5sYXlvdXQtZWRpdG9yIC5jb250YWluZXItZmx1aWQ6YWZ0ZXIsXG4ubGF5b3V0LWVkaXRvciAucm93OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4uY2VudGVyLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4ucHVsbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xufVxuLnB1bGwtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udGV4dC1oaWRlIHtcbiAgZm9udDogMC8wIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG59XG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cbi5hZmZpeCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuLyohXG4gKiAgRm9udCBBd2Vzb21lIDQuMy4wIGJ5IEBkYXZlZ2FuZHkgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8gLSBAZm9udGF3ZXNvbWVcbiAqICBMaWNlbnNlIC0gaHR0cDovL2ZvbnRhd2Vzb21lLmlvL2xpY2Vuc2UgKEZvbnQ6IFNJTCBPRkwgMS4xLCBDU1M6IE1JVCBMaWNlbnNlKVxuICovXG4vKiBGT05UIFBBVEhcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7XG4gIHNyYzogdXJsKCdGb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD92PTQuMy4wJyk7XG4gIHNyYzogdXJsKCdGb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjMuMCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdGb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmYyP3Y9NC4zLjAnKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnRm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9NC4zLjAnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCdGb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuMy4wJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ0ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQuc3ZnP3Y9NC4zLjAjZm9udGF3ZXNvbWVyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLmZhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxNHB4LzEgRm9udEF3ZXNvbWU7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbn1cbi8qIG1ha2VzIHRoZSBmb250IDMzJSBsYXJnZXIgcmVsYXRpdmUgdG8gdGhlIGljb24gY29udGFpbmVyICovXG4uZmEtbGcge1xuICBmb250LXNpemU6IDEuMzMzMzMzMzNlbTtcbiAgbGluZS1oZWlnaHQ6IDAuNzVlbTtcbiAgdmVydGljYWwtYWxpZ246IC0xNSU7XG59XG4uZmEtMngge1xuICBmb250LXNpemU6IDJlbTtcbn1cbi5mYS0zeCB7XG4gIGZvbnQtc2l6ZTogM2VtO1xufVxuLmZhLTR4IHtcbiAgZm9udC1zaXplOiA0ZW07XG59XG4uZmEtNXgge1xuICBmb250LXNpemU6IDVlbTtcbn1cbi5mYS1mdyB7XG4gIHdpZHRoOiAxLjI4NTcxNDI5ZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5mYS11bCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLWxlZnQ6IDIuMTQyODU3MTRlbTtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuLmZhLXVsID4gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZmEtbGkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0yLjE0Mjg1NzE0ZW07XG4gIHdpZHRoOiAyLjE0Mjg1NzE0ZW07XG4gIHRvcDogMC4xNDI4NTcxNGVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZmEtbGkuZmEtbGcge1xuICBsZWZ0OiAtMS44NTcxNDI4NmVtO1xufVxuLmZhLWJvcmRlciB7XG4gIHBhZGRpbmc6IC4yZW0gLjI1ZW0gLjE1ZW07XG4gIGJvcmRlcjogc29saWQgMC4wOGVtICNlZWU7XG4gIGJvcmRlci1yYWRpdXM6IC4xZW07XG59XG4ucHVsbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5wdWxsLWxlZnQge1xuICBmbG9hdDogbGVmdDtcbn1cbi5mYS5wdWxsLWxlZnQge1xuICBtYXJnaW4tcmlnaHQ6IC4zZW07XG59XG4uZmEucHVsbC1yaWdodCB7XG4gIG1hcmdpbi1sZWZ0OiAuM2VtO1xufVxuLmZhLXNwaW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG4gIGFuaW1hdGlvbjogZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG59XG4uZmEtcHVsc2Uge1xuICAtd2Via2l0LWFuaW1hdGlvbjogZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTtcbiAgYW5pbWF0aW9uOiBmYS1zcGluIDFzIGluZmluaXRlIHN0ZXBzKDgpO1xufVxuQC13ZWJraXQta2V5ZnJhbWVzIGZhLXNwaW4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYS1zcGluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gIH1cbn1cbi5mYS1yb3RhdGUtOTAge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTEpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuLmZhLXJvdGF0ZS0xODAge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuLmZhLXJvdGF0ZS0yNzAge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTMpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xufVxuLmZhLWZsaXAtaG9yaXpvbnRhbCB7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MCwgbWlycm9yPTEpO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xufVxuLmZhLWZsaXAtdmVydGljYWwge1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsIG1pcnJvcj0xKTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbn1cbjpyb290IC5mYS1yb3RhdGUtOTAsXG46cm9vdCAuZmEtcm90YXRlLTE4MCxcbjpyb290IC5mYS1yb3RhdGUtMjcwLFxuOnJvb3QgLmZhLWZsaXAtaG9yaXpvbnRhbCxcbjpyb290IC5mYS1mbGlwLXZlcnRpY2FsIHtcbiAgZmlsdGVyOiBub25lO1xufVxuLmZhLXN0YWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyZW07XG4gIGhlaWdodDogMmVtO1xuICBsaW5lLWhlaWdodDogMmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmZhLXN0YWNrLTF4LFxuLmZhLXN0YWNrLTJ4IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmZhLXN0YWNrLTF4IHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG4uZmEtc3RhY2stMngge1xuICBmb250LXNpemU6IDJlbTtcbn1cbi5mYS1pbnZlcnNlIHtcbiAgY29sb3I6ICNmZmY7XG59XG4vKiBGb250IEF3ZXNvbWUgdXNlcyB0aGUgVW5pY29kZSBQcml2YXRlIFVzZSBBcmVhIChQVUEpIHRvIGVuc3VyZSBzY3JlZW5cbiAgIHJlYWRlcnMgZG8gbm90IHJlYWQgb2ZmIHJhbmRvbSBjaGFyYWN0ZXJzIHRoYXQgcmVwcmVzZW50IGljb25zICovXG4uZmEtZ2xhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDBcIjtcbn1cbi5mYS1tdXNpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwMVwiO1xufVxuLmZhLXNlYXJjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwMlwiO1xufVxuLmZhLWVudmVsb3BlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDNcIjtcbn1cbi5mYS1oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNFwiO1xufVxuLmZhLXN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDVcIjtcbn1cbi5mYS1zdGFyLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDZcIjtcbn1cbi5mYS11c2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA3XCI7XG59XG4uZmEtZmlsbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwOFwiO1xufVxuLmZhLXRoLWxhcmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA5XCI7XG59XG4uZmEtdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGFcIjtcbn1cbi5mYS10aC1saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBiXCI7XG59XG4uZmEtY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGNcIjtcbn1cbi5mYS1yZW1vdmU6YmVmb3JlLFxuLmZhLWNsb3NlOmJlZm9yZSxcbi5mYS10aW1lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuLmZhLXNlYXJjaC1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG4uZmEtc2VhcmNoLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEwXCI7XG59XG4uZmEtcG93ZXItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDExXCI7XG59XG4uZmEtc2lnbmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEyXCI7XG59XG4uZmEtZ2VhcjpiZWZvcmUsXG4uZmEtY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEzXCI7XG59XG4uZmEtdHJhc2gtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxNFwiO1xufVxuLmZhLWhvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTVcIjtcbn1cbi5mYS1maWxlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTZcIjtcbn1cbi5mYS1jbG9jay1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE3XCI7XG59XG4uZmEtcm9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxOFwiO1xufVxuLmZhLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE5XCI7XG59XG4uZmEtYXJyb3ctY2lyY2xlLW8tZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxYVwiO1xufVxuLmZhLWFycm93LWNpcmNsZS1vLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDFiXCI7XG59XG4uZmEtaW5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWNcIjtcbn1cbi5mYS1wbGF5LWNpcmNsZS1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDFkXCI7XG59XG4uZmEtcm90YXRlLXJpZ2h0OmJlZm9yZSxcbi5mYS1yZXBlYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMWVcIjtcbn1cbi5mYS1yZWZyZXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIxXCI7XG59XG4uZmEtbGlzdC1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjJcIjtcbn1cbi5mYS1sb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIzXCI7XG59XG4uZmEtZmxhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyNFwiO1xufVxuLmZhLWhlYWRwaG9uZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjVcIjtcbn1cbi5mYS12b2x1bWUtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI2XCI7XG59XG4uZmEtdm9sdW1lLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjdcIjtcbn1cbi5mYS12b2x1bWUtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjhcIjtcbn1cbi5mYS1xcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjlcIjtcbn1cbi5mYS1iYXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJhXCI7XG59XG4uZmEtdGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJiXCI7XG59XG4uZmEtdGFnczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyY1wiO1xufVxuLmZhLWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmRcIjtcbn1cbi5mYS1ib29rbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyZVwiO1xufVxuLmZhLXByaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJmXCI7XG59XG4uZmEtY2FtZXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMwXCI7XG59XG4uZmEtZm9udDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzMVwiO1xufVxuLmZhLWJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzJcIjtcbn1cbi5mYS1pdGFsaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzNcIjtcbn1cbi5mYS10ZXh0LWhlaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzNFwiO1xufVxuLmZhLXRleHQtd2lkdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzVcIjtcbn1cbi5mYS1hbGlnbi1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM2XCI7XG59XG4uZmEtYWxpZ24tY2VudGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM3XCI7XG59XG4uZmEtYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzhcIjtcbn1cbi5mYS1hbGlnbi1qdXN0aWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM5XCI7XG59XG4uZmEtbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzYVwiO1xufVxuLmZhLWRlZGVudDpiZWZvcmUsXG4uZmEtb3V0ZGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzYlwiO1xufVxuLmZhLWluZGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzY1wiO1xufVxuLmZhLXZpZGVvLWNhbWVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZFwiO1xufVxuLmZhLXBob3RvOmJlZm9yZSxcbi5mYS1pbWFnZTpiZWZvcmUsXG4uZmEtcGljdHVyZS1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNlXCI7XG59XG4uZmEtcGVuY2lsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQwXCI7XG59XG4uZmEtbWFwLW1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MVwiO1xufVxuLmZhLWFkanVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MlwiO1xufVxuLmZhLXRpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDNcIjtcbn1cbi5mYS1lZGl0OmJlZm9yZSxcbi5mYS1wZW5jaWwtc3F1YXJlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDRcIjtcbn1cbi5mYS1zaGFyZS1zcXVhcmUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0NVwiO1xufVxuLmZhLWNoZWNrLXNxdWFyZS1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ2XCI7XG59XG4uZmEtYXJyb3dzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ3XCI7XG59XG4uZmEtc3RlcC1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0OFwiO1xufVxuLmZhLWZhc3QtYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDlcIjtcbn1cbi5mYS1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0YVwiO1xufVxuLmZhLXBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGJcIjtcbn1cbi5mYS1wYXVzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0Y1wiO1xufVxuLmZhLXN0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGRcIjtcbn1cbi5mYS1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDRlXCI7XG59XG4uZmEtZmFzdC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUwXCI7XG59XG4uZmEtc3RlcC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUxXCI7XG59XG4uZmEtZWplY3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTJcIjtcbn1cbi5mYS1jaGV2cm9uLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTNcIjtcbn1cbi5mYS1jaGV2cm9uLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU0XCI7XG59XG4uZmEtcGx1cy1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTVcIjtcbn1cbi5mYS1taW51cy1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTZcIjtcbn1cbi5mYS10aW1lcy1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTdcIjtcbn1cbi5mYS1jaGVjay1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNThcIjtcbn1cbi5mYS1xdWVzdGlvbi1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTlcIjtcbn1cbi5mYS1pbmZvLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1YVwiO1xufVxuLmZhLWNyb3NzaGFpcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNWJcIjtcbn1cbi5mYS10aW1lcy1jaXJjbGUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1Y1wiO1xufVxuLmZhLWNoZWNrLWNpcmNsZS1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDVkXCI7XG59XG4uZmEtYmFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDVlXCI7XG59XG4uZmEtYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2MFwiO1xufVxuLmZhLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDYxXCI7XG59XG4uZmEtYXJyb3ctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjJcIjtcbn1cbi5mYS1hcnJvdy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDYzXCI7XG59XG4uZmEtbWFpbC1mb3J3YXJkOmJlZm9yZSxcbi5mYS1zaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NFwiO1xufVxuLmZhLWV4cGFuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NVwiO1xufVxuLmZhLWNvbXByZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY2XCI7XG59XG4uZmEtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2N1wiO1xufVxuLmZhLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY4XCI7XG59XG4uZmEtYXN0ZXJpc2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjlcIjtcbn1cbi5mYS1leGNsYW1hdGlvbi1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmFcIjtcbn1cbi5mYS1naWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZiXCI7XG59XG4uZmEtbGVhZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2Y1wiO1xufVxuLmZhLWZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmRcIjtcbn1cbi5mYS1leWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmVcIjtcbn1cbi5mYS1leWUtc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzBcIjtcbn1cbi5mYS13YXJuaW5nOmJlZm9yZSxcbi5mYS1leGNsYW1hdGlvbi10cmlhbmdsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3MVwiO1xufVxuLmZhLXBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcyXCI7XG59XG4uZmEtY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzNcIjtcbn1cbi5mYS1yYW5kb206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzRcIjtcbn1cbi5mYS1jb21tZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc1XCI7XG59XG4uZmEtbWFnbmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc2XCI7XG59XG4uZmEtY2hldnJvbi11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3N1wiO1xufVxuLmZhLWNoZXZyb24tZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3OFwiO1xufVxuLmZhLXJldHdlZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzlcIjtcbn1cbi5mYS1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdhXCI7XG59XG4uZmEtZm9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdiXCI7XG59XG4uZmEtZm9sZGVyLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwN2NcIjtcbn1cbi5mYS1hcnJvd3MtdjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3ZFwiO1xufVxuLmZhLWFycm93cy1oOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdlXCI7XG59XG4uZmEtYmFyLWNoYXJ0LW86YmVmb3JlLFxuLmZhLWJhci1jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4MFwiO1xufVxuLmZhLXR3aXR0ZXItc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgxXCI7XG59XG4uZmEtZmFjZWJvb2stc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgyXCI7XG59XG4uZmEtY2FtZXJhLXJldHJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDgzXCI7XG59XG4uZmEta2V5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg0XCI7XG59XG4uZmEtZ2VhcnM6YmVmb3JlLFxuLmZhLWNvZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODVcIjtcbn1cbi5mYS1jb21tZW50czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NlwiO1xufVxuLmZhLXRodW1icy1vLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg3XCI7XG59XG4uZmEtdGh1bWJzLW8tZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OFwiO1xufVxuLmZhLXN0YXItaGFsZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OVwiO1xufVxuLmZhLWhlYXJ0LW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGFcIjtcbn1cbi5mYS1zaWduLW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4YlwiO1xufVxuLmZhLWxpbmtlZGluLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4Y1wiO1xufVxuLmZhLXRodW1iLXRhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGRcIjtcbn1cbi5mYS1leHRlcm5hbC1saW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDhlXCI7XG59XG4uZmEtc2lnbi1pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5MFwiO1xufVxuLmZhLXRyb3BoeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5MVwiO1xufVxuLmZhLWdpdGh1Yi1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTJcIjtcbn1cbi5mYS11cGxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTNcIjtcbn1cbi5mYS1sZW1vbi1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk0XCI7XG59XG4uZmEtcGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTVcIjtcbn1cbi5mYS1zcXVhcmUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5NlwiO1xufVxuLmZhLWJvb2ttYXJrLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOTdcIjtcbn1cbi5mYS1waG9uZS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOThcIjtcbn1cbi5mYS10d2l0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk5XCI7XG59XG4uZmEtZmFjZWJvb2stZjpiZWZvcmUsXG4uZmEtZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWFcIjtcbn1cbi5mYS1naXRodWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWJcIjtcbn1cbi5mYS11bmxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWNcIjtcbn1cbi5mYS1jcmVkaXQtY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5ZFwiO1xufVxuLmZhLXJzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5ZVwiO1xufVxuLmZhLWhkZC1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGEwXCI7XG59XG4uZmEtYnVsbGhvcm46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTFcIjtcbn1cbi5mYS1iZWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYzXCI7XG59XG4uZmEtY2VydGlmaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTNcIjtcbn1cbi5mYS1oYW5kLW8tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTRcIjtcbn1cbi5mYS1oYW5kLW8tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNVwiO1xufVxuLmZhLWhhbmQtby11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNlwiO1xufVxuLmZhLWhhbmQtby1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE3XCI7XG59XG4uZmEtYXJyb3ctY2lyY2xlLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYThcIjtcbn1cbi5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTlcIjtcbn1cbi5mYS1hcnJvdy1jaXJjbGUtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWFcIjtcbn1cbi5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhYlwiO1xufVxuLmZhLWdsb2JlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFjXCI7XG59XG4uZmEtd3JlbmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFkXCI7XG59XG4uZmEtdGFza3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWVcIjtcbn1cbi5mYS1maWx0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjBcIjtcbn1cbi5mYS1icmllZmNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjFcIjtcbn1cbi5mYS1hcnJvd3MtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIyXCI7XG59XG4uZmEtZ3JvdXA6YmVmb3JlLFxuLmZhLXVzZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMwXCI7XG59XG4uZmEtY2hhaW46YmVmb3JlLFxuLmZhLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzFcIjtcbn1cbi5mYS1jbG91ZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMlwiO1xufVxuLmZhLWZsYXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMzXCI7XG59XG4uZmEtY3V0OmJlZm9yZSxcbi5mYS1zY2lzc29yczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNFwiO1xufVxuLmZhLWNvcHk6YmVmb3JlLFxuLmZhLWZpbGVzLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzVcIjtcbn1cbi5mYS1wYXBlcmNsaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzZcIjtcbn1cbi5mYS1zYXZlOmJlZm9yZSxcbi5mYS1mbG9wcHktbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjN1wiO1xufVxuLmZhLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOFwiO1xufVxuLmZhLW5hdmljb246YmVmb3JlLFxuLmZhLXJlb3JkZXI6YmVmb3JlLFxuLmZhLWJhcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzlcIjtcbn1cbi5mYS1saXN0LXVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNhXCI7XG59XG4uZmEtbGlzdC1vbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjYlwiO1xufVxuLmZhLXN0cmlrZXRocm91Z2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2NcIjtcbn1cbi5mYS11bmRlcmxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2RcIjtcbn1cbi5mYS10YWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjZVwiO1xufVxuLmZhLW1hZ2ljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQwXCI7XG59XG4uZmEtdHJ1Y2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDFcIjtcbn1cbi5mYS1waW50ZXJlc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDJcIjtcbn1cbi5mYS1waW50ZXJlc3Qtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQzXCI7XG59XG4uZmEtZ29vZ2xlLXBsdXMtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ0XCI7XG59XG4uZmEtZ29vZ2xlLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDVcIjtcbn1cbi5mYS1tb25leTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkNlwiO1xufVxuLmZhLWNhcmV0LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDdcIjtcbn1cbi5mYS1jYXJldC11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkOFwiO1xufVxuLmZhLWNhcmV0LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDlcIjtcbn1cbi5mYS1jYXJldC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkYVwiO1xufVxuLmZhLWNvbHVtbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGJcIjtcbn1cbi5mYS11bnNvcnRlZDpiZWZvcmUsXG4uZmEtc29ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkY1wiO1xufVxuLmZhLXNvcnQtZG93bjpiZWZvcmUsXG4uZmEtc29ydC1kZXNjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRkXCI7XG59XG4uZmEtc29ydC11cDpiZWZvcmUsXG4uZmEtc29ydC1hc2M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGVcIjtcbn1cbi5mYS1lbnZlbG9wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMFwiO1xufVxuLmZhLWxpbmtlZGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUxXCI7XG59XG4uZmEtcm90YXRlLWxlZnQ6YmVmb3JlLFxuLmZhLXVuZG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTJcIjtcbn1cbi5mYS1sZWdhbDpiZWZvcmUsXG4uZmEtZ2F2ZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTNcIjtcbn1cbi5mYS1kYXNoYm9hcmQ6YmVmb3JlLFxuLmZhLXRhY2hvbWV0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTRcIjtcbn1cbi5mYS1jb21tZW50LW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTVcIjtcbn1cbi5mYS1jb21tZW50cy1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU2XCI7XG59XG4uZmEtZmxhc2g6YmVmb3JlLFxuLmZhLWJvbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTdcIjtcbn1cbi5mYS1zaXRlbWFwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU4XCI7XG59XG4uZmEtdW1icmVsbGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTlcIjtcbn1cbi5mYS1wYXN0ZTpiZWZvcmUsXG4uZmEtY2xpcGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGVhXCI7XG59XG4uZmEtbGlnaHRidWxiLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZWJcIjtcbn1cbi5mYS1leGNoYW5nZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlY1wiO1xufVxuLmZhLWNsb3VkLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGVkXCI7XG59XG4uZmEtY2xvdWQtdXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGVlXCI7XG59XG4uZmEtdXNlci1tZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMFwiO1xufVxuLmZhLXN0ZXRob3Njb3BlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYxXCI7XG59XG4uZmEtc3VpdGNhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjJcIjtcbn1cbi5mYS1iZWxsLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTJcIjtcbn1cbi5mYS1jb2ZmZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjRcIjtcbn1cbi5mYS1jdXRsZXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY1XCI7XG59XG4uZmEtZmlsZS10ZXh0LW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjZcIjtcbn1cbi5mYS1idWlsZGluZy1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY3XCI7XG59XG4uZmEtaG9zcGl0YWwtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmOFwiO1xufVxuLmZhLWFtYnVsYW5jZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmOVwiO1xufVxuLmZhLW1lZGtpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmYVwiO1xufVxuLmZhLWZpZ2h0ZXItamV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZiXCI7XG59XG4uZmEtYmVlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmY1wiO1xufVxuLmZhLWgtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZkXCI7XG59XG4uZmEtcGx1cy1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmVcIjtcbn1cbi5mYS1hbmdsZS1kb3VibGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMFwiO1xufVxuLmZhLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMVwiO1xufVxuLmZhLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMlwiO1xufVxuLmZhLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAzXCI7XG59XG4uZmEtYW5nbGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNFwiO1xufVxuLmZhLWFuZ2xlLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG59XG4uZmEtYW5nbGUtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDZcIjtcbn1cbi5mYS1hbmdsZS1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA3XCI7XG59XG4uZmEtZGVza3RvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOFwiO1xufVxuLmZhLWxhcHRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOVwiO1xufVxuLmZhLXRhYmxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwYVwiO1xufVxuLmZhLW1vYmlsZS1waG9uZTpiZWZvcmUsXG4uZmEtbW9iaWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBiXCI7XG59XG4uZmEtY2lyY2xlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGNcIjtcbn1cbi5mYS1xdW90ZS1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBkXCI7XG59XG4uZmEtcXVvdGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGVcIjtcbn1cbi5mYS1zcGlubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEwXCI7XG59XG4uZmEtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTExXCI7XG59XG4uZmEtbWFpbC1yZXBseTpiZWZvcmUsXG4uZmEtcmVwbHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTJcIjtcbn1cbi5mYS1naXRodWItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEzXCI7XG59XG4uZmEtZm9sZGVyLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTRcIjtcbn1cbi5mYS1mb2xkZXItb3Blbi1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE1XCI7XG59XG4uZmEtc21pbGUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExOFwiO1xufVxuLmZhLWZyb3duLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTlcIjtcbn1cbi5mYS1tZWgtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYVwiO1xufVxuLmZhLWdhbWVwYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWJcIjtcbn1cbi5mYS1rZXlib2FyZC1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFjXCI7XG59XG4uZmEtZmxhZy1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFkXCI7XG59XG4uZmEtZmxhZy1jaGVja2VyZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWVcIjtcbn1cbi5mYS10ZXJtaW5hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMFwiO1xufVxuLmZhLWNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjFcIjtcbn1cbi5mYS1tYWlsLXJlcGx5LWFsbDpiZWZvcmUsXG4uZmEtcmVwbHktYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTIyXCI7XG59XG4uZmEtc3Rhci1oYWxmLWVtcHR5OmJlZm9yZSxcbi5mYS1zdGFyLWhhbGYtZnVsbDpiZWZvcmUsXG4uZmEtc3Rhci1oYWxmLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjNcIjtcbn1cbi5mYS1sb2NhdGlvbi1hcnJvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNFwiO1xufVxuLmZhLWNyb3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjVcIjtcbn1cbi5mYS1jb2RlLWZvcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjZcIjtcbn1cbi5mYS11bmxpbms6YmVmb3JlLFxuLmZhLWNoYWluLWJyb2tlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyN1wiO1xufVxuLmZhLXF1ZXN0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI4XCI7XG59XG4uZmEtaW5mbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyOVwiO1xufVxuLmZhLWV4Y2xhbWF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJhXCI7XG59XG4uZmEtc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmJcIjtcbn1cbi5mYS1zdWJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmNcIjtcbn1cbi5mYS1lcmFzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmRcIjtcbn1cbi5mYS1wdXp6bGUtcGllY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmVcIjtcbn1cbi5mYS1taWNyb3Bob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMwXCI7XG59XG4uZmEtbWljcm9waG9uZS1zbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzMVwiO1xufVxuLmZhLXNoaWVsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzMlwiO1xufVxuLmZhLWNhbGVuZGFyLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzNcIjtcbn1cbi5mYS1maXJlLWV4dGluZ3Vpc2hlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNFwiO1xufVxuLmZhLXJvY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNVwiO1xufVxuLmZhLW1heGNkbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNlwiO1xufVxuLmZhLWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzdcIjtcbn1cbi5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzOFwiO1xufVxuLmZhLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM5XCI7XG59XG4uZmEtY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzYVwiO1xufVxuLmZhLWh0bWw1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNiXCI7XG59XG4uZmEtY3NzMzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzY1wiO1xufVxuLmZhLWFuY2hvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzZFwiO1xufVxuLmZhLXVubG9jay1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2VcIjtcbn1cbi5mYS1idWxsc2V5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MFwiO1xufVxuLmZhLWVsbGlwc2lzLWg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDFcIjtcbn1cbi5mYS1lbGxpcHNpcy12OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQyXCI7XG59XG4uZmEtcnNzLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0M1wiO1xufVxuLmZhLXBsYXktY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ0XCI7XG59XG4uZmEtdGlja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ1XCI7XG59XG4uZmEtbWludXMtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ2XCI7XG59XG4uZmEtbWludXMtc3F1YXJlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDdcIjtcbn1cbi5mYS1sZXZlbC11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0OFwiO1xufVxuLmZhLWxldmVsLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDlcIjtcbn1cbi5mYS1jaGVjay1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGFcIjtcbn1cbi5mYS1wZW5jaWwtc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRiXCI7XG59XG4uZmEtZXh0ZXJuYWwtbGluay1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGNcIjtcbn1cbi5mYS1zaGFyZS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGRcIjtcbn1cbi5mYS1jb21wYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRlXCI7XG59XG4uZmEtdG9nZ2xlLWRvd246YmVmb3JlLFxuLmZhLWNhcmV0LXNxdWFyZS1vLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTBcIjtcbn1cbi5mYS10b2dnbGUtdXA6YmVmb3JlLFxuLmZhLWNhcmV0LXNxdWFyZS1vLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG59XG4uZmEtdG9nZ2xlLXJpZ2h0OmJlZm9yZSxcbi5mYS1jYXJldC1zcXVhcmUtby1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MlwiO1xufVxuLmZhLWV1cm86YmVmb3JlLFxuLmZhLWV1cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1M1wiO1xufVxuLmZhLWdicDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NFwiO1xufVxuLmZhLWRvbGxhcjpiZWZvcmUsXG4uZmEtdXNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU1XCI7XG59XG4uZmEtcnVwZWU6YmVmb3JlLFxuLmZhLWlucjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NlwiO1xufVxuLmZhLWNueTpiZWZvcmUsXG4uZmEtcm1iOmJlZm9yZSxcbi5mYS15ZW46YmVmb3JlLFxuLmZhLWpweTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1N1wiO1xufVxuLmZhLXJ1YmxlOmJlZm9yZSxcbi5mYS1yb3VibGU6YmVmb3JlLFxuLmZhLXJ1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OFwiO1xufVxuLmZhLXdvbjpiZWZvcmUsXG4uZmEta3J3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU5XCI7XG59XG4uZmEtYml0Y29pbjpiZWZvcmUsXG4uZmEtYnRjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVhXCI7XG59XG4uZmEtZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1YlwiO1xufVxuLmZhLWZpbGUtdGV4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1Y1wiO1xufVxuLmZhLXNvcnQtYWxwaGEtYXNjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVkXCI7XG59XG4uZmEtc29ydC1hbHBoYS1kZXNjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVlXCI7XG59XG4uZmEtc29ydC1hbW91bnQtYXNjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYwXCI7XG59XG4uZmEtc29ydC1hbW91bnQtZGVzYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MVwiO1xufVxuLmZhLXNvcnQtbnVtZXJpYy1hc2M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjJcIjtcbn1cbi5mYS1zb3J0LW51bWVyaWMtZGVzYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2M1wiO1xufVxuLmZhLXRodW1icy11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2NFwiO1xufVxuLmZhLXRodW1icy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY1XCI7XG59XG4uZmEteW91dHViZS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjZcIjtcbn1cbi5mYS15b3V0dWJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY3XCI7XG59XG4uZmEteGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2OFwiO1xufVxuLmZhLXhpbmctc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY5XCI7XG59XG4uZmEteW91dHViZS1wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZhXCI7XG59XG4uZmEtZHJvcGJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2YlwiO1xufVxuLmZhLXN0YWNrLW92ZXJmbG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZjXCI7XG59XG4uZmEtaW5zdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZkXCI7XG59XG4uZmEtZmxpY2tyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZlXCI7XG59XG4uZmEtYWRuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTcwXCI7XG59XG4uZmEtYml0YnVja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTcxXCI7XG59XG4uZmEtYml0YnVja2V0LXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3MlwiO1xufVxuLmZhLXR1bWJscjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3M1wiO1xufVxuLmZhLXR1bWJsci1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzRcIjtcbn1cbi5mYS1sb25nLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzVcIjtcbn1cbi5mYS1sb25nLWFycm93LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTc2XCI7XG59XG4uZmEtbG9uZy1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTc3XCI7XG59XG4uZmEtbG9uZy1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3OFwiO1xufVxuLmZhLWFwcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTc5XCI7XG59XG4uZmEtd2luZG93czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3YVwiO1xufVxuLmZhLWFuZHJvaWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2JcIjtcbn1cbi5mYS1saW51eDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3Y1wiO1xufVxuLmZhLWRyaWJiYmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdkXCI7XG59XG4uZmEtc2t5cGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2VcIjtcbn1cbi5mYS1mb3Vyc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgwXCI7XG59XG4uZmEtdHJlbGxvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgxXCI7XG59XG4uZmEtZmVtYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgyXCI7XG59XG4uZmEtbWFsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4M1wiO1xufVxuLmZhLWdpdHRpcDpiZWZvcmUsXG4uZmEtZ3JhdGlwYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODRcIjtcbn1cbi5mYS1zdW4tbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NVwiO1xufVxuLmZhLW1vb24tbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NlwiO1xufVxuLmZhLWFyY2hpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODdcIjtcbn1cbi5mYS1idWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODhcIjtcbn1cbi5mYS12azpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4OVwiO1xufVxuLmZhLXdlaWJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThhXCI7XG59XG4uZmEtcmVucmVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThiXCI7XG59XG4uZmEtcGFnZWxpbmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThjXCI7XG59XG4uZmEtc3RhY2stZXhjaGFuZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGRcIjtcbn1cbi5mYS1hcnJvdy1jaXJjbGUtby1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4ZVwiO1xufVxuLmZhLWFycm93LWNpcmNsZS1vLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTBcIjtcbn1cbi5mYS10b2dnbGUtbGVmdDpiZWZvcmUsXG4uZmEtY2FyZXQtc3F1YXJlLW8tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MVwiO1xufVxuLmZhLWRvdC1jaXJjbGUtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MlwiO1xufVxuLmZhLXdoZWVsY2hhaXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTNcIjtcbn1cbi5mYS12aW1lby1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTRcIjtcbn1cbi5mYS10dXJraXNoLWxpcmE6YmVmb3JlLFxuLmZhLXRyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NVwiO1xufVxuLmZhLXBsdXMtc3F1YXJlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTZcIjtcbn1cbi5mYS1zcGFjZS1zaHV0dGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk3XCI7XG59XG4uZmEtc2xhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOThcIjtcbn1cbi5mYS1lbnZlbG9wZS1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTlcIjtcbn1cbi5mYS13b3JkcHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWFcIjtcbn1cbi5mYS1vcGVuaWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWJcIjtcbn1cbi5mYS1pbnN0aXR1dGlvbjpiZWZvcmUsXG4uZmEtYmFuazpiZWZvcmUsXG4uZmEtdW5pdmVyc2l0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5Y1wiO1xufVxuLmZhLW1vcnRhci1ib2FyZDpiZWZvcmUsXG4uZmEtZ3JhZHVhdGlvbi1jYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWRcIjtcbn1cbi5mYS15YWhvbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5ZVwiO1xufVxuLmZhLWdvb2dsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhMFwiO1xufVxuLmZhLXJlZGRpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhMVwiO1xufVxuLmZhLXJlZGRpdC1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTJcIjtcbn1cbi5mYS1zdHVtYmxldXBvbi1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTNcIjtcbn1cbi5mYS1zdHVtYmxldXBvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhNFwiO1xufVxuLmZhLWRlbGljaW91czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhNVwiO1xufVxuLmZhLWRpZ2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTZcIjtcbn1cbi5mYS1waWVkLXBpcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWE3XCI7XG59XG4uZmEtcGllZC1waXBlci1hbHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYThcIjtcbn1cbi5mYS1kcnVwYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTlcIjtcbn1cbi5mYS1qb29tbGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWFcIjtcbn1cbi5mYS1sYW5ndWFnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhYlwiO1xufVxuLmZhLWZheDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhY1wiO1xufVxuLmZhLWJ1aWxkaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFkXCI7XG59XG4uZmEtY2hpbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWVcIjtcbn1cbi5mYS1wYXc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjBcIjtcbn1cbi5mYS1zcG9vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiMVwiO1xufVxuLmZhLWN1YmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjJcIjtcbn1cbi5mYS1jdWJlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiM1wiO1xufVxuLmZhLWJlaGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYjRcIjtcbn1cbi5mYS1iZWhhbmNlLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNVwiO1xufVxuLmZhLXN0ZWFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI2XCI7XG59XG4uZmEtc3RlYW0tc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI3XCI7XG59XG4uZmEtcmVjeWNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiOFwiO1xufVxuLmZhLWF1dG9tb2JpbGU6YmVmb3JlLFxuLmZhLWNhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiOVwiO1xufVxuLmZhLWNhYjpiZWZvcmUsXG4uZmEtdGF4aTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiYVwiO1xufVxuLmZhLXRyZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmJcIjtcbn1cbi5mYS1zcG90aWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJjXCI7XG59XG4uZmEtZGV2aWFudGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiZFwiO1xufVxuLmZhLXNvdW5kY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmVcIjtcbn1cbi5mYS1kYXRhYmFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMFwiO1xufVxuLmZhLWZpbGUtcGRmLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzFcIjtcbn1cbi5mYS1maWxlLXdvcmQtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMlwiO1xufVxuLmZhLWZpbGUtZXhjZWwtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjM1wiO1xufVxuLmZhLWZpbGUtcG93ZXJwb2ludC1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM0XCI7XG59XG4uZmEtZmlsZS1waG90by1vOmJlZm9yZSxcbi5mYS1maWxlLXBpY3R1cmUtbzpiZWZvcmUsXG4uZmEtZmlsZS1pbWFnZS1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM1XCI7XG59XG4uZmEtZmlsZS16aXAtbzpiZWZvcmUsXG4uZmEtZmlsZS1hcmNoaXZlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzZcIjtcbn1cbi5mYS1maWxlLXNvdW5kLW86YmVmb3JlLFxuLmZhLWZpbGUtYXVkaW8tbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjN1wiO1xufVxuLmZhLWZpbGUtbW92aWUtbzpiZWZvcmUsXG4uZmEtZmlsZS12aWRlby1vOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM4XCI7XG59XG4uZmEtZmlsZS1jb2RlLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzlcIjtcbn1cbi5mYS12aW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNhXCI7XG59XG4uZmEtY29kZXBlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjYlwiO1xufVxuLmZhLWpzZmlkZGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNjXCI7XG59XG4uZmEtbGlmZS1ib3V5OmJlZm9yZSxcbi5mYS1saWZlLWJ1b3k6YmVmb3JlLFxuLmZhLWxpZmUtc2F2ZXI6YmVmb3JlLFxuLmZhLXN1cHBvcnQ6YmVmb3JlLFxuLmZhLWxpZmUtcmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjZFwiO1xufVxuLmZhLWNpcmNsZS1vLW5vdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNlXCI7XG59XG4uZmEtcmE6YmVmb3JlLFxuLmZhLXJlYmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQwXCI7XG59XG4uZmEtZ2U6YmVmb3JlLFxuLmZhLWVtcGlyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkMVwiO1xufVxuLmZhLWdpdC1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDJcIjtcbn1cbi5mYS1naXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDNcIjtcbn1cbi5mYS1oYWNrZXItbmV3czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkNFwiO1xufVxuLmZhLXRlbmNlbnQtd2VpYm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDVcIjtcbn1cbi5mYS1xcTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkNlwiO1xufVxuLmZhLXdlY2hhdDpiZWZvcmUsXG4uZmEtd2VpeGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ3XCI7XG59XG4uZmEtc2VuZDpiZWZvcmUsXG4uZmEtcGFwZXItcGxhbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDhcIjtcbn1cbi5mYS1zZW5kLW86YmVmb3JlLFxuLmZhLXBhcGVyLXBsYW5lLW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDlcIjtcbn1cbi5mYS1oaXN0b3J5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRhXCI7XG59XG4uZmEtZ2VuZGVybGVzczpiZWZvcmUsXG4uZmEtY2lyY2xlLXRoaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGJcIjtcbn1cbi5mYS1oZWFkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGNcIjtcbn1cbi5mYS1wYXJhZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGRcIjtcbn1cbi5mYS1zbGlkZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRlXCI7XG59XG4uZmEtc2hhcmUtYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUwXCI7XG59XG4uZmEtc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlMVwiO1xufVxuLmZhLWJvbWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTJcIjtcbn1cbi5mYS1zb2NjZXItYmFsbC1vOmJlZm9yZSxcbi5mYS1mdXRib2wtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlM1wiO1xufVxuLmZhLXR0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNFwiO1xufVxuLmZhLWJpbm9jdWxhcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTVcIjtcbn1cbi5mYS1wbHVnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU2XCI7XG59XG4uZmEtc2xpZGVzaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlN1wiO1xufVxuLmZhLXR3aXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlOFwiO1xufVxuLmZhLXllbHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTlcIjtcbn1cbi5mYS1uZXdzcGFwZXItbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlYVwiO1xufVxuLmZhLXdpZmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWJcIjtcbn1cbi5mYS1jYWxjdWxhdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVjXCI7XG59XG4uZmEtcGF5cGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVkXCI7XG59XG4uZmEtZ29vZ2xlLXdhbGxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlZVwiO1xufVxuLmZhLWNjLXZpc2E6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cbi5mYS1jYy1tYXN0ZXJjYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYxXCI7XG59XG4uZmEtY2MtZGlzY292ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjJcIjtcbn1cbi5mYS1jYy1hbWV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYzXCI7XG59XG4uZmEtY2MtcGF5cGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY0XCI7XG59XG4uZmEtY2Mtc3RyaXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY1XCI7XG59XG4uZmEtYmVsbC1zbGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNlwiO1xufVxuLmZhLWJlbGwtc2xhc2gtbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmN1wiO1xufVxuLmZhLXRyYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY4XCI7XG59XG4uZmEtY29weXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY5XCI7XG59XG4uZmEtYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmFcIjtcbn1cbi5mYS1leWVkcm9wcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZiXCI7XG59XG4uZmEtcGFpbnQtYnJ1c2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmNcIjtcbn1cbi5mYS1iaXJ0aGRheS1jYWtlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZkXCI7XG59XG4uZmEtYXJlYS1jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmZVwiO1xufVxuLmZhLXBpZS1jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMFwiO1xufVxuLmZhLWxpbmUtY2hhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDFcIjtcbn1cbi5mYS1sYXN0Zm06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDJcIjtcbn1cbi5mYS1sYXN0Zm0tc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAzXCI7XG59XG4uZmEtdG9nZ2xlLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNFwiO1xufVxuLmZhLXRvZ2dsZS1vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwNVwiO1xufVxuLmZhLWJpY3ljbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDZcIjtcbn1cbi5mYS1idXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDdcIjtcbn1cbi5mYS1pb3hob3N0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA4XCI7XG59XG4uZmEtYW5nZWxsaXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA5XCI7XG59XG4uZmEtY2M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGFcIjtcbn1cbi5mYS1zaGVrZWw6YmVmb3JlLFxuLmZhLXNoZXFlbDpiZWZvcmUsXG4uZmEtaWxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG4uZmEtbWVhbnBhdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGNcIjtcbn1cbi5mYS1idXlzZWxsYWRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBkXCI7XG59XG4uZmEtY29ubmVjdGRldmVsb3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGVcIjtcbn1cbi5mYS1kYXNoY3ViZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxMFwiO1xufVxuLmZhLWZvcnVtYmVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjExXCI7XG59XG4uZmEtbGVhbnB1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxMlwiO1xufVxuLmZhLXNlbGxzeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxM1wiO1xufVxuLmZhLXNoaXJ0c2luYnVsazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxNFwiO1xufVxuLmZhLXNpbXBseWJ1aWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE1XCI7XG59XG4uZmEtc2t5YXRsYXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTZcIjtcbn1cbi5mYS1jYXJ0LXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTdcIjtcbn1cbi5mYS1jYXJ0LWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMThcIjtcbn1cbi5mYS1kaWFtb25kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE5XCI7XG59XG4uZmEtc2hpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxYVwiO1xufVxuLmZhLXVzZXItc2VjcmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFiXCI7XG59XG4uZmEtbW90b3JjeWNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxY1wiO1xufVxuLmZhLXN0cmVldC12aWV3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFkXCI7XG59XG4uZmEtaGVhcnRiZWF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFlXCI7XG59XG4uZmEtdmVudXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjFcIjtcbn1cbi5mYS1tYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjIyXCI7XG59XG4uZmEtbWVyY3VyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyM1wiO1xufVxuLmZhLXRyYW5zZ2VuZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI0XCI7XG59XG4uZmEtdHJhbnNnZW5kZXItYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI1XCI7XG59XG4uZmEtdmVudXMtZG91YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI2XCI7XG59XG4uZmEtbWFycy1kb3VibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjdcIjtcbn1cbi5mYS12ZW51cy1tYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI4XCI7XG59XG4uZmEtbWFycy1zdHJva2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjlcIjtcbn1cbi5mYS1tYXJzLXN0cm9rZS12OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJhXCI7XG59XG4uZmEtbWFycy1zdHJva2UtaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyYlwiO1xufVxuLmZhLW5ldXRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyY1wiO1xufVxuLmZhLWZhY2Vib29rLW9mZmljaWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMwXCI7XG59XG4uZmEtcGludGVyZXN0LXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzFcIjtcbn1cbi5mYS13aGF0c2FwcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzMlwiO1xufVxuLmZhLXNlcnZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzM1wiO1xufVxuLmZhLXVzZXItcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNFwiO1xufVxuLmZhLXVzZXItdGltZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbi5mYS1ob3RlbDpiZWZvcmUsXG4uZmEtYmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM2XCI7XG59XG4uZmEtdmlhY29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzN1wiO1xufVxuLmZhLXRyYWluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM4XCI7XG59XG4uZmEtc3Vid2F5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM5XCI7XG59XG4uZmEtbWVkaXVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNhXCI7XG59XG4iLCIvLyBDb3JlIHZhcmlhYmxlcyBhbmQgbWl4aW5zXHJcbkBpbXBvcnQgXCJ2YXJpYWJsZXMubGVzc1wiO1xyXG5AaW1wb3J0IFwibWl4aW5zLmxlc3NcIjtcclxuXHJcbi8vIENvcmUgQ1NTXHJcbi5sYXlvdXQtZWRpdG9yIHtcclxuICAgIEBpbXBvcnQgXCJzY2FmZm9sZGluZy5sZXNzXCI7XHJcbiAgICBAaW1wb3J0IFwiZ3JpZC5sZXNzXCI7XHJcbn1cclxuIFxyXG4vLyBVdGlsaXR5IGNsYXNzZXNcclxuQGltcG9ydCBcInV0aWxpdGllcy5sZXNzXCI7XHJcbiIsIi8vIFZlbmRvciBQcmVmaXhlc1xyXG4vL1xyXG4vLyBBbGwgdmVuZG9yIG1peGlucyBhcmUgZGVwcmVjYXRlZCBhcyBvZiB2My4yLjAgZHVlIHRvIHRoZSBpbnRyb2R1Y3Rpb24gb2ZcclxuLy8gQXV0b3ByZWZpeGVyIGluIG91ciBHcnVudGZpbGUuIFRoZXkgd2lsbCBiZSByZW1vdmVkIGluIHY0LlxyXG5cclxuLy8gLSBBbmltYXRpb25zXHJcbi8vIC0gQmFja2ZhY2UgdmlzaWJpbGl0eVxyXG4vLyAtIEJveCBzaGFkb3dcclxuLy8gLSBCb3ggc2l6aW5nXHJcbi8vIC0gQ29udGVudCBjb2x1bW5zXHJcbi8vIC0gSHlwaGVuc1xyXG4vLyAtIFBsYWNlaG9sZGVyIHRleHRcclxuLy8gLSBUcmFuc2Zvcm1hdGlvbnNcclxuLy8gLSBUcmFuc2l0aW9uc1xyXG4vLyAtIFVzZXIgU2VsZWN0XHJcblxyXG5cclxuLy8gQW5pbWF0aW9uc1xyXG4uYW5pbWF0aW9uKEBhbmltYXRpb24pIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogQGFuaW1hdGlvbjtcclxuICAgICAgIC1vLWFuaW1hdGlvbjogQGFuaW1hdGlvbjtcclxuICAgICAgICAgIGFuaW1hdGlvbjogQGFuaW1hdGlvbjtcclxufVxyXG4uYW5pbWF0aW9uLW5hbWUoQG5hbWUpIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBAbmFtZTtcclxuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBAbmFtZTtcclxufVxyXG4uYW5pbWF0aW9uLWR1cmF0aW9uKEBkdXJhdGlvbikge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiBAZHVyYXRpb247XHJcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcclxufVxyXG4uYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbihAdGltaW5nLWZ1bmN0aW9uKSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xyXG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcclxufVxyXG4uYW5pbWF0aW9uLWRlbGF5KEBkZWxheSkge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiBAZGVsYXk7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IEBkZWxheTtcclxufVxyXG4uYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudChAaXRlcmF0aW9uLWNvdW50KSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBAaXRlcmF0aW9uLWNvdW50O1xyXG4gICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGl0ZXJhdGlvbi1jb3VudDtcclxufVxyXG4uYW5pbWF0aW9uLWRpcmVjdGlvbihAZGlyZWN0aW9uKSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xyXG4gICAgICAgICAgYW5pbWF0aW9uLWRpcmVjdGlvbjogQGRpcmVjdGlvbjtcclxufVxyXG4uYW5pbWF0aW9uLWZpbGwtbW9kZShAZmlsbC1tb2RlKSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBAZmlsbC1tb2RlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogQGZpbGwtbW9kZTtcclxufVxyXG5cclxuLy8gQmFja2ZhY2UgdmlzaWJpbGl0eVxyXG4vLyBQcmV2ZW50IGJyb3dzZXJzIGZyb20gZmxpY2tlcmluZyB3aGVuIHVzaW5nIENTUyAzRCB0cmFuc2Zvcm1zLlxyXG4vLyBEZWZhdWx0IHZhbHVlIGlzIGB2aXNpYmxlYCwgYnV0IGNhbiBiZSBjaGFuZ2VkIHRvIGBoaWRkZW5gXHJcblxyXG4uYmFja2ZhY2UtdmlzaWJpbGl0eShAdmlzaWJpbGl0eSl7XHJcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcclxuICAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xyXG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XHJcbn1cclxuXHJcbi8vIERyb3Agc2hhZG93c1xyXG4vL1xyXG4vLyBOb3RlOiBEZXByZWNhdGVkIGAuYm94LXNoYWRvdygpYCBhcyBvZiB2My4xLjAgc2luY2UgYWxsIG9mIEJvb3RzdHJhcCdzXHJcbi8vIHN1cHBvcnRlZCBicm93c2VycyB0aGF0IGhhdmUgYm94IHNoYWRvdyBjYXBhYmlsaXRpZXMgbm93IHN1cHBvcnQgaXQuXHJcblxyXG4uYm94LXNoYWRvdyhAc2hhZG93KSB7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBAc2hhZG93OyAvLyBpT1MgPDQuMyAmIEFuZHJvaWQgPDQuMVxyXG4gICAgICAgICAgYm94LXNoYWRvdzogQHNoYWRvdztcclxufVxyXG5cclxuLy8gQm94IHNpemluZ1xyXG4uYm94LXNpemluZyhAYm94bW9kZWwpIHtcclxuICAtd2Via2l0LWJveC1zaXppbmc6IEBib3htb2RlbDtcclxuICAgICAtbW96LWJveC1zaXppbmc6IEBib3htb2RlbDtcclxuICAgICAgICAgIGJveC1zaXppbmc6IEBib3htb2RlbDtcclxufVxyXG5cclxuLy8gQ1NTMyBDb250ZW50IENvbHVtbnNcclxuLmNvbnRlbnQtY29sdW1ucyhAY29sdW1uLWNvdW50OyBAY29sdW1uLWdhcDogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XHJcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XHJcbiAgICAgLW1vei1jb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XHJcbiAgICAgICAgICBjb2x1bW4tY291bnQ6IEBjb2x1bW4tY291bnQ7XHJcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiBAY29sdW1uLWdhcDtcclxuICAgICAtbW96LWNvbHVtbi1nYXA6IEBjb2x1bW4tZ2FwO1xyXG4gICAgICAgICAgY29sdW1uLWdhcDogQGNvbHVtbi1nYXA7XHJcbn1cclxuXHJcbi8vIE9wdGlvbmFsIGh5cGhlbmF0aW9uXHJcbi5oeXBoZW5zKEBtb2RlOiBhdXRvKSB7XHJcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4gIC13ZWJraXQtaHlwaGVuczogQG1vZGU7XHJcbiAgICAgLW1vei1oeXBoZW5zOiBAbW9kZTtcclxuICAgICAgLW1zLWh5cGhlbnM6IEBtb2RlOyAvLyBJRTEwK1xyXG4gICAgICAgLW8taHlwaGVuczogQG1vZGU7XHJcbiAgICAgICAgICBoeXBoZW5zOiBAbW9kZTtcclxufVxyXG5cclxuLy8gUGxhY2Vob2xkZXIgdGV4dFxyXG4ucGxhY2Vob2xkZXIoQGNvbG9yOiBAaW5wdXQtY29sb3ItcGxhY2Vob2xkZXIpIHtcclxuICAvLyBGaXJlZm94XHJcbiAgJjo6LW1vei1wbGFjZWhvbGRlciB7XHJcbiAgICBjb2xvcjogQGNvbG9yO1xyXG4gICAgb3BhY2l0eTogMTsgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzExNTI2XHJcbiAgfVxyXG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6IEBjb2xvcjsgfSAvLyBJbnRlcm5ldCBFeHBsb3JlciAxMCtcclxuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyICB7IGNvbG9yOiBAY29sb3I7IH0gLy8gU2FmYXJpIGFuZCBDaHJvbWVcclxufVxyXG5cclxuLy8gVHJhbnNmb3JtYXRpb25zXHJcbi5zY2FsZShAcmF0aW8pIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTsgLy8gSUU5IG9ubHlcclxuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcclxufVxyXG4uc2NhbGUoQHJhdGlvWDsgQHJhdGlvWSkge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvWCwgQHJhdGlvWSk7IC8vIElFOSBvbmx5XHJcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKEByYXRpb1gsIEByYXRpb1kpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZShAcmF0aW9YLCBAcmF0aW9ZKTtcclxufVxyXG4uc2NhbGVYKEByYXRpbykge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGVYKEByYXRpbyk7IC8vIElFOSBvbmx5XHJcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWChAcmF0aW8pO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoQHJhdGlvKTtcclxufVxyXG4uc2NhbGVZKEByYXRpbykge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGVZKEByYXRpbyk7IC8vIElFOSBvbmx5XHJcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlWShAcmF0aW8pO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoQHJhdGlvKTtcclxufVxyXG4uc2tldyhAeDsgQHkpIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTtcclxuICAgICAgLW1zLXRyYW5zZm9ybTogc2tld1goQHgpIHNrZXdZKEB5KTsgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvNDg4NTsgSUU5K1xyXG4gICAgICAgLW8tdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBza2V3WChAeCkgc2tld1koQHkpO1xyXG59XHJcbi50cmFuc2xhdGUoQHg7IEB5KSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xyXG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTsgLy8gSUU5IG9ubHlcclxuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xyXG59XHJcbi50cmFuc2xhdGUzZChAeDsgQHk7IEB6KSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKEB4LCBAeSwgQHopO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAeCwgQHksIEB6KTtcclxufVxyXG4ucm90YXRlKEBkZWdyZWVzKSB7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7IC8vIElFOSBvbmx5XHJcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbn1cclxuLnJvdGF0ZVgoQGRlZ3JlZXMpIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxyXG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XHJcbn1cclxuLnJvdGF0ZVkoQGRlZ3JlZXMpIHtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpOyAvLyBJRTkgb25seVxyXG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XHJcbn1cclxuLnBlcnNwZWN0aXZlKEBwZXJzcGVjdGl2ZSkge1xyXG4gIC13ZWJraXQtcGVyc3BlY3RpdmU6IEBwZXJzcGVjdGl2ZTtcclxuICAgICAtbW96LXBlcnNwZWN0aXZlOiBAcGVyc3BlY3RpdmU7XHJcbiAgICAgICAgICBwZXJzcGVjdGl2ZTogQHBlcnNwZWN0aXZlO1xyXG59XHJcbi5wZXJzcGVjdGl2ZS1vcmlnaW4oQHBlcnNwZWN0aXZlKSB7XHJcbiAgLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW46IEBwZXJzcGVjdGl2ZTtcclxuICAgICAtbW96LXBlcnNwZWN0aXZlLW9yaWdpbjogQHBlcnNwZWN0aXZlO1xyXG4gICAgICAgICAgcGVyc3BlY3RpdmUtb3JpZ2luOiBAcGVyc3BlY3RpdmU7XHJcbn1cclxuLnRyYW5zZm9ybS1vcmlnaW4oQG9yaWdpbikge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcclxuICAgICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IEBvcmlnaW47XHJcbiAgICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiBAb3JpZ2luOyAvLyBJRTkgb25seVxyXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogQG9yaWdpbjtcclxufVxyXG5cclxuXHJcbi8vIFRyYW5zaXRpb25zXHJcblxyXG4udHJhbnNpdGlvbihAdHJhbnNpdGlvbikge1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogQHRyYW5zaXRpb247XHJcbiAgICAgICAtby10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcclxuICAgICAgICAgIHRyYW5zaXRpb246IEB0cmFuc2l0aW9uO1xyXG59XHJcbi50cmFuc2l0aW9uLXByb3BlcnR5KEB0cmFuc2l0aW9uLXByb3BlcnR5KSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBAdHJhbnNpdGlvbi1wcm9wZXJ0eTtcclxuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IEB0cmFuc2l0aW9uLXByb3BlcnR5O1xyXG59XHJcbi50cmFuc2l0aW9uLWRlbGF5KEB0cmFuc2l0aW9uLWRlbGF5KSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiBAdHJhbnNpdGlvbi1kZWxheTtcclxuICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IEB0cmFuc2l0aW9uLWRlbGF5O1xyXG59XHJcbi50cmFuc2l0aW9uLWR1cmF0aW9uKEB0cmFuc2l0aW9uLWR1cmF0aW9uKSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiBAdHJhbnNpdGlvbi1kdXJhdGlvbjtcclxuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IEB0cmFuc2l0aW9uLWR1cmF0aW9uO1xyXG59XHJcbi50cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbihAdGltaW5nLWZ1bmN0aW9uKSB7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogQHRpbWluZy1mdW5jdGlvbjtcclxuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBAdGltaW5nLWZ1bmN0aW9uO1xyXG59XHJcbi50cmFuc2l0aW9uLXRyYW5zZm9ybShAdHJhbnNpdGlvbikge1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gQHRyYW5zaXRpb247XHJcbiAgICAgLW1vei10cmFuc2l0aW9uOiAtbW96LXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcclxuICAgICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcclxuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSBAdHJhbnNpdGlvbjtcclxufVxyXG5cclxuXHJcbi8vIFVzZXIgc2VsZWN0XHJcbi8vIEZvciBzZWxlY3RpbmcgdGV4dCBvbiB0aGUgcGFnZVxyXG5cclxuLnVzZXItc2VsZWN0KEBzZWxlY3QpIHtcclxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xyXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XHJcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogQHNlbGVjdDsgLy8gSUUxMCtcclxuICAgICAgICAgIHVzZXItc2VsZWN0OiBAc2VsZWN0O1xyXG59XHJcbiIsIi8vXHJcbi8vIFNjYWZmb2xkaW5nXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cclxuLy8gUmVzZXQgdGhlIGJveC1zaXppbmdcclxuLy9cclxuLy8gSGVhZHMgdXAhIFRoaXMgcmVzZXQgbWF5IGNhdXNlIGNvbmZsaWN0cyB3aXRoIHNvbWUgdGhpcmQtcGFydHkgd2lkZ2V0cy5cclxuLy8gRm9yIHJlY29tbWVuZGF0aW9ucyBvbiByZXNvbHZpbmcgc3VjaCBjb25mbGljdHMsIHNlZVxyXG4vLyBodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9nZXR0aW5nLXN0YXJ0ZWQvI3RoaXJkLWJveC1zaXppbmdcclxuKiB7XHJcbiAgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7XHJcbn1cclxuKjpiZWZvcmUsXHJcbio6YWZ0ZXIge1xyXG4gIC5ib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xyXG59XHJcblxyXG5cclxuLy8gQm9keSByZXNldFxyXG5cclxuaHRtbCB7XHJcbiAgZm9udC1zaXplOiAxMHB4O1xyXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgZm9udC1mYW1pbHk6IEBmb250LWZhbWlseS1iYXNlO1xyXG4gIGZvbnQtc2l6ZTogQGZvbnQtc2l6ZS1iYXNlO1xyXG4gIGxpbmUtaGVpZ2h0OiBAbGluZS1oZWlnaHQtYmFzZTtcclxuICBjb2xvcjogQHRleHQtY29sb3I7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJvZHktYmc7XHJcbn1cclxuXHJcbi8vIFJlc2V0IGZvbnRzIGZvciByZWxldmFudCBlbGVtZW50c1xyXG5pbnB1dCxcclxuYnV0dG9uLFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuICBmb250LWZhbWlseTogaW5oZXJpdDtcclxuICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XHJcbn1cclxuXHJcblxyXG4vLyBMaW5rc1xyXG5cclxuYSB7XHJcbiAgY29sb3I6IEBsaW5rLWNvbG9yO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuXHJcbiAgJjpob3ZlcixcclxuICAmOmZvY3VzIHtcclxuICAgIGNvbG9yOiBAbGluay1ob3Zlci1jb2xvcjtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogQGxpbmstaG92ZXItZGVjb3JhdGlvbjtcclxuICB9XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgLnRhYi1mb2N1cygpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIEZpZ3VyZXNcclxuLy9cclxuLy8gV2UgcmVzZXQgdGhpcyBoZXJlIGJlY2F1c2UgcHJldmlvdXNseSBOb3JtYWxpemUgaGFkIG5vIGBmaWd1cmVgIG1hcmdpbnMuIFRoaXNcclxuLy8gZW5zdXJlcyB3ZSBkb24ndCBicmVhayBhbnlvbmUncyB1c2Ugb2YgdGhlIGVsZW1lbnQuXHJcblxyXG5maWd1cmUge1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuXHJcbi8vIEltYWdlc1xyXG5cclxuaW1nIHtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG59XHJcblxyXG4vLyBSZXNwb25zaXZlIGltYWdlcyAoZW5zdXJlIGltYWdlcyBkb24ndCBzY2FsZSBiZXlvbmQgdGhlaXIgcGFyZW50cylcclxuLmltZy1yZXNwb25zaXZlIHtcclxuICAuaW1nLXJlc3BvbnNpdmUoKTtcclxufVxyXG5cclxuLy8gUm91bmRlZCBjb3JuZXJzXHJcbi5pbWctcm91bmRlZCB7XHJcbiAgYm9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXMtbGFyZ2U7XHJcbn1cclxuXHJcbi8vIEltYWdlIHRodW1ibmFpbHNcclxuLy9cclxuLy8gSGVhZHMgdXAhIFRoaXMgaXMgbWl4aW4tZWQgaW50byB0aHVtYm5haWxzLmxlc3MgZm9yIGAudGh1bWJuYWlsYC5cclxuLmltZy10aHVtYm5haWwge1xyXG4gIHBhZGRpbmc6IEB0aHVtYm5haWwtcGFkZGluZztcclxuICBsaW5lLWhlaWdodDogQGxpbmUtaGVpZ2h0LWJhc2U7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogQHRodW1ibmFpbC1iZztcclxuICBib3JkZXI6IDFweCBzb2xpZCBAdGh1bWJuYWlsLWJvcmRlcjtcclxuICBib3JkZXItcmFkaXVzOiBAdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM7XHJcbiAgLnRyYW5zaXRpb24oYWxsIC4ycyBlYXNlLWluLW91dCk7XHJcblxyXG4gIC8vIEtlZXAgdGhlbSBhdCBtb3N0IDEwMCUgd2lkZVxyXG4gIC5pbWctcmVzcG9uc2l2ZShpbmxpbmUtYmxvY2spO1xyXG59XHJcblxyXG4vLyBQZXJmZWN0IGNpcmNsZVxyXG4uaW1nLWNpcmNsZSB7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlOyAvLyBzZXQgcmFkaXVzIGluIHBlcmNlbnRzXHJcbn1cclxuXHJcblxyXG4vLyBIb3Jpem9udGFsIHJ1bGVzXHJcblxyXG5ociB7XHJcbiAgbWFyZ2luLXRvcDogICAgQGxpbmUtaGVpZ2h0LWNvbXB1dGVkO1xyXG4gIG1hcmdpbi1ib3R0b206IEBsaW5lLWhlaWdodC1jb21wdXRlZDtcclxuICBib3JkZXI6IDA7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIEBoci1ib3JkZXI7XHJcbn1cclxuXHJcblxyXG4vLyBPbmx5IGRpc3BsYXkgY29udGVudCB0byBzY3JlZW4gcmVhZGVyc1xyXG4vL1xyXG4vLyBTZWU6IGh0dHA6Ly9hMTF5cHJvamVjdC5jb20vcG9zdHMvaG93LXRvLWhpZGUtY29udGVudC9cclxuXHJcbi5zci1vbmx5IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDFweDtcclxuICBoZWlnaHQ6IDFweDtcclxuICBtYXJnaW46IC0xcHg7XHJcbiAgcGFkZGluZzogMDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGNsaXA6IHJlY3QoMCwwLDAsMCk7XHJcbiAgYm9yZGVyOiAwO1xyXG59XHJcblxyXG4vLyBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCAuc3Itb25seSB0byBvbmx5IGRpc3BsYXkgY29udGVudCB3aGVuIGl0J3MgZm9jdXNlZC5cclxuLy8gVXNlZnVsIGZvciBcIlNraXAgdG8gbWFpbiBjb250ZW50XCIgbGlua3M7IHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEzL05PVEUtV0NBRzIwLVRFQ0hTLTIwMTMwOTA1L0cxXHJcbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcclxuXHJcbi5zci1vbmx5LWZvY3VzYWJsZSB7XHJcbiAgJjphY3RpdmUsXHJcbiAgJjpmb2N1cyB7XHJcbiAgICBwb3NpdGlvbjogc3RhdGljO1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgIGNsaXA6IGF1dG87XHJcbiAgfVxyXG59XHJcbiIsIi8vIFdlYktpdC1zdHlsZSBmb2N1c1xyXG5cclxuLnRhYi1mb2N1cygpIHtcclxuICAvLyBEZWZhdWx0XHJcbiAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XHJcbiAgLy8gV2ViS2l0XHJcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xyXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xyXG59XHJcbiIsIi8vIEltYWdlIE1peGluc1xyXG4vLyAtIFJlc3BvbnNpdmUgaW1hZ2VcclxuLy8gLSBSZXRpbmEgaW1hZ2VcclxuXHJcblxyXG4vLyBSZXNwb25zaXZlIGltYWdlXHJcbi8vXHJcbi8vIEtlZXAgaW1hZ2VzIGZyb20gc2NhbGluZyBiZXlvbmQgdGhlIHdpZHRoIG9mIHRoZWlyIHBhcmVudHMuXHJcbi5pbWctcmVzcG9uc2l2ZShAZGlzcGxheTogYmxvY2spIHtcclxuICBkaXNwbGF5OiBAZGlzcGxheTtcclxuICBtYXgtd2lkdGg6IDEwMCU7IC8vIFBhcnQgMTogU2V0IGEgbWF4aW11bSByZWxhdGl2ZSB0byB0aGUgcGFyZW50XHJcbiAgaGVpZ2h0OiBhdXRvOyAvLyBQYXJ0IDI6IFNjYWxlIHRoZSBoZWlnaHQgYWNjb3JkaW5nIHRvIHRoZSB3aWR0aCwgb3RoZXJ3aXNlIHlvdSBnZXQgc3RyZXRjaGluZ1xyXG59XHJcblxyXG5cclxuLy8gUmV0aW5hIGltYWdlXHJcbi8vXHJcbi8vIFNob3J0IHJldGluYSBtaXhpbiBmb3Igc2V0dGluZyBiYWNrZ3JvdW5kLWltYWdlIGFuZCAtc2l6ZS4gTm90ZSB0aGF0IHRoZVxyXG4vLyBzcGVsbGluZyBvZiBgbWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvYCBpcyBpbnRlbnRpb25hbC5cclxuLmltZy1yZXRpbmEoQGZpbGUtMXg7IEBmaWxlLTJ4OyBAd2lkdGgtMXg7IEBoZWlnaHQtMXgpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAe2ZpbGUtMXh9XCIpO1xyXG5cclxuICBAbWVkaWFcclxuICBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksXHJcbiAgb25seSBzY3JlZW4gYW5kICggICBtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLzEpLFxyXG4gIG9ubHkgc2NyZWVuIGFuZCAoICAgICAgICBtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgICAgICAgICBtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKCAgICAgICAgICAgICAgICBtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIkB7ZmlsZS0yeH1cIik7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IEB3aWR0aC0xeCBAaGVpZ2h0LTF4O1xyXG4gIH1cclxufVxyXG4iLCIvLyBHcmlkIHN5c3RlbVxyXG4vL1xyXG4vLyBHZW5lcmF0ZSBzZW1hbnRpYyBncmlkIGNvbHVtbnMgd2l0aCB0aGVzZSBtaXhpbnMuXHJcblxyXG4vLyBDZW50ZXJlZCBjb250YWluZXIgZWxlbWVudFxyXG4uY29udGFpbmVyLWZpeGVkKEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuICBtYXJnaW4tbGVmdDogYXV0bztcclxuICBwYWRkaW5nLWxlZnQ6ICAoQGd1dHRlciAvIDIpO1xyXG4gIHBhZGRpbmctcmlnaHQ6IChAZ3V0dGVyIC8gMik7XHJcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XHJcbn1cclxuXHJcbi8vIENyZWF0ZXMgYSB3cmFwcGVyIGZvciBhIHNlcmllcyBvZiBjb2x1bW5zXHJcbi5tYWtlLXJvdyhAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcclxuICBtYXJnaW4tbGVmdDogIChAZ3V0dGVyIC8gLTIpO1xyXG4gIG1hcmdpbi1yaWdodDogKEBndXR0ZXIgLyAtMik7XHJcbiAgJjpleHRlbmQoLmNsZWFyZml4IGFsbCk7XHJcbn1cclxuXHJcbi8vIEdlbmVyYXRlIHRoZSBleHRyYSBzbWFsbCBjb2x1bW5zXHJcbi5tYWtlLXhzLWNvbHVtbihAY29sdW1uczsgQGd1dHRlcjogQGdyaWQtZ3V0dGVyLXdpZHRoKSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZsb2F0OiBsZWZ0O1xyXG4gIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxuICBtaW4taGVpZ2h0OiAxcHg7XHJcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcclxuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xyXG59XHJcbi5tYWtlLXhzLWNvbHVtbi1vZmZzZXQoQGNvbHVtbnMpIHtcclxuICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbn1cclxuLm1ha2UteHMtY29sdW1uLXB1c2goQGNvbHVtbnMpIHtcclxuICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxufVxyXG4ubWFrZS14cy1jb2x1bW4tcHVsbChAY29sdW1ucykge1xyXG4gIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxufVxyXG5cclxuLy8gR2VuZXJhdGUgdGhlIHNtYWxsIGNvbHVtbnNcclxuLm1ha2Utc20tY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWluLWhlaWdodDogMXB4O1xyXG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XHJcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxuICB9XHJcbn1cclxuLm1ha2Utc20tY29sdW1uLW9mZnNldChAY29sdW1ucykge1xyXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xyXG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG4ubWFrZS1zbS1jb2x1bW4tcHVzaChAY29sdW1ucykge1xyXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLXNtLW1pbikge1xyXG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcbi5tYWtlLXNtLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XHJcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBHZW5lcmF0ZSB0aGUgbWVkaXVtIGNvbHVtbnNcclxuLm1ha2UtbWQtY29sdW1uKEBjb2x1bW5zOyBAZ3V0dGVyOiBAZ3JpZC1ndXR0ZXItd2lkdGgpIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWluLWhlaWdodDogMXB4O1xyXG4gIHBhZGRpbmctbGVmdDogIChAZ3V0dGVyIC8gMik7XHJcbiAgcGFkZGluZy1yaWdodDogKEBndXR0ZXIgLyAyKTtcclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XHJcbiAgICBmbG9hdDogbGVmdDtcclxuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxuICB9XHJcbn1cclxuLm1ha2UtbWQtY29sdW1uLW9mZnNldChAY29sdW1ucykge1xyXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xyXG4gICAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG4ubWFrZS1tZC1jb2x1bW4tcHVzaChAY29sdW1ucykge1xyXG4gIEBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLW1kLW1pbikge1xyXG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcbi5tYWtlLW1kLWNvbHVtbi1wdWxsKEBjb2x1bW5zKSB7XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XHJcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBHZW5lcmF0ZSB0aGUgbGFyZ2UgY29sdW1uc1xyXG4ubWFrZS1sZy1jb2x1bW4oQGNvbHVtbnM7IEBndXR0ZXI6IEBncmlkLWd1dHRlci13aWR0aCkge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtaW4taGVpZ2h0OiAxcHg7XHJcbiAgcGFkZGluZy1sZWZ0OiAgKEBndXR0ZXIgLyAyKTtcclxuICBwYWRkaW5nLXJpZ2h0OiAoQGd1dHRlciAvIDIpO1xyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoKEBjb2x1bW5zIC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG4ubWFrZS1sZy1jb2x1bW4tb2Zmc2V0KEBjb2x1bW5zKSB7XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XHJcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGNvbHVtbnMgLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcbi5tYWtlLWxnLWNvbHVtbi1wdXNoKEBjb2x1bW5zKSB7XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XHJcbiAgICBsZWZ0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxuICB9XHJcbn1cclxuLm1ha2UtbGctY29sdW1uLXB1bGwoQGNvbHVtbnMpIHtcclxuICBAbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1sZy1taW4pIHtcclxuICAgIHJpZ2h0OiBwZXJjZW50YWdlKChAY29sdW1ucyAvIEBncmlkLWNvbHVtbnMpKTtcclxuICB9XHJcbn1cclxuIiwiLy9cclxuLy8gR3JpZCBzeXN0ZW1cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcblxyXG4vLyBDb250YWluZXIgd2lkdGhzXHJcbi8vXHJcbi8vIFNldCB0aGUgY29udGFpbmVyIHdpZHRoLCBhbmQgb3ZlcnJpZGUgaXQgZm9yIGZpeGVkIG5hdmJhcnMgaW4gbWVkaWEgcXVlcmllcy5cclxuXHJcbi5jb250YWluZXIge1xyXG4gIC5jb250YWluZXItZml4ZWQoKTtcclxuXHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tc20tbWluKSB7XHJcbiAgICB3aWR0aDogQGNvbnRhaW5lci1zbTtcclxuICB9XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbWQtbWluKSB7XHJcbiAgICB3aWR0aDogQGNvbnRhaW5lci1tZDtcclxuICB9XHJcbiAgQG1lZGlhIChtaW4td2lkdGg6IEBzY3JlZW4tbGctbWluKSB7XHJcbiAgICB3aWR0aDogQGNvbnRhaW5lci1sZztcclxuICB9XHJcbn1cclxuXHJcblxyXG4vLyBGbHVpZCBjb250YWluZXJcclxuLy9cclxuLy8gVXRpbGl6ZXMgdGhlIG1peGluIG1lYW50IGZvciBmaXhlZCB3aWR0aCBjb250YWluZXJzLCBidXQgd2l0aG91dCBhbnkgZGVmaW5lZFxyXG4vLyB3aWR0aCBmb3IgZmx1aWQsIGZ1bGwgd2lkdGggbGF5b3V0cy5cclxuXHJcbi5jb250YWluZXItZmx1aWQge1xyXG4gIC5jb250YWluZXItZml4ZWQoKTtcclxufVxyXG5cclxuXHJcbi8vIFJvd1xyXG4vL1xyXG4vLyBSb3dzIGNvbnRhaW4gYW5kIGNsZWFyIHRoZSBmbG9hdHMgb2YgeW91ciBjb2x1bW5zLlxyXG5cclxuLnJvdyB7XHJcbiAgLm1ha2Utcm93KCk7XHJcbn1cclxuXHJcblxyXG4vLyBDb2x1bW5zXHJcbi8vXHJcbi8vIENvbW1vbiBzdHlsZXMgZm9yIHNtYWxsIGFuZCBsYXJnZSBncmlkIGNvbHVtbnNcclxuXHJcbi5tYWtlLWdyaWQtY29sdW1ucygpO1xyXG5cclxuXHJcbi8vIEV4dHJhIHNtYWxsIGdyaWRcclxuLy9cclxuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIGV4dHJhIHNtYWxsIGRldmljZXMgbGlrZVxyXG4vLyBzbWFydHBob25lcy5cclxuXHJcbi5tYWtlLWdyaWQoeHMpO1xyXG5cclxuXHJcbi8vIFNtYWxsIGdyaWRcclxuLy9cclxuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBzbWFsbCBkZXZpY2UgcmFuZ2UsIGZyb20gcGhvbmVzXHJcbi8vIHRvIHRhYmxldHMuXHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1zbS1taW4pIHtcclxuICAubWFrZS1ncmlkKHNtKTtcclxufVxyXG5cclxuXHJcbi8vIE1lZGl1bSBncmlkXHJcbi8vXHJcbi8vIENvbHVtbnMsIG9mZnNldHMsIHB1c2hlcywgYW5kIHB1bGxzIGZvciB0aGUgZGVza3RvcCBkZXZpY2UgcmFuZ2UuXHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogQHNjcmVlbi1tZC1taW4pIHtcclxuICAubWFrZS1ncmlkKG1kKTtcclxufVxyXG5cclxuXHJcbi8vIExhcmdlIGdyaWRcclxuLy9cclxuLy8gQ29sdW1ucywgb2Zmc2V0cywgcHVzaGVzLCBhbmQgcHVsbHMgZm9yIHRoZSBsYXJnZSBkZXNrdG9wIGRldmljZSByYW5nZS5cclxuXHJcbkBtZWRpYSAobWluLXdpZHRoOiBAc2NyZWVuLWxnLW1pbikge1xyXG4gIC5tYWtlLWdyaWQobGcpO1xyXG59XHJcbiIsIi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cclxuLy9cclxuLy8gVXNlZCBvbmx5IGJ5IEJvb3RzdHJhcCB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgZ3JpZCBjbGFzc2VzIGdpdmVuXHJcbi8vIGFueSB2YWx1ZSBvZiBgQGdyaWQtY29sdW1uc2AuXHJcblxyXG4ubWFrZS1ncmlkLWNvbHVtbnMoKSB7XHJcbiAgLy8gQ29tbW9uIHN0eWxlcyBmb3IgYWxsIHNpemVzIG9mIGdyaWQgY29sdW1ucywgd2lkdGhzIDEtMTJcclxuICAuY29sKEBpbmRleCkgeyAvLyBpbml0aWFsXHJcbiAgICBAaXRlbTogflwiLmNvbC14cy1Ae2luZGV4fSwgLmNvbC1zbS1Ae2luZGV4fSwgLmNvbC1tZC1Ae2luZGV4fSwgLmNvbC1sZy1Ae2luZGV4fVwiO1xyXG4gICAgLmNvbCgoQGluZGV4ICsgMSksIEBpdGVtKTtcclxuICB9XHJcbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPTwgQGdyaWQtY29sdW1ucykgeyAvLyBnZW5lcmFsOyBcIj08XCIgaXNuJ3QgYSB0eXBvXHJcbiAgICBAaXRlbTogflwiLmNvbC14cy1Ae2luZGV4fSwgLmNvbC1zbS1Ae2luZGV4fSwgLmNvbC1tZC1Ae2luZGV4fSwgLmNvbC1sZy1Ae2luZGV4fVwiO1xyXG4gICAgLmNvbCgoQGluZGV4ICsgMSksIH5cIkB7bGlzdH0sIEB7aXRlbX1cIik7XHJcbiAgfVxyXG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID4gQGdyaWQtY29sdW1ucykgeyAvLyB0ZXJtaW5hbFxyXG4gICAgQHtsaXN0fSB7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgLy8gUHJldmVudCBjb2x1bW5zIGZyb20gY29sbGFwc2luZyB3aGVuIGVtcHR5XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDFweDtcclxuICAgICAgLy8gSW5uZXIgZ3V0dGVyIHZpYSBwYWRkaW5nXHJcbiAgICAgIHBhZGRpbmctbGVmdDogIChAZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcclxuICAgICAgcGFkZGluZy1yaWdodDogKEBncmlkLWd1dHRlci13aWR0aCAvIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuICAuY29sKDEpOyAvLyBraWNrc3RhcnQgaXRcclxufVxyXG5cclxuLmZsb2F0LWdyaWQtY29sdW1ucyhAY2xhc3MpIHtcclxuICAuY29sKEBpbmRleCkgeyAvLyBpbml0aWFsXHJcbiAgICBAaXRlbTogflwiLmNvbC1Ae2NsYXNzfS1Ae2luZGV4fVwiO1xyXG4gICAgLmNvbCgoQGluZGV4ICsgMSksIEBpdGVtKTtcclxuICB9XHJcbiAgLmNvbChAaW5kZXgsIEBsaXN0KSB3aGVuIChAaW5kZXggPTwgQGdyaWQtY29sdW1ucykgeyAvLyBnZW5lcmFsXHJcbiAgICBAaXRlbTogflwiLmNvbC1Ae2NsYXNzfS1Ae2luZGV4fVwiO1xyXG4gICAgLmNvbCgoQGluZGV4ICsgMSksIH5cIkB7bGlzdH0sIEB7aXRlbX1cIik7XHJcbiAgfVxyXG4gIC5jb2woQGluZGV4LCBAbGlzdCkgd2hlbiAoQGluZGV4ID4gQGdyaWQtY29sdW1ucykgeyAvLyB0ZXJtaW5hbFxyXG4gICAgQHtsaXN0fSB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxuICAuY29sKDEpOyAvLyBraWNrc3RhcnQgaXRcclxufVxyXG5cclxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHdpZHRoKSBhbmQgKEBpbmRleCA+IDApIHtcclxuICAuY29sLUB7Y2xhc3N9LUB7aW5kZXh9IHtcclxuICAgIHdpZHRoOiBwZXJjZW50YWdlKChAaW5kZXggLyBAZ3JpZC1jb2x1bW5zKSk7XHJcbiAgfVxyXG59XHJcbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBwdXNoKSBhbmQgKEBpbmRleCA+IDApIHtcclxuICAuY29sLUB7Y2xhc3N9LXB1c2gtQHtpbmRleH0ge1xyXG4gICAgbGVmdDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVzaCkgYW5kIChAaW5kZXggPSAwKSB7XHJcbiAgLmNvbC1Ae2NsYXNzfS1wdXNoLTAge1xyXG4gICAgbGVmdDogYXV0bztcclxuICB9XHJcbn1cclxuLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKSB3aGVuIChAdHlwZSA9IHB1bGwpIGFuZCAoQGluZGV4ID4gMCkge1xyXG4gIC5jb2wtQHtjbGFzc30tcHVsbC1Ae2luZGV4fSB7XHJcbiAgICByaWdodDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG4uY2FsYy1ncmlkLWNvbHVtbihAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEB0eXBlID0gcHVsbCkgYW5kIChAaW5kZXggPSAwKSB7XHJcbiAgLmNvbC1Ae2NsYXNzfS1wdWxsLTAge1xyXG4gICAgcmlnaHQ6IGF1dG87XHJcbiAgfVxyXG59XHJcbi5jYWxjLWdyaWQtY29sdW1uKEBpbmRleCwgQGNsYXNzLCBAdHlwZSkgd2hlbiAoQHR5cGUgPSBvZmZzZXQpIHtcclxuICAuY29sLUB7Y2xhc3N9LW9mZnNldC1Ae2luZGV4fSB7XHJcbiAgICBtYXJnaW4tbGVmdDogcGVyY2VudGFnZSgoQGluZGV4IC8gQGdyaWQtY29sdW1ucykpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gQmFzaWMgbG9vcGluZyBpbiBMRVNTXHJcbi5sb29wLWdyaWQtY29sdW1ucyhAaW5kZXgsIEBjbGFzcywgQHR5cGUpIHdoZW4gKEBpbmRleCA+PSAwKSB7XHJcbiAgLmNhbGMtZ3JpZC1jb2x1bW4oQGluZGV4LCBAY2xhc3MsIEB0eXBlKTtcclxuICAvLyBuZXh0IGl0ZXJhdGlvblxyXG4gIC5sb29wLWdyaWQtY29sdW1ucygoQGluZGV4IC0gMSksIEBjbGFzcywgQHR5cGUpO1xyXG59XHJcblxyXG4vLyBDcmVhdGUgZ3JpZCBmb3Igc3BlY2lmaWMgY2xhc3NcclxuLm1ha2UtZ3JpZChAY2xhc3MpIHtcclxuICAuZmxvYXQtZ3JpZC1jb2x1bW5zKEBjbGFzcyk7XHJcbiAgLmxvb3AtZ3JpZC1jb2x1bW5zKEBncmlkLWNvbHVtbnMsIEBjbGFzcywgd2lkdGgpO1xyXG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIHB1bGwpO1xyXG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIHB1c2gpO1xyXG4gIC5sb29wLWdyaWQtY29sdW1ucyhAZ3JpZC1jb2x1bW5zLCBAY2xhc3MsIG9mZnNldCk7XHJcbn1cclxuIiwiLy8gQ2xlYXJmaXhcclxuLy9cclxuLy8gRm9yIG1vZGVybiBicm93c2Vyc1xyXG4vLyAxLiBUaGUgc3BhY2UgY29udGVudCBpcyBvbmUgd2F5IHRvIGF2b2lkIGFuIE9wZXJhIGJ1ZyB3aGVuIHRoZVxyXG4vLyAgICBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxyXG4vLyAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcclxuLy8gICAgdGhhdCBhcmUgY2xlYXJmaXhlZC5cclxuLy8gMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcclxuLy8gICAgYDpiZWZvcmVgIHRvIGNvbnRhaW4gdGhlIHRvcC1tYXJnaW5zIG9mIGNoaWxkIGVsZW1lbnRzLlxyXG4vL1xyXG4vLyBTb3VyY2U6IGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrL1xyXG5cclxuLmNsZWFyZml4KCkge1xyXG4gICY6YmVmb3JlLFxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCIgXCI7IC8vIDFcclxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAyXHJcbiAgfVxyXG4gICY6YWZ0ZXIge1xyXG4gICAgY2xlYXI6IGJvdGg7XHJcbiAgfVxyXG59XHJcbiIsIi8vXHJcbi8vIFV0aWxpdHkgY2xhc3Nlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHJcbi8vIEZsb2F0c1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4uY2xlYXJmaXgge1xyXG4gIC5jbGVhcmZpeCgpO1xyXG59XHJcbi5jZW50ZXItYmxvY2sge1xyXG4gIC5jZW50ZXItYmxvY2soKTtcclxufVxyXG4ucHVsbC1yaWdodCB7XHJcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XHJcbn1cclxuLnB1bGwtbGVmdCB7XHJcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuXHJcbi8vIFRvZ2dsaW5nIGNvbnRlbnRcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gTm90ZTogRGVwcmVjYXRlZCAuaGlkZSBpbiBmYXZvciBvZiAuaGlkZGVuIG9yIC5zci1vbmx5IChhcyBhcHByb3ByaWF0ZSkgaW4gdjMuMC4xXHJcbi5oaWRlIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuLnNob3cge1xyXG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbn1cclxuLmludmlzaWJsZSB7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcbi50ZXh0LWhpZGUge1xyXG4gIC50ZXh0LWhpZGUoKTtcclxufVxyXG5cclxuXHJcbi8vIEhpZGUgZnJvbSBzY3JlZW5yZWFkZXJzIGFuZCBicm93c2Vyc1xyXG4vL1xyXG4vLyBDcmVkaXQ6IEhUTUw1IEJvaWxlcnBsYXRlXHJcblxyXG4uaGlkZGVuIHtcclxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcblxyXG4vLyBGb3IgQWZmaXggcGx1Z2luXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi5hZmZpeCB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG59XHJcbiIsIi8vIENlbnRlci1hbGlnbiBhIGJsb2NrIGxldmVsIGVsZW1lbnRcclxuXHJcbi5jZW50ZXItYmxvY2soKSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG59XHJcbiIsIi8vIENTUyBpbWFnZSByZXBsYWNlbWVudFxyXG4vL1xyXG4vLyBIZWFkcyB1cCEgdjMgbGF1bmNoZWQgd2l0aCB3aXRoIG9ubHkgYC5oaWRlLXRleHQoKWAsIGJ1dCBwZXIgb3VyIHBhdHRlcm4gZm9yXHJcbi8vIG1peGlucyBiZWluZyByZXVzZWQgYXMgY2xhc3NlcyB3aXRoIHRoZSBzYW1lIG5hbWUsIHRoaXMgZG9lc24ndCBob2xkIHVwLiBBc1xyXG4vLyBvZiB2My4wLjEgd2UgaGF2ZSBhZGRlZCBgLnRleHQtaGlkZSgpYCBhbmQgZGVwcmVjYXRlZCBgLmhpZGUtdGV4dCgpYC5cclxuLy9cclxuLy8gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9jb21taXQvYWEwMzk2ZWFlNzU3XHJcblxyXG4vLyBEZXByZWNhdGVkIGFzIG9mIHYzLjAuMSAod2lsbCBiZSByZW1vdmVkIGluIHY0KVxyXG4uaGlkZS10ZXh0KCkge1xyXG4gIGZvbnQ6IH5cIjAvMFwiIGE7XHJcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIHRleHQtc2hhZG93OiBub25lO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlcjogMDtcclxufVxyXG5cclxuLy8gTmV3IG1peGluIHRvIHVzZSBhcyBvZiB2My4wLjFcclxuLnRleHQtaGlkZSgpIHtcclxuICAuaGlkZS10ZXh0KCk7XHJcbn1cclxuIiwiLyogRk9OVCBQQVRIXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJztcclxuICBzcmM6IHVybCgnQHtmYS1mb250LXBhdGh9L2ZvbnRhd2Vzb21lLXdlYmZvbnQuZW90P3Y9QHtmYS12ZXJzaW9ufScpO1xyXG4gIHNyYzogdXJsKCdAe2ZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/I2llZml4JnY9QHtmYS12ZXJzaW9ufScpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICAgIHVybCgnQHtmYS1mb250LXBhdGh9L2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZjI/dj1Ae2ZhLXZlcnNpb259JykgZm9ybWF0KCd3b2ZmMicpLFxyXG4gICAgdXJsKCdAe2ZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9QHtmYS12ZXJzaW9ufScpIGZvcm1hdCgnd29mZicpLFxyXG4gICAgdXJsKCdAe2ZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC50dGY/dj1Ae2ZhLXZlcnNpb259JykgZm9ybWF0KCd0cnVldHlwZScpLFxyXG4gICAgdXJsKCdAe2ZhLWZvbnQtcGF0aH0vZm9udGF3ZXNvbWUtd2ViZm9udC5zdmc/dj1Ae2ZhLXZlcnNpb259I2ZvbnRhd2Vzb21lcmVndWxhcicpIGZvcm1hdCgnc3ZnJyk7XHJcbi8vICBzcmM6IHVybCgnQHtmYS1mb250LXBhdGh9L0ZvbnRBd2Vzb21lLm90ZicpIGZvcm1hdCgnb3BlbnR5cGUnKTsgLy8gdXNlZCB3aGVuIGRldmVsb3BpbmcgZm9udHNcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG4iLCIvLyBCYXNlIENsYXNzIERlZmluaXRpb25cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLkB7ZmEtY3NzLXByZWZpeH0ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCBAZmEtZm9udC1zaXplLWJhc2UvMSBGb250QXdlc29tZTsgLy8gc2hvcnRlbmluZyBmb250IGRlY2xhcmF0aW9uXHJcbiAgZm9udC1zaXplOiBpbmhlcml0OyAvLyBjYW4ndCBoYXZlIGZvbnQtc2l6ZSBpbmhlcml0IG9uIGxpbmUgYWJvdmUsIHNvIG5lZWQgdG8gb3ZlcnJpZGVcclxuICB0ZXh0LXJlbmRlcmluZzogYXV0bzsgLy8gb3B0aW1pemVsZWdpYmlsaXR5IHRocm93cyB0aGluZ3Mgb2ZmICMxMDk0XHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgLy8gZW5zdXJlcyBubyBoYWxmLXBpeGVsIHJlbmRlcmluZyBpbiBmaXJlZm94XHJcblxyXG59XHJcbiIsIi8vIEljb24gU2l6ZXNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLyogbWFrZXMgdGhlIGZvbnQgMzMlIGxhcmdlciByZWxhdGl2ZSB0byB0aGUgaWNvbiBjb250YWluZXIgKi9cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGcge1xyXG4gIGZvbnQtc2l6ZTogKDRlbSAvIDMpO1xyXG4gIGxpbmUtaGVpZ2h0OiAoM2VtIC8gNCk7XHJcbiAgdmVydGljYWwtYWxpZ246IC0xNSU7XHJcbn1cclxuLkB7ZmEtY3NzLXByZWZpeH0tMnggeyBmb250LXNpemU6IDJlbTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS0zeCB7IGZvbnQtc2l6ZTogM2VtOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LTR4IHsgZm9udC1zaXplOiA0ZW07IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tNXggeyBmb250LXNpemU6IDVlbTsgfVxyXG4iLCIvLyBGaXhlZCBXaWR0aCBJY29uc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZ3IHtcclxuICB3aWR0aDogKDE4ZW0gLyAxNCk7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbiIsIi8vIExpc3QgSWNvbnNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLkB7ZmEtY3NzLXByZWZpeH0tdWwge1xyXG4gIHBhZGRpbmctbGVmdDogMDtcclxuICBtYXJnaW4tbGVmdDogQGZhLWxpLXdpZHRoO1xyXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICA+IGxpIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XHJcbn1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGkge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAtQGZhLWxpLXdpZHRoO1xyXG4gIHdpZHRoOiBAZmEtbGktd2lkdGg7XHJcbiAgdG9wOiAoMmVtIC8gMTQpO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAmLkB7ZmEtY3NzLXByZWZpeH0tbGcge1xyXG4gICAgbGVmdDogKC1AZmEtbGktd2lkdGggKyAoNGVtIC8gMTQpKTtcclxuICB9XHJcbn1cclxuIiwiLy8gQm9yZGVyZWQgJiBQdWxsZWRcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLkB7ZmEtY3NzLXByZWZpeH0tYm9yZGVyIHtcclxuICBwYWRkaW5nOiAuMmVtIC4yNWVtIC4xNWVtO1xyXG4gIGJvcmRlcjogc29saWQgLjA4ZW0gQGZhLWJvcmRlci1jb2xvcjtcclxuICBib3JkZXItcmFkaXVzOiAuMWVtO1xyXG59XHJcblxyXG4ucHVsbC1yaWdodCB7IGZsb2F0OiByaWdodDsgfVxyXG4ucHVsbC1sZWZ0IHsgZmxvYXQ6IGxlZnQ7IH1cclxuXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9IHtcclxuICAmLnB1bGwtbGVmdCB7IG1hcmdpbi1yaWdodDogLjNlbTsgfVxyXG4gICYucHVsbC1yaWdodCB7IG1hcmdpbi1sZWZ0OiAuM2VtOyB9XHJcbn1cclxuIiwiLy8gQW5pbWF0ZWQgSWNvbnNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNwaW4ge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjtcclxuICAgICAgICAgIGFuaW1hdGlvbjogZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XHJcbn1cclxuXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXB1bHNlIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZhLXNwaW4ge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZmEtc3BpbiB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xyXG4gIH1cclxufVxyXG4iLCIvLyBSb3RhdGVkICYgRmxpcHBlZCBJY29uc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb3RhdGUtOTAgIHsgLmZhLWljb24tcm90YXRlKDkwZGVnLCAxKTsgIH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcm90YXRlLTE4MCB7IC5mYS1pY29uLXJvdGF0ZSgxODBkZWcsIDIpOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJvdGF0ZS0yNzAgeyAuZmEtaWNvbi1yb3RhdGUoMjcwZGVnLCAzKTsgfVxyXG5cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmxpcC1ob3Jpem9udGFsIHsgLmZhLWljb24tZmxpcCgtMSwgMSwgMCk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmxpcC12ZXJ0aWNhbCAgIHsgLmZhLWljb24tZmxpcCgxLCAtMSwgMik7IH1cclxuXHJcbi8vIEhvb2sgZm9yIElFOC05XHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbjpyb290IC5Ae2ZhLWNzcy1wcmVmaXh9LXJvdGF0ZS05MCxcclxuOnJvb3QgLkB7ZmEtY3NzLXByZWZpeH0tcm90YXRlLTE4MCxcclxuOnJvb3QgLkB7ZmEtY3NzLXByZWZpeH0tcm90YXRlLTI3MCxcclxuOnJvb3QgLkB7ZmEtY3NzLXByZWZpeH0tZmxpcC1ob3Jpem9udGFsLFxyXG46cm9vdCAuQHtmYS1jc3MtcHJlZml4fS1mbGlwLXZlcnRpY2FsIHtcclxuICBmaWx0ZXI6IG5vbmU7XHJcbn1cclxuIiwiLy8gTWl4aW5zXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4uZmEtaWNvbigpIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgQGZhLWZvbnQtc2l6ZS1iYXNlLzEgRm9udEF3ZXNvbWU7IC8vIHNob3J0ZW5pbmcgZm9udCBkZWNsYXJhdGlvblxyXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgLy8gY2FuJ3QgaGF2ZSBmb250LXNpemUgaW5oZXJpdCBvbiBsaW5lIGFib3ZlLCBzbyBuZWVkIHRvIG92ZXJyaWRlXHJcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87IC8vIG9wdGltaXplbGVnaWJpbGl0eSB0aHJvd3MgdGhpbmdzIG9mZiAjMTA5NFxyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IC8vIGVuc3VyZXMgbm8gaGFsZi1waXhlbCByZW5kZXJpbmcgaW4gZmlyZWZveFxyXG5cclxufVxyXG5cclxuLmZhLWljb24tcm90YXRlKEBkZWdyZWVzLCBAcm90YXRpb24pIHtcclxuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPUByb3RhdGlvbik7XHJcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XHJcbn1cclxuXHJcbi5mYS1pY29uLWZsaXAoQGhvcml6LCBAdmVydCwgQHJvdGF0aW9uKSB7XHJcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj1Acm90YXRpb24sIG1pcnJvcj0xKTtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQGhvcml6LCBAdmVydCk7XHJcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKEBob3JpeiwgQHZlcnQpO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZShAaG9yaXosIEB2ZXJ0KTtcclxufVxyXG4iLCIvLyBTdGFja2VkIEljb25zXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YWNrIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAyZW07XHJcbiAgaGVpZ2h0OiAyZW07XHJcbiAgbGluZS1oZWlnaHQ6IDJlbTtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG59XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YWNrLTF4LCAuQHtmYS1jc3MtcHJlZml4fS1zdGFjay0yeCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YWNrLTF4IHsgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3RhY2stMnggeyBmb250LXNpemU6IDJlbTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1pbnZlcnNlIHsgY29sb3I6IEBmYS1pbnZlcnNlOyB9XHJcbiIsIi8qIEZvbnQgQXdlc29tZSB1c2VzIHRoZSBVbmljb2RlIFByaXZhdGUgVXNlIEFyZWEgKFBVQSkgdG8gZW5zdXJlIHNjcmVlblxyXG4gICByZWFkZXJzIGRvIG5vdCByZWFkIG9mZiByYW5kb20gY2hhcmFjdGVycyB0aGF0IHJlcHJlc2VudCBpY29ucyAqL1xyXG5cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2xhc3M6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1nbGFzczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tdXNpYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW11c2ljOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNlYXJjaDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNlYXJjaDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1lbnZlbG9wZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZW52ZWxvcGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oZWFydDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWhlYXJ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdGFyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YXItbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXN0YXItbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11c2VyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdXNlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxtOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmlsbTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10aC1sYXJnZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRoLWxhcmdlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRoOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGg7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGgtbGlzdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRoLWxpc3Q7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hlY2s6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaGVjazsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZW1vdmU6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1jbG9zZTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRpbWVzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGltZXM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2VhcmNoLXBsdXM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zZWFyY2gtcGx1czsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zZWFyY2gtbWludXM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zZWFyY2gtbWludXM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcG93ZXItb2ZmOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcG93ZXItb2ZmOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNpZ25hbDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNpZ25hbDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1nZWFyOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tY29nOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY29nOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRyYXNoLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10cmFzaC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWhvbWU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ob21lOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jbG9jay1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2xvY2stbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb2FkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcm9hZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1kb3dubG9hZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWRvd25sb2FkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFycm93LWNpcmNsZS1vLWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcnJvdy1jaXJjbGUtby1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFycm93LWNpcmNsZS1vLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3ctY2lyY2xlLW8tdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taW5ib3g6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1pbmJveDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1wbGF5LWNpcmNsZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGxheS1jaXJjbGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb3RhdGUtcmlnaHQ6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZXBlYXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZXBlYXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcmVmcmVzaDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXJlZnJlc2g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGlzdC1hbHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1saXN0LWFsdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1sb2NrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbG9jazsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mbGFnOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmxhZzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oZWFkcGhvbmVzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItaGVhZHBob25lczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS12b2x1bWUtb2ZmOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdm9sdW1lLW9mZjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS12b2x1bWUtZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZvbHVtZS1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXZvbHVtZS11cDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZvbHVtZS11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1xcmNvZGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1xcmNvZGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYmFyY29kZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJhcmNvZGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGFnOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGFnOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRhZ3M6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10YWdzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJvb2s6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ib29rOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJvb2ttYXJrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYm9va21hcms7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcHJpbnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wcmludDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYW1lcmE6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYW1lcmE7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZm9udDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZvbnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYm9sZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJvbGQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taXRhbGljOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItaXRhbGljOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRleHQtaGVpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGV4dC1oZWlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGV4dC13aWR0aDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRleHQtd2lkdGg7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYWxpZ24tbGVmdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFsaWduLWxlZnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYWxpZ24tY2VudGVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYWxpZ24tY2VudGVyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFsaWduLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYWxpZ24tcmlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYWxpZ24tanVzdGlmeTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFsaWduLWp1c3RpZnk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGlzdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxpc3Q7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGVkZW50OmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tb3V0ZGVudDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW91dGRlbnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taW5kZW50OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItaW5kZW50OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXZpZGVvLWNhbWVyYTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZpZGVvLWNhbWVyYTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1waG90bzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWltYWdlOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tcGljdHVyZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGljdHVyZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBlbmNpbDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXBlbmNpbDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tYXAtbWFya2VyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWFwLW1hcmtlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hZGp1c3Q6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hZGp1c3Q7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGludDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRpbnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZWRpdDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBlbmNpbC1zcXVhcmUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXBlbmNpbC1zcXVhcmUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaGFyZS1zcXVhcmUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNoYXJlLXNxdWFyZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoZWNrLXNxdWFyZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hlY2stc3F1YXJlLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3dzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3dzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0ZXAtYmFja3dhcmQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdGVwLWJhY2t3YXJkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZhc3QtYmFja3dhcmQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1mYXN0LWJhY2t3YXJkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJhY2t3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmFja3dhcmQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGxheTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXBsYXk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGF1c2U6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wYXVzZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdG9wOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RvcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mb3J3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZm9yd2FyZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mYXN0LWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1mYXN0LWZvcndhcmQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3RlcC1mb3J3YXJkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RlcC1mb3J3YXJkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWVqZWN0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZWplY3Q7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hldnJvbi1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hldnJvbi1sZWZ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoZXZyb24tcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaGV2cm9uLXJpZ2h0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBsdXMtY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGx1cy1jaXJjbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWludXMtY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWludXMtY2lyY2xlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRpbWVzLWNpcmNsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRpbWVzLWNpcmNsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jaGVjay1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaGVjay1jaXJjbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcXVlc3Rpb24tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcXVlc3Rpb24tY2lyY2xlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWluZm8tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItaW5mby1jaXJjbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY3Jvc3NoYWlyczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNyb3NzaGFpcnM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGltZXMtY2lyY2xlLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10aW1lcy1jaXJjbGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jaGVjay1jaXJjbGUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNoZWNrLWNpcmNsZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJhbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJhbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3ctbGVmdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFycm93LXJpZ2h0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFycm93LXVwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3ctdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3ctZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFycm93LWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWFpbC1mb3J3YXJkOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tc2hhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaGFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1leHBhbmQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1leHBhbmQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29tcHJlc3M6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jb21wcmVzczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGx1czsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1taW51czpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1pbnVzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFzdGVyaXNrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXN0ZXJpc2s7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZXhjbGFtYXRpb24tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXhjbGFtYXRpb24tY2lyY2xlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdpZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1naWZ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxlYWY6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1sZWFmOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV5ZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWV5ZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1leWUtc2xhc2g6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1leWUtc2xhc2g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0td2FybmluZzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXhjbGFtYXRpb24tdHJpYW5nbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGxhbmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wbGFuZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYWxlbmRhcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhbGVuZGFyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJhbmRvbTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXJhbmRvbTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jb21tZW50OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY29tbWVudDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tYWduZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tYWduZXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hldnJvbi11cDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNoZXZyb24tdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hldnJvbi1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hldnJvbi1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJldHdlZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZXR3ZWV0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNob3BwaW5nLWNhcnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaG9wcGluZy1jYXJ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZvbGRlcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZvbGRlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mb2xkZXItb3BlbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZvbGRlci1vcGVuOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFycm93cy12OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3dzLXY7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3dzLWg6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcnJvd3MtaDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iYXItY2hhcnQtbzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJhci1jaGFydDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJhci1jaGFydDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10d2l0dGVyLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXR3aXR0ZXItc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZhY2Vib29rLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZhY2Vib29rLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYW1lcmEtcmV0cm86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYW1lcmEtcmV0cm87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0ta2V5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXIta2V5OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdlYXJzOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tY29nczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNvZ3M7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29tbWVudHM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jb21tZW50czsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10aHVtYnMtby11cDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRodW1icy1vLXVwOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRodW1icy1vLWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10aHVtYnMtby1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YXItaGFsZjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXN0YXItaGFsZjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oZWFydC1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItaGVhcnQtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaWduLW91dDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNpZ24tb3V0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpbmtlZGluLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxpbmtlZGluLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10aHVtYi10YWNrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGh1bWItdGFjazsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1leHRlcm5hbC1saW5rOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXh0ZXJuYWwtbGluazsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaWduLWluOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2lnbi1pbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10cm9waHk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10cm9waHk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2l0aHViLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdpdGh1Yi1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdXBsb2FkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdXBsb2FkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxlbW9uLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1sZW1vbi1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBob25lOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGhvbmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3F1YXJlLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zcXVhcmUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1ib29rbWFyay1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYm9va21hcmstbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1waG9uZS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1waG9uZS1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHdpdHRlcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXR3aXR0ZXI7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmFjZWJvb2stZjpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZhY2Vib29rOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmFjZWJvb2s7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2l0aHViOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZ2l0aHViOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXVubG9jazpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVubG9jazsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jcmVkaXQtY2FyZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNyZWRpdC1jYXJkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJzczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXJzczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oZGQtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWhkZC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJ1bGxob3JuOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYnVsbGhvcm47IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYmVsbDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJlbGw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2VydGlmaWNhdGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jZXJ0aWZpY2F0ZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oYW5kLW8tcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1oYW5kLW8tcmlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taGFuZC1vLWxlZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1oYW5kLW8tbGVmdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oYW5kLW8tdXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1oYW5kLW8tdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taGFuZC1vLWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1oYW5kLW8tZG93bjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFycm93LWNpcmNsZS1sZWZ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFycm93LWNpcmNsZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFycm93LWNpcmNsZS1yaWdodDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hcnJvdy1jaXJjbGUtdXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcnJvdy1jaXJjbGUtdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3ctY2lyY2xlLWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcnJvdy1jaXJjbGUtZG93bjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1nbG9iZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdsb2JlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXdyZW5jaDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXdyZW5jaDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10YXNrczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRhc2tzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbHRlcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbHRlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1icmllZmNhc2U6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1icmllZmNhc2U7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3dzLWFsdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFycm93cy1hbHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ3JvdXA6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS11c2VyczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVzZXJzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoYWluOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tbGluazpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxpbms7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2xvdWQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jbG91ZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mbGFzazpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZsYXNrOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWN1dDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNjaXNzb3JzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2Npc3NvcnM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29weTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGVzLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maWxlcy1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBhcGVyY2xpcDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXBhcGVyY2xpcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zYXZlOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tZmxvcHB5LW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1mbG9wcHktbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbmF2aWNvbjpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJlb3JkZXI6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1iYXJzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmFyczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1saXN0LXVsOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGlzdC11bDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1saXN0LW9sOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGlzdC1vbDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdHJpa2V0aHJvdWdoOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RyaWtldGhyb3VnaDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11bmRlcmxpbmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci11bmRlcmxpbmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGFibGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10YWJsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tYWdpYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1hZ2ljOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRydWNrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdHJ1Y2s7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGludGVyZXN0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGludGVyZXN0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBpbnRlcmVzdC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1waW50ZXJlc3Qtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdvb2dsZS1wbHVzLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdvb2dsZS1wbHVzLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1nb29nbGUtcGx1czpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdvb2dsZS1wbHVzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1vbmV5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbW9uZXk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FyZXQtZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhcmV0LWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FyZXQtdXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYXJldC11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYXJldC1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2FyZXQtbGVmdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYXJldC1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhcmV0LXJpZ2h0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNvbHVtbnM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jb2x1bW5zOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXVuc29ydGVkOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tc29ydDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNvcnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc29ydC1kb3duOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tc29ydC1kZXNjOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc29ydC1kZXNjOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNvcnQtdXA6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1zb3J0LWFzYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNvcnQtYXNjOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWVudmVsb3BlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZW52ZWxvcGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGlua2VkaW46YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1saW5rZWRpbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb3RhdGUtbGVmdDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXVuZG86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci11bmRvOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxlZ2FsOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2F2ZWw6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1nYXZlbDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1kYXNoYm9hcmQ6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS10YWNob21ldGVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGFjaG9tZXRlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jb21tZW50LW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jb21tZW50LW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29tbWVudHMtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNvbW1lbnRzLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmxhc2g6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1ib2x0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYm9sdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaXRlbWFwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2l0ZW1hcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11bWJyZWxsYTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVtYnJlbGxhOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBhc3RlOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tY2xpcGJvYXJkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2xpcGJvYXJkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpZ2h0YnVsYi1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGlnaHRidWxiLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZXhjaGFuZ2U6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1leGNoYW5nZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jbG91ZC1kb3dubG9hZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNsb3VkLWRvd25sb2FkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNsb3VkLXVwbG9hZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNsb3VkLXVwbG9hZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11c2VyLW1kOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdXNlci1tZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdGV0aG9zY29wZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXN0ZXRob3Njb3BlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN1aXRjYXNlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3VpdGNhc2U7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYmVsbC1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmVsbC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNvZmZlZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNvZmZlZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jdXRsZXJ5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY3V0bGVyeTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLXRleHQtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtdGV4dC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJ1aWxkaW5nLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1idWlsZGluZy1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWhvc3BpdGFsLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ob3NwaXRhbC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFtYnVsYW5jZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFtYnVsYW5jZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tZWRraXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tZWRraXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlnaHRlci1qZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maWdodGVyLWpldDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iZWVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmVlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWgtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBsdXMtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGx1cy1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hbmdsZS1kb3VibGUtbGVmdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hbmdsZS1kb3VibGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hbmdsZS1kb3VibGUtcmlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYW5nbGUtZG91YmxlLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYW5nbGUtZG91YmxlLXVwOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYW5nbGUtZG91YmxlLWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYW5nbGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFuZ2xlLWxlZnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYW5nbGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hbmdsZS1yaWdodDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hbmdsZS11cDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFuZ2xlLXVwOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFuZ2xlLWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hbmdsZS1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWRlc2t0b3A6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1kZXNrdG9wOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxhcHRvcDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxhcHRvcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10YWJsZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10YWJsZXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbW9iaWxlLXBob25lOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tbW9iaWxlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbW9iaWxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNpcmNsZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2lyY2xlLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcXVvdGUtbGVmdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXF1b3RlLWxlZnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcXVvdGUtcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1xdW90ZS1yaWdodDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zcGlubmVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3Bpbm5lcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jaXJjbGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaXJjbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWFpbC1yZXBseTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJlcGx5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcmVwbHk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2l0aHViLWFsdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdpdGh1Yi1hbHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZm9sZGVyLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1mb2xkZXItbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mb2xkZXItb3Blbi1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZm9sZGVyLW9wZW4tbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zbWlsZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc21pbGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mcm93bi1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZnJvd24tbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tZWgtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1laC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdhbWVwYWQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1nYW1lcGFkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWtleWJvYXJkLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1rZXlib2FyZC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZsYWctbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZsYWctbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mbGFnLWNoZWNrZXJlZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZsYWctY2hlY2tlcmVkOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRlcm1pbmFsOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGVybWluYWw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29kZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNvZGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWFpbC1yZXBseS1hbGw6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZXBseS1hbGw6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZXBseS1hbGw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3Rhci1oYWxmLWVtcHR5OmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tc3Rhci1oYWxmLWZ1bGw6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdGFyLWhhbGYtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXN0YXItaGFsZi1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxvY2F0aW9uLWFycm93OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbG9jYXRpb24tYXJyb3c7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY3JvcDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNyb3A7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY29kZS1mb3JrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY29kZS1mb3JrOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXVubGluazpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoYWluLWJyb2tlbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNoYWluLWJyb2tlbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1xdWVzdGlvbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXF1ZXN0aW9uOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWluZm86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1pbmZvOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV4Y2xhbWF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXhjbGFtYXRpb247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3VwZXJzY3JpcHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdXBlcnNjcmlwdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdWJzY3JpcHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdWJzY3JpcHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZXJhc2VyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXJhc2VyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXB1enpsZS1waWVjZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXB1enpsZS1waWVjZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1taWNyb3Bob25lOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWljcm9waG9uZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWljcm9waG9uZS1zbGFzaDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaGllbGQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaGllbGQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FsZW5kYXItbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhbGVuZGFyLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlyZS1leHRpbmd1aXNoZXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maXJlLWV4dGluZ3Vpc2hlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb2NrZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yb2NrZXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWF4Y2RuOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWF4Y2RuOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaGV2cm9uLWNpcmNsZS1sZWZ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hldnJvbi1jaXJjbGUtcmlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hldnJvbi1jaXJjbGUtdXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jaGV2cm9uLWNpcmNsZS11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hldnJvbi1jaXJjbGUtZG93bjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1odG1sNTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWh0bWw1OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNzczM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jc3MzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFuY2hvcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFuY2hvcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11bmxvY2stYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdW5sb2NrLWFsdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1idWxsc2V5ZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJ1bGxzZXllOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWVsbGlwc2lzLWg6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1lbGxpcHNpcy1oOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWVsbGlwc2lzLXY6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1lbGxpcHNpcy12OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJzcy1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yc3Mtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBsYXktY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGxheS1jaXJjbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdGlja2V0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdGlja2V0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1pbnVzLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1pbnVzLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1taW51cy1zcXVhcmUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1pbnVzLXNxdWFyZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxldmVsLXVwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGV2ZWwtdXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbGV2ZWwtZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxldmVsLWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2hlY2stc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hlY2stc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBlbmNpbC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wZW5jaWwtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV4dGVybmFsLWxpbmstc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZXh0ZXJuYWwtbGluay1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2hhcmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2hhcmUtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNvbXBhc3M6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jb21wYXNzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRvZ2dsZS1kb3duOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FyZXQtc3F1YXJlLW8tZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhcmV0LXNxdWFyZS1vLWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdG9nZ2xlLXVwOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FyZXQtc3F1YXJlLW8tdXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYXJldC1zcXVhcmUtby11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10b2dnbGUtcmlnaHQ6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYXJldC1zcXVhcmUtby1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhcmV0LXNxdWFyZS1vLXJpZ2h0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV1cm86YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1ldXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ldXI7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ2JwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZ2JwOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWRvbGxhcjpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXVzZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVzZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1ydXBlZTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWlucjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWlucjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jbnk6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1ybWI6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS15ZW46YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1qcHk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1qcHk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcnVibGU6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1yb3VibGU6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1ydWI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ydWI7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0td29uOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0ta3J3OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXIta3J3OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJpdGNvaW46YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1idGM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1idGM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlsZS10ZXh0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmlsZS10ZXh0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNvcnQtYWxwaGEtYXNjOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc29ydC1hbHBoYS1hc2M7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc29ydC1hbHBoYS1kZXNjOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc29ydC1hbHBoYS1kZXNjOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNvcnQtYW1vdW50LWFzYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNvcnQtYW1vdW50LWFzYzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zb3J0LWFtb3VudC1kZXNjOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc29ydC1hbW91bnQtZGVzYzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zb3J0LW51bWVyaWMtYXNjOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc29ydC1udW1lcmljLWFzYzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zb3J0LW51bWVyaWMtZGVzYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNvcnQtbnVtZXJpYy1kZXNjOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRodW1icy11cDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRodW1icy11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10aHVtYnMtZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRodW1icy1kb3duOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXlvdXR1YmUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXIteW91dHViZS1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0teW91dHViZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXlvdXR1YmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0teGluZzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXhpbmc7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0teGluZy1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci14aW5nLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS15b3V0dWJlLXBsYXk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci15b3V0dWJlLXBsYXk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZHJvcGJveDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWRyb3Bib3g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3RhY2stb3ZlcmZsb3c6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdGFjay1vdmVyZmxvdzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1pbnN0YWdyYW07IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmxpY2tyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmxpY2tyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFkbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFkbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iaXRidWNrZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1iaXRidWNrZXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYml0YnVja2V0LXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJpdGJ1Y2tldC1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHVtYmxyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdHVtYmxyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXR1bWJsci1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10dW1ibHItc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxvbmctYXJyb3ctZG93bjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxvbmctYXJyb3ctZG93bjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1sb25nLWFycm93LXVwOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbG9uZy1hcnJvdy11cDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1sb25nLWFycm93LWxlZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1sb25nLWFycm93LWxlZnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbG9uZy1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxvbmctYXJyb3ctcmlnaHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXBwbGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcHBsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS13aW5kb3dzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItd2luZG93czsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hbmRyb2lkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYW5kcm9pZDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1saW51eDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxpbnV4OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWRyaWJiYmxlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZHJpYmJibGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2t5cGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1za3lwZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mb3Vyc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZm91cnNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10cmVsbG86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10cmVsbG87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmVtYWxlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmVtYWxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1hbGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tYWxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdpdHRpcDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdyYXRpcGF5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZ3JhdGlwYXk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3VuLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdW4tbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tb29uLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tb29uLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJjaGl2ZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFyY2hpdmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYnVnOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYnVnOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXZrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdms7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0td2VpYm86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci13ZWlibzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZW5yZW46YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZW5yZW47IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGFnZWxpbmVzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGFnZWxpbmVzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0YWNrLWV4Y2hhbmdlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RhY2stZXhjaGFuZ2U7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJyb3ctY2lyY2xlLW8tcmlnaHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1hcnJvdy1jaXJjbGUtby1yaWdodDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hcnJvdy1jaXJjbGUtby1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYXJyb3ctY2lyY2xlLW8tbGVmdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10b2dnbGUtbGVmdDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNhcmV0LXNxdWFyZS1vLWxlZnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYXJldC1zcXVhcmUtby1sZWZ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWRvdC1jaXJjbGUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWRvdC1jaXJjbGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS13aGVlbGNoYWlyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItd2hlZWxjaGFpcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS12aW1lby1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci12aW1lby1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHVya2lzaC1saXJhOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tdHJ5OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdHJ5OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBsdXMtc3F1YXJlLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wbHVzLXNxdWFyZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNwYWNlLXNodXR0bGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zcGFjZS1zaHV0dGxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNsYWNrOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2xhY2s7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZW52ZWxvcGUtc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZW52ZWxvcGUtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXdvcmRwcmVzczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXdvcmRwcmVzczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1vcGVuaWQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1vcGVuaWQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taW5zdGl0dXRpb246YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1iYW5rOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tdW5pdmVyc2l0eTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVuaXZlcnNpdHk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbW9ydGFyLWJvYXJkOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tZ3JhZHVhdGlvbi1jYXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ncmFkdWF0aW9uLWNhcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS15YWhvbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXlhaG9vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdvb2dsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdvb2dsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZWRkaXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZWRkaXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcmVkZGl0LXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXJlZGRpdC1zcXVhcmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3R1bWJsZXVwb24tY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3R1bWJsZXVwb24tY2lyY2xlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0dW1ibGV1cG9uOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3R1bWJsZXVwb247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGVsaWNpb3VzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZGVsaWNpb3VzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWRpZ2c6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1kaWdnOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBpZWQtcGlwZXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1waWVkLXBpcGVyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBpZWQtcGlwZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGllZC1waXBlci1hbHQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZHJ1cGFsOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZHJ1cGFsOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWpvb21sYTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWpvb21sYTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1sYW5ndWFnZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxhbmd1YWdlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZheDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZheDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1idWlsZGluZzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJ1aWxkaW5nOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNoaWxkOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2hpbGQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGF3OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGF3OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNwb29uOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3Bvb247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY3ViZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWN1YmU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY3ViZXM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jdWJlczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iZWhhbmNlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmVoYW5jZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iZWhhbmNlLXNxdWFyZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJlaGFuY2Utc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXN0ZWFtOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RlYW07IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3RlYW0tc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc3RlYW0tc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXJlY3ljbGU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1yZWN5Y2xlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWF1dG9tb2JpbGU6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYXI7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2FiOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tdGF4aTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRheGk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHJlZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRyZWU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc3BvdGlmeTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNwb3RpZnk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGV2aWFudGFydDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWRldmlhbnRhcnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc291bmRjbG91ZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNvdW5kY2xvdWQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGF0YWJhc2U6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1kYXRhYmFzZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLXBkZi1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmlsZS1wZGYtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLXdvcmQtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtd29yZC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtZXhjZWwtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtZXhjZWwtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLXBvd2VycG9pbnQtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtcG93ZXJwb2ludC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtcGhvdG8tbzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtcGljdHVyZS1vOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlsZS1pbWFnZS1vOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmlsZS1pbWFnZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtemlwLW86YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLWFyY2hpdmUtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtYXJjaGl2ZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtc291bmQtbzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZpbGUtYXVkaW8tbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZpbGUtYXVkaW8tbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLW1vdmllLW86YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1maWxlLXZpZGVvLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maWxlLXZpZGVvLW87IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZmlsZS1jb2RlLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1maWxlLWNvZGUtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS12aW5lOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdmluZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jb2RlcGVuOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY29kZXBlbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1qc2ZpZGRsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWpzZmlkZGxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpZmUtYm91eTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpZmUtYnVveTpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpZmUtc2F2ZXI6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdXBwb3J0OmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tbGlmZS1yaW5nOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGlmZS1yaW5nOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNpcmNsZS1vLW5vdGNoOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2lyY2xlLW8tbm90Y2g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcmE6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1yZWJlbDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXJlYmVsOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdlOmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0tZW1waXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZW1waXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdpdC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1naXQtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdpdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdpdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1oYWNrZXItbmV3czpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWhhY2tlci1uZXdzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRlbmNlbnQtd2VpYm86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10ZW5jZW50LXdlaWJvOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXFxOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcXE7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0td2VjaGF0OmJlZm9yZSxcclxuLkB7ZmEtY3NzLXByZWZpeH0td2VpeGluOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItd2VpeGluOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNlbmQ6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1wYXBlci1wbGFuZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXBhcGVyLXBsYW5lOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNlbmQtbzpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBhcGVyLXBsYW5lLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wYXBlci1wbGFuZS1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWhpc3Rvcnk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1oaXN0b3J5OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWdlbmRlcmxlc3M6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1jaXJjbGUtdGhpbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNpcmNsZS10aGluOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWhlYWRlcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWhlYWRlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1wYXJhZ3JhcGg6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wYXJhZ3JhcGg7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2xpZGVyczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNsaWRlcnM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2hhcmUtYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2hhcmUtYWx0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNoYXJlLWFsdC1zcXVhcmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaGFyZS1hbHQtc3F1YXJlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJvbWI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1ib21iOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNvY2Nlci1iYWxsLW86YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1mdXRib2wtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZ1dGJvbC1vOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXR0eTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXR0eTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1iaW5vY3VsYXJzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYmlub2N1bGFyczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1wbHVnOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGx1ZzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zbGlkZXNoYXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItc2xpZGVzaGFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10d2l0Y2g6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10d2l0Y2g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0teWVscDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXllbHA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbmV3c3BhcGVyLW86YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1uZXdzcGFwZXItbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS13aWZpOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItd2lmaTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYWxjdWxhdG9yOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2FsY3VsYXRvcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1wYXlwYWw6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1wYXlwYWw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZ29vZ2xlLXdhbGxldDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWdvb2dsZS13YWxsZXQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2MtdmlzYTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNjLXZpc2E7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2MtbWFzdGVyY2FyZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNjLW1hc3RlcmNhcmQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2MtZGlzY292ZXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYy1kaXNjb3ZlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYy1hbWV4OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2MtYW1leDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYy1wYXlwYWw6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYy1wYXlwYWw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tY2Mtc3RyaXBlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY2Mtc3RyaXBlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJlbGwtc2xhc2g6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1iZWxsLXNsYXNoOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJlbGwtc2xhc2gtbzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJlbGwtc2xhc2gtbzsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10cmFzaDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXRyYXNoOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNvcHlyaWdodDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNvcHlyaWdodDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1hdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWF0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWV5ZWRyb3BwZXI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1leWVkcm9wcGVyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXBhaW50LWJydXNoOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGFpbnQtYnJ1c2g7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYmlydGhkYXktY2FrZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJpcnRoZGF5LWNha2U7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYXJlYS1jaGFydDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFyZWEtY2hhcnQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGllLWNoYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItcGllLWNoYXJ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxpbmUtY2hhcnQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1saW5lLWNoYXJ0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxhc3RmbTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWxhc3RmbTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1sYXN0Zm0tc3F1YXJlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbGFzdGZtLXNxdWFyZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10b2dnbGUtb2ZmOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdG9nZ2xlLW9mZjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS10b2dnbGUtb246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10b2dnbGUtb247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYmljeWNsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWJpY3ljbGU7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tYnVzOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItYnVzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWlveGhvc3Q6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1pb3hob3N0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWFuZ2VsbGlzdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWFuZ2VsbGlzdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNjOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNoZWtlbDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNoZXFlbDpiZWZvcmUsXHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWlsczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWlsczsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tZWFucGF0aDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1lYW5wYXRoOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWJ1eXNlbGxhZHM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1idXlzZWxsYWRzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNvbm5lY3RkZXZlbG9wOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItY29ubmVjdGRldmVsb3A7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGFzaGN1YmU6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1kYXNoY3ViZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1mb3J1bWJlZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWZvcnVtYmVlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWxlYW5wdWI6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1sZWFucHViOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNlbGxzeTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNlbGxzeTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zaGlydHNpbmJ1bGs6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaGlydHNpbmJ1bGs7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2ltcGx5YnVpbHQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zaW1wbHlidWlsdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1za3lhdGxhczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNreWF0bGFzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWNhcnQtcGx1czpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWNhcnQtcGx1czsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1jYXJ0LWFycm93LWRvd246YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1jYXJ0LWFycm93LWRvd247IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tZGlhbW9uZDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWRpYW1vbmQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tc2hpcDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNoaXA7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdXNlci1zZWNyZXQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci11c2VyLXNlY3JldDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tb3RvcmN5Y2xlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbW90b3JjeWNsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdHJlZXQtdmlldzpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXN0cmVldC12aWV3OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWhlYXJ0YmVhdDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLWhlYXJ0YmVhdDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS12ZW51czpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZlbnVzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1hcnM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tYXJzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1lcmN1cnk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1tZXJjdXJ5OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXRyYW5zZ2VuZGVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdHJhbnNnZW5kZXI7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHJhbnNnZW5kZXItYWx0OmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItdHJhbnNnZW5kZXItYWx0OyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXZlbnVzLWRvdWJsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZlbnVzLWRvdWJsZTsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1tYXJzLWRvdWJsZTpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1hcnMtZG91YmxlOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXZlbnVzLW1hcnM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci12ZW51cy1tYXJzOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LW1hcnMtc3Ryb2tlOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWFycy1zdHJva2U7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWFycy1zdHJva2UtdjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1hcnMtc3Ryb2tlLXY7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWFycy1zdHJva2UtaDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLW1hcnMtc3Ryb2tlLWg7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbmV1dGVyOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbmV1dGVyOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LWZhY2Vib29rLW9mZmljaWFsOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItZmFjZWJvb2stb2ZmaWNpYWw7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tcGludGVyZXN0LXA6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1waW50ZXJlc3QtcDsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS13aGF0c2FwcDpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXdoYXRzYXBwOyB9XHJcbi5Ae2ZhLWNzcy1wcmVmaXh9LXNlcnZlcjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXNlcnZlcjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS11c2VyLXBsdXM6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci11c2VyLXBsdXM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdXNlci10aW1lczpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXVzZXItdGltZXM7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0taG90ZWw6YmVmb3JlLFxyXG4uQHtmYS1jc3MtcHJlZml4fS1iZWQ6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1iZWQ7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdmlhY29pbjpiZWZvcmUgeyBjb250ZW50OiBAZmEtdmFyLXZpYWNvaW47IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tdHJhaW46YmVmb3JlIHsgY29udGVudDogQGZhLXZhci10cmFpbjsgfVxyXG4uQHtmYS1jc3MtcHJlZml4fS1zdWJ3YXk6YmVmb3JlIHsgY29udGVudDogQGZhLXZhci1zdWJ3YXk7IH1cclxuLkB7ZmEtY3NzLXByZWZpeH0tbWVkaXVtOmJlZm9yZSB7IGNvbnRlbnQ6IEBmYS12YXItbWVkaXVtOyB9XHJcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */ \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Styles/admin-dialog.css b/src/Orchard.Web/Modules/Orchard.Layouts/Styles/admin-dialog.css index ef66b3302..fb974363f 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Styles/admin-dialog.css +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Styles/admin-dialog.css @@ -75,7 +75,8 @@ header, footer, aside, nav, article { display: block; } } .zone-content .edit-widget .primary .widget-props, -.zone-content .edit-widget .secondary { +.zone-content .edit-widget .secondary, +.zone-content .edit-item .edit-item-secondary { display: none; } diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/ViewModels/LayoutEditor.cs b/src/Orchard.Web/Modules/Orchard.Layouts/ViewModels/LayoutEditor.cs index aafe067be..7c698de89 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/ViewModels/LayoutEditor.cs +++ b/src/Orchard.Web/Modules/Orchard.Layouts/ViewModels/LayoutEditor.cs @@ -7,7 +7,7 @@ namespace Orchard.Layouts.ViewModels { public IContent Content { get; set; } public string Data { get; set; } public string ConfigurationData { get; set; } - public string Trash { get; set; } + public string RecycleBin { get; set; } public int? TemplateId { get; set; } public string SessionKey { get; set; } public IList Templates { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/ViewModels/PlaceableContentItemViewModel.cs b/src/Orchard.Web/Modules/Orchard.Layouts/ViewModels/PlaceableContentItemViewModel.cs new file mode 100644 index 000000000..2445def98 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/ViewModels/PlaceableContentItemViewModel.cs @@ -0,0 +1,5 @@ +namespace Orchard.Layouts.ViewModels { + public class PlaceableContentItemViewModel { + public int? ContentItemId { get; set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Views/DefinitionTemplates/ContentPartLayoutSettings.cshtml b/src/Orchard.Web/Modules/Orchard.Layouts/Views/DefinitionTemplates/ContentPartLayoutSettings.cshtml index 9b9117ab3..755ac3a3b 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Views/DefinitionTemplates/ContentPartLayoutSettings.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Views/DefinitionTemplates/ContentPartLayoutSettings.cshtml @@ -1,8 +1,4 @@ @model Orchard.Layouts.Settings.ContentPartLayoutSettings -@{ - Script.Require("jQuery"); - Script.Include("contentpart-layouts-settings.js"); -}
@Html.CheckBoxFor(m => m.Placeable) diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Views/DefinitionTemplates/ContentTypeLayoutSettings.cshtml b/src/Orchard.Web/Modules/Orchard.Layouts/Views/DefinitionTemplates/ContentTypeLayoutSettings.cshtml new file mode 100644 index 000000000..3d6dd8cfb --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Views/DefinitionTemplates/ContentTypeLayoutSettings.cshtml @@ -0,0 +1,6 @@ +@model Orchard.Layouts.Settings.ContentTypeLayoutSettings +
+ @Html.CheckBoxFor(m => m.Placeable) + + @T("Check to allow this type to be placeable on a layout.") +
\ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/Elements.PlaceableContentItem.cshtml b/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/Elements.PlaceableContentItem.cshtml new file mode 100644 index 000000000..9c55c19e3 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/Elements.PlaceableContentItem.cshtml @@ -0,0 +1,2 @@ +@model Orchard.Layouts.ViewModels.PlaceableContentItemViewModel +@Html.HiddenFor(m => m.ContentItemId) \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/LayoutEditor.cshtml b/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/LayoutEditor.cshtml index 77da2ebe4..728150bc7 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/LayoutEditor.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Views/EditorTemplates/LayoutEditor.cshtml @@ -66,6 +66,7 @@ @Html.HiddenFor(m => m.SessionKey) @Html.HiddenFor(m => m.Data, new { @class = "layout-data-field" }) + @Html.HiddenFor(m => m.RecycleBin, new { @class = "recycle-bin-data-field" })
  1. diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Views/Elements/PlaceableContentItem.Design.cshtml b/src/Orchard.Web/Modules/Orchard.Layouts/Views/Elements/PlaceableContentItem.Design.cshtml new file mode 100644 index 000000000..e558b56f8 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Views/Elements/PlaceableContentItem.Design.cshtml @@ -0,0 +1,12 @@ +@using Orchard.ContentManagement +@{ + var contentItem = (ContentItem)Model.ContentItem; +} +
    + @if (contentItem != null) { + @String.Format("{0} - {1}", Html.ItemDisplayText(contentItem), contentItem.TypeDefinition.DisplayName) + } + else { + @T("Content Item Not Found"); + } +
    \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Views/Elements/PlaceableContentItem.cshtml b/src/Orchard.Web/Modules/Orchard.Layouts/Views/Elements/PlaceableContentItem.cshtml new file mode 100644 index 000000000..1ec56cf21 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Views/Elements/PlaceableContentItem.cshtml @@ -0,0 +1,9 @@ +@using Orchard.Layouts.Helpers +@{ + var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model); +} +@tagBuilder.StartElement +@if (Model.ContentShape != null) { + @Display(Model.ContentShape) +} +@tagBuilder.EndElement \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Conditions/ContentDisplayedRuleProvider.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Conditions/ContentDisplayedRuleProvider.cs new file mode 100644 index 000000000..ea53d8563 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Conditions/ContentDisplayedRuleProvider.cs @@ -0,0 +1,23 @@ +using System; +using Orchard.Conditions.Services; +using Orchard.Widgets.Handlers; + +namespace Orchard.Widgets.Conditions { + public class ContentDisplayedRuleProvider : IConditionProvider { + private readonly IDisplayedContentItemHandler _displayedContentItemHandler; + + public ContentDisplayedRuleProvider(IDisplayedContentItemHandler displayedContentItemHandler) { + _displayedContentItemHandler = displayedContentItemHandler; + } + + public void Evaluate(ConditionEvaluationContext evaluationContext) { + if (!String.Equals(evaluationContext.FunctionName, "contenttype", StringComparison.OrdinalIgnoreCase)) { + return; + } + + var contentType = Convert.ToString(evaluationContext.Arguments[0]); + + evaluationContext.Result = _displayedContentItemHandler.IsDisplayed(contentType); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/LayerPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/LayerPartDriver.cs index 202ea2692..c0cc0c2a7 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/LayerPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Drivers/LayerPartDriver.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Orchard.Conditions.Services; using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; using Orchard.ContentManagement.Handlers; @@ -11,14 +12,14 @@ using Orchard.Widgets.Services; namespace Orchard.Widgets.Drivers { public class LayerPartDriver : ContentPartDriver { - private readonly IRuleManager _ruleManager; + private readonly IConditionManager _conditionManager; private readonly IWidgetsService _widgetsService; public LayerPartDriver( - IRuleManager ruleManager, + IConditionManager conditionManager, IWidgetsService widgetsService) { - _ruleManager = ruleManager; + _conditionManager = conditionManager; _widgetsService = widgetsService; T = NullLocalizer.Instance; @@ -53,7 +54,7 @@ namespace Orchard.Widgets.Drivers { } try { - _ruleManager.Matches(layerPart.LayerRule); + _conditionManager.Matches(layerPart.LayerRule); } catch (Exception e) { updater.AddModelError("Description", T("The rule is not valid: {0}", e.Message)); diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Handlers/WidgetElementsHandler.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Handlers/WidgetElementsHandler.cs new file mode 100644 index 000000000..92d6ed4b1 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Handlers/WidgetElementsHandler.cs @@ -0,0 +1,34 @@ +using Orchard.ContentManagement; +using Orchard.ContentManagement.Aspects; +using Orchard.ContentManagement.Handlers; +using Orchard.Environment.Extensions; +using Orchard.Layouts.Helpers; +using Orchard.Widgets.Models; + +namespace Orchard.Widgets.Handlers { + [OrchardFeature("Orchard.Widgets.Elements")] + public class WidgetElementsHandler : ContentHandler { + private readonly IOrchardServices _orchardServices; + + public WidgetElementsHandler(IOrchardServices orchardServices) { + _orchardServices = orchardServices; + OnUpdated(PostProcessPlacedWidget); + } + + private void PostProcessPlacedWidget(UpdateContentContext context, WidgetPart part) { + if (!part.IsPlaceableContent()) + return; + + // This is a widget placed on a layout, so clear out the zone propertiey + // to prevent the widget from appearing on the Widgets screen and on the front-end. + part.Zone = null; + + // To prevent the widget from being recognized as being orphaned, set its container. + // If the current container is a LayerPart, override that as well. + var commonPart = part.As(); + if (commonPart != null && (commonPart.Container == null || commonPart.Container.Is())) { + commonPart.Container = _orchardServices.WorkContext.CurrentSite; + } + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Layouts/Elements/Widget.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Layouts/Elements/Widget.cs new file mode 100644 index 000000000..ada221f17 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Layouts/Elements/Widget.cs @@ -0,0 +1,25 @@ +using Orchard.Environment.Extensions; +using Orchard.Layouts.Framework.Elements; +using Orchard.Layouts.Helpers; + +namespace Orchard.Widgets.Layouts.Elements { + [OrchardFeature("Orchard.Widgets.Elements")] + public class Widget : Element { + public override string Category { + get { return "Widgets"; } + } + + public override bool IsSystemElement { + get { return true; } + } + + public override bool HasEditor { + get { return false; } + } + + public int? WidgetId { + get { return this.Retrieve(x => x.WidgetId); } + set { this.Store(x => x.WidgetId, value); } + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Layouts/Providers/WidgetElementHarvester.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Layouts/Providers/WidgetElementHarvester.cs new file mode 100644 index 000000000..b5578837a --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Layouts/Providers/WidgetElementHarvester.cs @@ -0,0 +1,176 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Orchard.ContentManagement; +using Orchard.ContentManagement.Aspects; +using Orchard.ContentManagement.MetaData.Models; +using Orchard.Core.Contents.Settings; +using Orchard.Environment; +using Orchard.Environment.Extensions; +using Orchard.Layouts.Framework.Display; +using Orchard.Layouts.Framework.Drivers; +using Orchard.Layouts.Framework.Elements; +using Orchard.Layouts.Framework.Harvesters; +using Orchard.Layouts.Helpers; +using Orchard.Widgets.Layouts.Elements; +using Orchard.Widgets.ViewModels; +using ContentItem = Orchard.ContentManagement.ContentItem; + +namespace Orchard.Widgets.Layouts.Providers { + [OrchardFeature("Orchard.Widgets.Elements")] + public class WidgetElementHarvester : Component, IElementHarvester { + private readonly Work _contentManager; + + public WidgetElementHarvester(Work contentManager) { + _contentManager = contentManager; + } + + public IEnumerable HarvestElements(HarvestElementsContext context) { + var contentTypeDefinitions = GetWidgetContentTypeDefinitions(); + + return contentTypeDefinitions.Select(contentTypeDefinition => { + var settings = contentTypeDefinition.Settings; + var description = settings.ContainsKey("Description") ? settings["Description"] : contentTypeDefinition.DisplayName; + return new ElementDescriptor(typeof (Widget), contentTypeDefinition.Name, T(contentTypeDefinition.DisplayName), T(description), category: "Widgets") { + Displaying = Displaying, + Editor = Editor, + UpdateEditor = UpdateEditor, + ToolboxIcon = "\uf1b2", + EnableEditorDialog = true, + Removing = RemoveContentItem, + Exporting = ExportElement, + Importing = ImportElement, + StateBag = new Dictionary { + { "ContentTypeName", contentTypeDefinition.Name } + } + }; + }); + } + + private void Displaying(ElementDisplayingContext context) { + var contentTypeName = (string)context.Element.Descriptor.StateBag["ContentTypeName"]; + var element = (Widget)context.Element; + var widgetId = element.WidgetId; + var versionOptions = context.DisplayType == "Design" ? VersionOptions.Latest : VersionOptions.Published; + var widget = widgetId != null + ? _contentManager.Value.Get(widgetId.Value, versionOptions) + : _contentManager.Value.New(contentTypeName); + + var widgetShape = widget != null ? _contentManager.Value.BuildDisplay(widget) : default(dynamic); + context.ElementShape.Widget = widget; + context.ElementShape.WidgetShape = widgetShape; + } + + private void Editor(ElementEditorContext context) { + UpdateEditor(context); + } + + private void UpdateEditor(ElementEditorContext context) { + var contentTypeName = (string)context.Element.Descriptor.StateBag["ContentTypeName"]; + var element = (Widget) context.Element; + var elementViewModel = new WidgetElementViewModel { + WidgetId = element.WidgetId + }; + + if (context.Updater != null) { + context.Updater.TryUpdateModel(elementViewModel, context.Prefix, null, null); + } + + var widgetId = elementViewModel.WidgetId; + var widget = widgetId != null + ? _contentManager.Value.Get(widgetId.Value, VersionOptions.Latest) + : _contentManager.Value.New(contentTypeName); + + dynamic contentEditorShape; + + if (context.Updater != null) { + if (widget.Id == 0) { + _contentManager.Value.Create(widget, VersionOptions.Draft); + } + else { + var isDraftable = widget.TypeDefinition.Settings.GetModel().Draftable; + var versionOptions = isDraftable ? VersionOptions.DraftRequired : VersionOptions.Latest; + widget = _contentManager.Value.Get(widget.Id, versionOptions); + } + + element.WidgetId = widget.Id; + + // If the widget has the CommonPart attached, set its Container property to the Content (if any). + // This helps preventing widgets from appearing as orphans. + var commonPart = widget.As(); + if (commonPart != null) + commonPart.Container = context.Content; + + widget.IsPlaceableContent(true); + contentEditorShape = _contentManager.Value.UpdateEditor(widget, context.Updater); + + _contentManager.Value.Publish(widget); + } + else { + contentEditorShape = _contentManager.Value.BuildEditor(widget); + } + + var elementEditorShape = context.ShapeFactory.EditorTemplate(TemplateName: "Elements.Widget", Model: elementViewModel, Prefix: context.Prefix); + + elementEditorShape.Metadata.Position = "Properties:0"; + contentEditorShape.Metadata.Position = "Properties:0"; + context.EditorResult.Add(elementEditorShape); + context.EditorResult.Add(contentEditorShape); + } + + private void RemoveContentItem(ElementRemovingContext context) { + var element = (Widget) context.Element; + var widgetId = element.WidgetId; + + // Only remove the widget if no other elements are referencing this one. + // This can happen if the user cut an element and then pasted it back. + // That will delete the initial element and create a copy. + var widgetElements = + from e in context.Elements.Flatten() + let p = e as Widget + where p != null && p.WidgetId == widgetId + select p; + + if (widgetElements.Any()) + return; + + var contentItem = widgetId != null ? _contentManager.Value.Get(widgetId.Value, VersionOptions.Latest) : default(ContentItem); + + if(contentItem != null) + _contentManager.Value.Remove(contentItem); + } + + private void ExportElement(ExportElementContext context) { + var element = (Widget)context.Element; + var widgetId = element.WidgetId; + var widget = widgetId != null ? _contentManager.Value.Get(widgetId.Value, VersionOptions.Latest) : default(ContentItem); + var widgetIdentity = widget != null ? _contentManager.Value.GetItemMetadata(widget).Identity.ToString() : default(string); + + if (widgetIdentity != null) + context.ExportableData["WidgetId"] = widgetIdentity; + } + + private void ImportElement(ImportElementContext context) { + var widgetIdentity = context.ExportableData.Get("WidgetId"); + + if (String.IsNullOrWhiteSpace(widgetIdentity)) + return; + + var widget = context.Session.GetItemFromSession(widgetIdentity); + var element = (Widget)context.Element; + + element.WidgetId = widget != null ? widget.Id : default(int?); + } + + private IEnumerable GetWidgetContentTypeDefinitions() { + // Select all types that have either "the "Widget" stereotype. + var contentTypeDefinitionsQuery = + from contentTypeDefinition in _contentManager.Value.GetContentTypeDefinitions() + let stereotype = contentTypeDefinition.Settings.ContainsKey("Stereotype") ? contentTypeDefinition.Settings["Stereotype"] : default(string) + where stereotype == "Widget" + select contentTypeDefinition; + + return contentTypeDefinitionsQuery.ToList(); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs index 73d3a6525..aeb2805be 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Models/WidgetPart.cs @@ -6,7 +6,7 @@ using Orchard.ContentManagement.Aspects; namespace Orchard.Widgets.Models { public class WidgetPart : ContentPart, ITitleAspect { - + /// /// The widget's title. /// @@ -25,7 +25,7 @@ namespace Orchard.Widgets.Models { } /// - /// Whether or not the Title should be rendered on the front-end + /// Whether or not the Title should be rendered on the front-end. /// public bool RenderTitle { get { return Retrieve(x => x.RenderTitle); } @@ -36,8 +36,7 @@ namespace Orchard.Widgets.Models { /// The widget's position within the zone. /// [Required] - public string Position - { + public string Position { get { return Retrieve(x => x.Position); } set { Store(x => x.Position, value); } } @@ -61,8 +60,11 @@ namespace Orchard.Widgets.Models { /// /// The layerPart identifier. /// - public int LayerId { - get { return this.As().Container.As().Id; } + public int? LayerId { + get { + var layerPart = LayerPart; + return layerPart != null ? layerPart.Id : default(int?); + } } /// diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Module.txt b/src/Orchard.Web/Modules/Orchard.Widgets/Module.txt index 1a0eb5338..3a8da5e14 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Module.txt +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Module.txt @@ -7,7 +7,7 @@ OrchardVersion: 1.9 Description: An implementation of widgets for Orchard. FeatureDescription: An implementation of widgets. Category: Widget -Dependencies: Orchard.Scripting, Orchard.Themes +Dependencies: Orchard.Conditions, Orchard.Scripting, Orchard.Themes Features: Orchard.Widgets.PageLayerHinting: Name: Page Layer Hinting @@ -19,3 +19,8 @@ Features: Description: Add an Edit button on the front-end for authenticated users Category: Widget Dependencies: Orchard.Widgets + Orchard.Widgets.Elements + Name: Widget Elements + Description: Enables widgets to be added as elements to layouts. + Category: Layout + Dependencies: Orchard.Layouts \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj index d1aaa153a..a4c7a2837 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj @@ -26,6 +26,7 @@ + true @@ -74,6 +75,9 @@ + + + @@ -85,11 +89,8 @@ - - - - - + + @@ -99,12 +100,14 @@ + + @@ -131,6 +134,14 @@ Orchard.Framework True + + {98251eae-a41b-47b2-aa91-e28b8482da70} + Orchard.Conditions + + + {6bd8b2fa-f2e3-4ac8-a4c3-2925a653889a} + Orchard.Layouts + {99002B65-86F7-415E-BF4A-381AA8AB9CCC} Orchard.Scripting @@ -192,6 +203,20 @@ + + + + + + + + + + + + Designer + + 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/AuthenticatedRuleProvider.cs b/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/AuthenticatedRuleProvider.cs deleted file mode 100644 index 085f37bbf..000000000 --- a/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/AuthenticatedRuleProvider.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using Orchard.Security; -using Orchard.Widgets.Services; - -namespace Orchard.Widgets.RuleEngine { - public class AuthenticatedRuleProvider : IRuleProvider { - private readonly IAuthenticationService _authenticationService; - - public AuthenticatedRuleProvider(IAuthenticationService authenticationService) { - _authenticationService = authenticationService; - } - - public void Process(RuleContext ruleContext) { - if (!String.Equals(ruleContext.FunctionName, "authenticated", StringComparison.OrdinalIgnoreCase)) { - return; - } - - if (_authenticationService.GetAuthenticatedUser() != null) { - ruleContext.Result = true; - return; - } - - ruleContext.Result = false; - } - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/BuiltinRuleProvider.cs b/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/BuiltinRuleProvider.cs deleted file mode 100644 index c91ad04b3..000000000 --- a/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/BuiltinRuleProvider.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using Orchard.Widgets.Services; - -namespace Orchard.Widgets.RuleEngine { - public class BuiltinRuleProvider : IRuleProvider { - private readonly IWorkContextAccessor _workContextAccessor; - - public BuiltinRuleProvider(IWorkContextAccessor workContextAccessor) { - _workContextAccessor = workContextAccessor; - } - - public void Process(RuleContext ruleContext) { - if (string.Equals(ruleContext.FunctionName, "WorkContext", StringComparison.OrdinalIgnoreCase)) { - ruleContext.Result = _workContextAccessor.GetContext(); - } - } - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/ContentDisplayedRuleProvider.cs b/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/ContentDisplayedRuleProvider.cs deleted file mode 100644 index ee79b97de..000000000 --- a/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/ContentDisplayedRuleProvider.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using Orchard.Widgets.Handlers; -using Orchard.Widgets.Services; - -namespace Orchard.Widgets.RuleEngine { - public class ContentDisplayedRuleProvider : IRuleProvider { - private readonly IDisplayedContentItemHandler _displayedContentItemHandler; - - public ContentDisplayedRuleProvider(IDisplayedContentItemHandler displayedContentItemHandler) { - _displayedContentItemHandler = displayedContentItemHandler; - } - - public void Process(RuleContext ruleContext) { - if (!String.Equals(ruleContext.FunctionName, "contenttype", StringComparison.OrdinalIgnoreCase)) { - return; - } - - var contentType = Convert.ToString(ruleContext.Arguments[0]); - - ruleContext.Result = _displayedContentItemHandler.IsDisplayed(contentType); - } - } -} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Scripts/Web.config b/src/Orchard.Web/Modules/Orchard.Widgets/Scripts/Web.config new file mode 100644 index 000000000..11135c337 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Scripts/Web.config @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Scripts/widget-element-editor.js b/src/Orchard.Web/Modules/Orchard.Widgets/Scripts/widget-element-editor.js new file mode 100644 index 000000000..32474bae5 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Scripts/widget-element-editor.js @@ -0,0 +1,9 @@ +(function ($) { + // Hide the Layer, Zone, and Position fieldsets and set a value for the required fields. + $(function() { + var fieldsets = $("#element-properties .edit-widget fieldset").slice(0, 3); + fieldsets.hide(); + + $("input[name='WidgetPart.Position']").val("0"); + }); +})(jQuery); \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Services/DefaultLayerEvaluationService.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Services/DefaultLayerEvaluationService.cs index 0ad3908f8..55b4a0682 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Services/DefaultLayerEvaluationService.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Services/DefaultLayerEvaluationService.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Orchard.Conditions.Services; using Orchard.Localization; using Orchard.Logging; using Orchard.Widgets.Models; @@ -8,13 +9,13 @@ using Orchard.ContentManagement.Utilities; namespace Orchard.Widgets.Services{ public class DefaultLayerEvaluationService : ILayerEvaluationService { - private readonly IRuleManager _ruleManager; + private readonly IConditionManager _conditionManager; private readonly IOrchardServices _orchardServices; private readonly LazyField _activeLayerIDs; - public DefaultLayerEvaluationService(IRuleManager ruleManager, IOrchardServices orchardServices) { - _ruleManager = ruleManager; + public DefaultLayerEvaluationService(IConditionManager conditionManager, IOrchardServices orchardServices) { + _conditionManager = conditionManager; _orchardServices = orchardServices; Logger = NullLogger.Instance; @@ -38,7 +39,7 @@ namespace Orchard.Widgets.Services{ } private int[] PopulateActiveLayers() { - // Once the Rule Engine is done: + // Once the Condition Engine is done: // Get Layers and filter by zone and rule // NOTE: .ForType("Layer") is faster than .Query() var activeLayers = _orchardServices.ContentManager.Query().WithQueryHints(new QueryHints().ExpandParts()).ForType("Layer").List(); @@ -47,7 +48,7 @@ namespace Orchard.Widgets.Services{ foreach (var activeLayer in activeLayers) { // ignore the rule if it fails to execute try { - if (_ruleManager.Matches(activeLayer.LayerRule)) { + if (_conditionManager.Matches(activeLayer.LayerRule)) { activeLayerIds.Add(activeLayer.ContentItem.Id); } } diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Services/IRuleManager.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Services/IRuleManager.cs index 38cdae2da..e0e9feafd 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Services/IRuleManager.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Services/IRuleManager.cs @@ -1,4 +1,7 @@ -namespace Orchard.Widgets.Services { +using System; + +namespace Orchard.Widgets.Services { + [Obsolete("Use Orchard.Conditions.Services.IConditionManager instead.")] public interface IRuleManager : IDependency { bool Matches(string expression); } diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Services/IRuleProvider.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Services/IRuleProvider.cs index cd30e3f8c..4b5f87f2e 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Services/IRuleProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Services/IRuleProvider.cs @@ -1,6 +1,8 @@ -using Orchard.Events; +using System; +using Orchard.Events; namespace Orchard.Widgets.Services { + [Obsolete("Use Orchard.Conditions.Services.IConditionProvider instead.")] public interface IRuleProvider : IEventHandler { void Process(RuleContext ruleContext); } diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Services/RuleContext.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Services/RuleContext.cs index d1db6dea2..0d29400b9 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Services/RuleContext.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Services/RuleContext.cs @@ -1,4 +1,7 @@ -namespace Orchard.Widgets.Services { +using System; + +namespace Orchard.Widgets.Services { + [Obsolete("Use Orchard.Conditions.Services.ConditionEvaluationContext instead.")] public class RuleContext { public string FunctionName { get; set; } public object[] Arguments { get; set; } diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/RuleManager.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Services/RuleManager.cs similarity index 91% rename from src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/RuleManager.cs rename to src/Orchard.Web/Modules/Orchard.Widgets/Services/RuleManager.cs index cba7bc5e6..927164b72 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/RuleEngine/RuleManager.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Services/RuleManager.cs @@ -1,53 +1,54 @@ -using System.Collections.Generic; -using System.Linq; -using Orchard.Localization; -using Orchard.Scripting; -using Orchard.Widgets.Services; - -namespace Orchard.Widgets.RuleEngine { - public class RuleManager : IRuleManager { - private readonly IRuleProvider _ruleProviders; - private readonly IEnumerable _evaluators; - - public RuleManager(IRuleProvider ruleProviders, IEnumerable evaluators) { - _ruleProviders = ruleProviders; - _evaluators = evaluators; - T = NullLocalizer.Instance; - } - - public Localizer T { get; set; } - - public bool Matches(string expression) { - var evaluator = _evaluators.FirstOrDefault(); - if (evaluator == null) { - throw new OrchardException(T("There are currently no scripting engines enabled")); - } - - var result = evaluator.Evaluate(expression, new List { new GlobalMethodProvider(this) }); - if (!(result is bool)) { - throw new OrchardException(T("Expression is not a boolean value")); - } - return (bool)result; - } - - private class GlobalMethodProvider : IGlobalMethodProvider { - private readonly RuleManager _ruleManager; - - public GlobalMethodProvider(RuleManager ruleManager) { - _ruleManager = ruleManager; - } - - public void Process(GlobalMethodContext context) { - var ruleContext = new RuleContext { - FunctionName = context.FunctionName, - Arguments = context.Arguments.ToArray(), - Result = context.Result - }; - - _ruleManager._ruleProviders.Process(ruleContext); - - context.Result = ruleContext.Result; - } - } - } +using System; +using System.Collections.Generic; +using System.Linq; +using Orchard.Localization; +using Orchard.Scripting; + +namespace Orchard.Widgets.Services { + [Obsolete("Use Orchard.Conditions.Services.ConditionManager instead.")] + public class RuleManager : IRuleManager { + private readonly IRuleProvider _ruleProviders; + private readonly IEnumerable _evaluators; + + public RuleManager(IRuleProvider ruleProviders, IEnumerable evaluators) { + _ruleProviders = ruleProviders; + _evaluators = evaluators; + T = NullLocalizer.Instance; + } + + public Localizer T { get; set; } + + public bool Matches(string expression) { + var evaluator = _evaluators.FirstOrDefault(); + if (evaluator == null) { + throw new OrchardException(T("There are currently no scripting engines enabled")); + } + + var result = evaluator.Evaluate(expression, new List { new GlobalMethodProvider(this) }); + if (!(result is bool)) { + throw new OrchardException(T("Expression is not a boolean value")); + } + return (bool)result; + } + + private class GlobalMethodProvider : IGlobalMethodProvider { + private readonly RuleManager _ruleManager; + + public GlobalMethodProvider(RuleManager ruleManager) { + _ruleManager = ruleManager; + } + + public void Process(GlobalMethodContext context) { + var ruleContext = new RuleContext { + FunctionName = context.FunctionName, + Arguments = context.Arguments.ToArray(), + Result = context.Result + }; + + _ruleManager._ruleProviders.Process(ruleContext); + + context.Result = ruleContext.Result; + } + } + } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/ViewModels/WidgetElementViewModel.cs b/src/Orchard.Web/Modules/Orchard.Widgets/ViewModels/WidgetElementViewModel.cs new file mode 100644 index 000000000..74801cd64 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/ViewModels/WidgetElementViewModel.cs @@ -0,0 +1,5 @@ +namespace Orchard.Widgets.ViewModels { + public class WidgetElementViewModel { + public int? WidgetId { get; set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Elements.Widget.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Elements.Widget.cshtml new file mode 100644 index 000000000..8f25d7b64 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Elements.Widget.cshtml @@ -0,0 +1,6 @@ +@model Orchard.Widgets.ViewModels.WidgetElementViewModel +@{ + Script.Require("jQuery"); + Script.Include("widget-element-editor.js"); +} +@Html.HiddenFor(m => m.WidgetId) \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts.Widgets.WidgetPart.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts.Widgets.WidgetPart.cshtml index 62a6ed3b0..30eb025f7 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts.Widgets.WidgetPart.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/EditorTemplates/Parts.Widgets.WidgetPart.cshtml @@ -17,18 +17,18 @@
@Html.LabelFor(widget => widget.Title, T("Title")) - @Html.TextBoxFor(widget => widget.Title, new { @class = "text medium" }) + @Html.TextBoxFor(widget => widget.Title, new { @class = "text large" }) @T("The title of the Widget.") @Html.EditorFor(widget => widget.RenderTitle)
@Html.LabelFor(widget => widget.Name, T("Name")) - @Html.TextBoxFor(widget => widget.Name, new { @class = "text" }) + @Html.TextBoxFor(widget => widget.Name, new { @class = "text large" }) @T("The technical name of the Widget, used for css class and alternates.")
@Html.LabelFor(widget => widget.CssClasses, T("Css classes")) - @Html.TextBoxFor(widget => widget.CssClasses, new { @class = "text medium" }) + @Html.TextBoxFor(widget => widget.CssClasses, new { @class = "text large" }) @T("Add custom css classes for the widget separated by spaces.")
diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Elements/Widget.Design.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Elements/Widget.Design.cshtml new file mode 100644 index 000000000..f109e9b73 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Elements/Widget.Design.cshtml @@ -0,0 +1,12 @@ +@using Orchard.ContentManagement +@{ + var widget = (ContentItem)Model.Widget; +} +
+ @if (widget != null) { + @String.Format("{0} - {1}", Html.ItemDisplayText(widget), widget.TypeDefinition.DisplayName) + } + else { + @T("Widget Not Found"); + } +
\ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/Elements/Widget.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Elements/Widget.cshtml new file mode 100644 index 000000000..d6ef13757 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/Elements/Widget.cshtml @@ -0,0 +1,9 @@ +@using Orchard.Layouts.Helpers +@{ + var tagBuilder = TagBuilderExtensions.CreateElementTagBuilder(Model); +} +@tagBuilder.StartElement +@if (Model.WidgetShape != null) { + @Display(Model.WidgetShape) +} +@tagBuilder.EndElement \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Views/WidgetPlacement.Orphans.cshtml b/src/Orchard.Web/Modules/Orchard.Widgets/Views/WidgetPlacement.Orphans.cshtml index a37ed0dca..5871e5798 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Views/WidgetPlacement.Orphans.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Views/WidgetPlacement.Orphans.cshtml @@ -7,7 +7,7 @@ } @if (widgets.Count() > 0) {
-

@T("Widgets with problems.")

+

@T("Widgets with problems")

@T("These widgets aren't going to appear anywhere because they're missing the CommonPart from their content type. To fix these widgets, if you still want to keep them around, start by fixing their Content Types.", Url.Action("Index", "Admin", new { area = "Orchard.ContentTypes" }))

    @foreach (WidgetPart widget in widgets) { diff --git a/src/Orchard.sln b/src/Orchard.sln index eff650fa4..6a8bed76d 100644 --- a/src/Orchard.sln +++ b/src/Orchard.sln @@ -270,6 +270,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Gulp", "Gulp", "{90EBEE36-B Package.json = Package.json EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orchard.Conditions", "Orchard.Web\Modules\Orchard.Conditions\Orchard.Conditions.csproj", "{98251EAE-A41B-47B2-AA91-E28B8482DA70}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution CodeCoverage|Any CPU = CodeCoverage|Any CPU @@ -1082,6 +1084,13 @@ Global {BAC82DB9-F4C4-4DD1-ABDB-F70E6229E6B0}.FxCop|Any CPU.Build.0 = Release|Any CPU {BAC82DB9-F4C4-4DD1-ABDB-F70E6229E6B0}.Release|Any CPU.ActiveCfg = Release|Any CPU {BAC82DB9-F4C4-4DD1-ABDB-F70E6229E6B0}.Release|Any CPU.Build.0 = Release|Any CPU + {98251EAE-A41B-47B2-AA91-E28B8482DA70}.CodeCoverage|Any CPU.ActiveCfg = Release|Any CPU + {98251EAE-A41B-47B2-AA91-E28B8482DA70}.Coverage|Any CPU.ActiveCfg = Release|Any CPU + {98251EAE-A41B-47B2-AA91-E28B8482DA70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {98251EAE-A41B-47B2-AA91-E28B8482DA70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {98251EAE-A41B-47B2-AA91-E28B8482DA70}.FxCop|Any CPU.ActiveCfg = Release|Any CPU + {98251EAE-A41B-47B2-AA91-E28B8482DA70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {98251EAE-A41B-47B2-AA91-E28B8482DA70}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1167,5 +1176,6 @@ Global {82190F52-2901-46D6-8A4C-34649959483F} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} {BAC82DB9-F4C4-4DD1-ABDB-F70E6229E6B0} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} {90EBEE36-B5CD-42A8-A21B-76270E2C5D24} = {DF3909B0-1DDD-4D8A-9919-56FC438E25E2} + {98251EAE-A41B-47B2-AA91-E28B8482DA70} = {E9C9F120-07BA-4DFB-B9C3-3AFB9D44C9D5} EndGlobalSection EndGlobal