+++ /dev/null
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26124.0
-MinimumVisualStudioVersion = 15.0.26124.0
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Crow.NetStd", "Crow\Crow.NetStd.csproj", "{75BDE4C7-4BAF-4A03-B697-5D1370775E20}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.NetStd", "Tests\Tests.NetStd.csproj", "{28BAF8B8-6A6E-40D5-8E9C-E7C1165C59DD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrowIDE.NetStd", "CrowIDE\CrowIDE.NetStd.csproj", "{A01B3151-BC81-437C-B526-CC8DBB808638}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {75BDE4C7-4BAF-4A03-B697-5D1370775E20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {75BDE4C7-4BAF-4A03-B697-5D1370775E20}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {75BDE4C7-4BAF-4A03-B697-5D1370775E20}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {75BDE4C7-4BAF-4A03-B697-5D1370775E20}.Release|Any CPU.Build.0 = Release|Any CPU
- {28BAF8B8-6A6E-40D5-8E9C-E7C1165C59DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {28BAF8B8-6A6E-40D5-8E9C-E7C1165C59DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {28BAF8B8-6A6E-40D5-8E9C-E7C1165C59DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {28BAF8B8-6A6E-40D5-8E9C-E7C1165C59DD}.Release|Any CPU.Build.0 = Release|Any CPU
- {A01B3151-BC81-437C-B526-CC8DBB808638}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A01B3151-BC81-437C-B526-CC8DBB808638}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A01B3151-BC81-437C-B526-CC8DBB808638}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A01B3151-BC81-437C-B526-CC8DBB808638}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
-EndGlobal
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Crow", "Crow\Crow.csproj", "{C2980F9B-4798-4C05-99E2-E174810F7C7B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj", "{74289092-9F70-4941-AFCB-DFD7BE2140B6}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{B2C7855A-2878-47FD-AD32-9A83DB4AB8C6}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrowIDE", "CrowIDE\CrowIDE.csproj", "{B6D911CD-1D09-42FC-B300-9187190F2AE1}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorld", "Samples\HelloWorld\HelloWorld.csproj", "{F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShowCase", "Samples\ShowCase\ShowCase.csproj", "{56329D48-D382-4850-93DE-59C453894E8A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {74289092-9F70-4941-AFCB-DFD7BE2140B6}.Release|Any CPU.Build.0 = Release|Any CPU
- {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B6D911CD-1D09-42FC-B300-9187190F2AE1}.Release|Any CPU.Build.0 = Release|Any CPU
{C2980F9B-4798-4C05-99E2-E174810F7C7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C2980F9B-4798-4C05-99E2-E174810F7C7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C2980F9B-4798-4C05-99E2-E174810F7C7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C2980F9B-4798-4C05-99E2-E174810F7C7B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {56329D48-D382-4850-93DE-59C453894E8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {56329D48-D382-4850-93DE-59C453894E8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {56329D48-D382-4850-93DE-59C453894E8A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {56329D48-D382-4850-93DE-59C453894E8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
Policies = $0
description = @C.R.O.W. c# Rapid Open Widgets\n\nCrow is a pure c# widget toolkit with XML definition of interface, bindings, styling...\n
version = 0.8.0
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {F535A8AB-CD93-49AB-B1B0-FFF9AE51ED6A} = {B2C7855A-2878-47FD-AD32-9A83DB4AB8C6}
+ {56329D48-D382-4850-93DE-59C453894E8A} = {B2C7855A-2878-47FD-AD32-9A83DB4AB8C6}
+ {348A1983-0794-445A-975C-CBBF68EAC810} = {B2C7855A-2878-47FD-AD32-9A83DB4AB8C6}
+ EndGlobalSection
EndGlobal
+++ /dev/null
-<Project Sdk="Microsoft.NET.Sdk">
-
- <PropertyGroup>
- <RootNamespace>Crow</RootNamespace>
- <Description>C.R.O.W. is a widget toolkit and rendering engine entirely developed in C# with templates, styles, compositing, and bindings.</Description>
-
-<!-- <TargetFramework>netstandard2.0</TargetFramework>-->
- <TargetFramework>netcoreapp2.0</TargetFramework>
-
- <OutputPath>$(SolutionDir)build/$(Configuration)</OutputPath>
- <IntermediateOutputPath>$(SolutionDir)build/obj/$(Configuration)</IntermediateOutputPath>
-
- <DefineConstants>DESIGN_MODE</DefineConstants>
-
- <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
- <EnableDefaultItems>false</EnableDefaultItems>
- <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
- <PackOnBuild>true</PackOnBuild>
- <PackageId>Crow</PackageId>
- <PackageVersion>0.8.0.1-beta</PackageVersion>
-<!-- <PackageVersionSuffix>-beta</PackageVersionSuffix>not working-->
- <Authors>JP Bruyère</Authors>
- <Title>C# Rapid Open Widget Toolkit</Title>
- <PackageLicenseUrl>https://opensource.org/licenses/MIT</PackageLicenseUrl>
- <PackageIconUrl>https://jpbruyere.github.io/Crow/images/crow.png</PackageIconUrl>
- <PackageProjectUrl>https://github.com/jpbruyere/Crow/wiki</PackageProjectUrl>
- <PackageTags>Crow Widget Interface GUI C# .Net Mono</PackageTags>
- <PackageCopyright>Copyright 2013-2018</PackageCopyright>
- <PackageReleaseNotes></PackageReleaseNotes>
- <Owners>JP Bruyère</Owners>
- </PropertyGroup>
-
-
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DefineConstants>TRACE;DESIGN_MODE;DEBUG</DefineConstants>
- </PropertyGroup>
-
- <ItemGroup>
- <Compile Include="src\**\*.cs" Exclude="src\Mono.Cairo\NativeMethods-internal.cs" />
-
- <EmbeddedResource Include="Templates\*.*">
- <LogicalName>Crow.%(Filename).template</LogicalName>
- </EmbeddedResource>
-
- <EmbeddedResource Include="Default.style" />
- <EmbeddedResource Include="Icons\*.*" />
-
- <PackageReference Include="NuGet.Build.Packaging" Version="0.2.2" />
- </ItemGroup>
- <ItemGroup>
- <Folder Include="src\backends\win32\" />
- </ItemGroup>
- <ItemGroup>
- <Compile Remove="src\backends\win32\User32\Structs\RawInputDevice.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="src\backends\win32\User32\Structs\RawInputDevice.cs" />
- </ItemGroup>
-</Project>
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project Sdk="Microsoft.NET.Sdk">
+ <Import Project="$(SolutionDir)netfx.props" />
<PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{C2980F9B-4798-4C05-99E2-E174810F7C7B}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>Crow</RootNamespace>
+ <TargetFrameworks>net471;netstandard2.0</TargetFrameworks>
<AssemblyName>Crow</AssemblyName>
- <FileAlignment>512</FileAlignment>
- <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
- <NoStdLib>False</NoStdLib>
- <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
- <WarningLevel>4</WarningLevel>
- <NoWin32Manifest>False</NoWin32Manifest>
- <SignAssembly>false</SignAssembly>
- <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
- <Description>C# Rapid Open Widget</Description>
- <BaseAddress>4194304</BaseAddress>
- <OutputPath>$(SolutionDir)build\$(Configuration)</OutputPath>
- <IntermediateOutputPath>$(SolutionDir)build\obj\$(Configuration)</IntermediateOutputPath>
- <AssemblyOriginatorKeyFile>crow.key</AssemblyOriginatorKeyFile>
+ <Copyright></Copyright>
+ <AssemblyVersion>0.8.1</AssemblyVersion>
+ <Description>C.R.O.W. is a widget toolkit and rendering engine entirely developed in C# with templates, styles, compositing, and bindings.</Description>
+
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <EnableDefaultItems>false</EnableDefaultItems>
+ <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
+
+ <Authors>Jean-Philippe Bruyère</Authors>
+ <Title>C# Rapid Open Widget Toolkit</Title>
+ <License>MIT</License>
+ <PackageId>Crow</PackageId>
+ <PackageTags>GUI Widget toolkit Interface C# .Net Mono</PackageTags>
+ <PackageVersion>$(AssemblyVersion)-beta</PackageVersion>
+ <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
+ <PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
+ <PackageProjectUrl>https://github.com/jpbruyere/Crow/wiki</PackageProjectUrl>
+ <PackageLicense>https://opensource.org/licenses/MIT</PackageLicense>
+ <PackageIconUrl>https://jpbruyere.github.io/Crow/images/crow.png</PackageIconUrl>
+ <PackageCopyright>Copyright 2013-2019</PackageCopyright>
+ <PackageReleaseNotes>Turn on vulkan layer through vkvg</PackageReleaseNotes>
+ <RepositoryUrl>https://github.com/jpbruyere/Crow</RepositoryUrl>
+
+ <OutputPath>$(SolutionDir)build\$(Configuration)\</OutputPath>
+ <DefineConstants>DESIGN_MODE</DefineConstants>
<ReleaseVersion>0.8.0</ReleaseVersion>
- <ProductVersion>8.0.30703</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
- </PropertyGroup>
+ </PropertyGroup>
+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
+ <DefineConstants>TRACE;DEBUG;DESIGN_MODE;_DEBUG_CLIP_RECTANGLE;NETFRAMEWORK;NET471</DefineConstants>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
- <Optimize>false</Optimize>
- <OutputPath>$(SolutionDir)build\Debug</OutputPath>
- <DefineConstants>TRACE0;DEBUG;DEBUG_BINDING_FUNC_CALLS0;DEBUG_DRAGNDROP0;DEBUG_LOG0;XLIB_BACKEND0;DESIGN_MODE;DEBUG_UPDATE0;DEBUG_FOCUS0;DEBUG_DISPOSE0;MEASURE_TIME;DEBUG_LOAD0;DEBUG_BINDING0;DEBUG_CLIP_RECTANGLE0</DefineConstants>
- <EnvironmentVariables>
- <EnvironmentVariables>
- <Variable name="MONO_CAIRO_DEBUG_DISPOSE" value="1" />
- </EnvironmentVariables>
- </EnvironmentVariables>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <Optimize>true</Optimize>
- <DefineConstants>DESIGN_MODE</DefineConstants>
- <OutputPath>$(SolutionDir)build\Release</OutputPath>
</PropertyGroup>
- <ItemGroup>
- <Compile Include="src\**\*.cs" Exclude="src\Mono.Cairo\NativeMethods-internal.cs;src\backends\win32\User32\Structs\RawInputDevice.cs" />
- </ItemGroup>
- <ItemGroup>
+
+ <ItemGroup Condition="$(TargetFramework.StartsWith('net4'))">
<Reference Include="System" />
+ <Reference Include="mscorlib" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Drawing" />
+ <Reference Include="Microsoft.CSharp" />
+ </ItemGroup>
+
+ <ItemGroup Condition="$(TargetFramework.StartsWith('netstandard'))">
+ <PackageReference Include="System.Reflection.Emit.ILGeneration" Version="4.3.0" />
+ <PackageReference Include="System.Reflection.Emit.Lightweight" Version="4.3.0" />
</ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
+
+ <ItemGroup>
+ <Compile Include="src\**\*.cs" Exclude="src\Mono.Cairo\NativeMethods-internal.cs" />
+
+ <EmbeddedResource Include="Templates\*.*">
+ <LogicalName>Crow.%(Filename).template</LogicalName>
+ </EmbeddedResource>
+
+ <EmbeddedResource Include="Default.style" />
+ <EmbeddedResource Include="Icons\*.*" />
+ </ItemGroup>
<ItemGroup>
- <Folder Include="src\GraphicObjects\" />
- <Folder Include="src\Cairo\" />
- <Folder Include="Images\" />
- <Folder Include="Images\Icons\" />
- <Folder Include="src\CompilerServices\" />
- <Folder Include="src\Fill\" />
- <Folder Include="src\Input\" />
- <Folder Include="src\rsvg\" />
- <Folder Include="src\IML\" />
- <Folder Include="Icons\" />
- <Folder Include="src\debug\" />
- <Folder Include="src\backends\" />
- <Folder Include="src\backends\xlib\" />
- <Folder Include="src\backends\xcb\" />
+ <Compile Remove="src\backends\win32\User32\Structs\RawInputDevice.cs" />
</ItemGroup>
<ItemGroup>
- <EmbeddedResource Include="Icons\*.*" />
- <EmbeddedResource Include="Default.style" />
- <EmbeddedResource Include="Templates\Button.template">
- <LogicalName>Crow.Button.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\CheckBox.template">
- <LogicalName>Crow.CheckBox.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\ComboBox.template">
- <LogicalName>Crow.ComboBox.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\Expandable.template">
- <LogicalName>Crow.Expandable.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\DirectoryView.template">
- <LogicalName>Crow.DirectoryView.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\FileDialog.template">
- <LogicalName>Crow.FileDialog.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\GroupBox.template">
- <LogicalName>Crow.GroupBox.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\ListBox.template">
- <LogicalName>Crow.ListBox.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\MessageBox.template">
- <LogicalName>Crow.MessageBox.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\Popper.template">
- <LogicalName>Crow.Popper.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\RadioButton.template">
- <LogicalName>Crow.RadioButton.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\ScrollBar.template">
- <LogicalName>Crow.ScrollBar.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\Slider.template">
- <LogicalName>Crow.Slider.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\Spinner.template">
- <LogicalName>Crow.Spinner.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\TabItem.template">
- <LogicalName>Crow.TabItem.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\TreeView.template">
- <LogicalName>Crow.TreeView.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\Window.template">
- <LogicalName>Crow.Window.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Images\Icons\Cursors\ibeam" />
- <EmbeddedResource Include="Templates\MenuItem.template">
- <LogicalName>Crow.MenuItem.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\Menu.template">
- <LogicalName>Crow.Menu.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\ColorPicker.template">
- <LogicalName>Crow.ColorPicker.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\ToolWindow.template">
- <LogicalName>Crow.ToolWindow.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\FileItems.template">
- <LogicalName>Crow.FileItems.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\DefaultItem.template">
- <LogicalName>Crow.DefaultItem.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\ScrollingListBox.template">
- <LogicalName>Crow.ScrollingListBox.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\imgItem.template" />
- <EmbeddedResource Include="Templates\ArrowBut.template">
- <LogicalName>Crow.ArrowBut.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\treeList.template" />
- <EmbeddedResource Include="Templates\CheckBox2.template">
- <LogicalName>Crow.CheckBox2.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\Tooltip.template">
- <LogicalName>Crow.Tooltip.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\ContextMenu.template">
- <LogicalName>Crow.ContextMenu.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\DockWindow.template">
- <LogicalName>Crow.DockWindow.template</LogicalName>
- </EmbeddedResource>
- <EmbeddedResource Include="Templates\HScrollBar.template">
- <LogicalName>Crow.HScrollBar.template</LogicalName>
- </EmbeddedResource>
- <None Include="Crow.dll.config">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </None>
- <EmbeddedResource Include="Images\Icons\Cursors\arrow" />
- <EmbeddedResource Include="Images\Icons\Cursors\bottom_left_corner" />
- <EmbeddedResource Include="Images\Icons\Cursors\bottom_right_corner" />
- <EmbeddedResource Include="Images\Icons\Cursors\cross" />
- <EmbeddedResource Include="Images\Icons\Cursors\hand" />
- <EmbeddedResource Include="Images\Icons\Cursors\help" />
- <EmbeddedResource Include="Images\Icons\Cursors\move" />
- <EmbeddedResource Include="Images\Icons\Cursors\sb_h_double_arrow" />
- <EmbeddedResource Include="Images\Icons\Cursors\sb_v_double_arrow" />
- <EmbeddedResource Include="Images\Icons\Cursors\top_left_corner" />
- <EmbeddedResource Include="Images\Icons\Cursors\top_right_corner" />
+ <None Include="src\backends\win32\User32\Structs\RawInputDevice.cs" />
</ItemGroup>
</Project>
/// override this to handle specific steps in child addition in derived class,
/// and don't forget to call the base.SetChild
/// </summary>
- public virtual void SetChild(Widget _child)
+ public new virtual void SetChild(Widget _child)
{
base.SetChild (_child);
}
protected virtual void InitBackend () {
if (Environment.OSVersion.Platform == PlatformID.Unix)
backend = new Crow.XCB.XCBBackend();
+ //backend = new Crow.XLib.XLibBackend ();
else
backend = new Crow.Win32.Win32Backend();
-
- //backend = new Crow.XLib.XLibBackend ();
+
backend.Init (this);
initTooltip ();
{
while (running) {
Update ();
- Thread.Sleep (1);
+ Thread.Sleep (30);
}
}
using System.Text;
using OpenToolkit.NT.Native;
-namespace Crow.Win32
-{
-
- public class Win32Backend : IBackend
- {
- public void CleanUp()
- {
- User32.Window.ReleaseDC(handle, hdc);
- User32.Window.DestroyWindow(handle);
- }
-
- public void Flush()
- {
+namespace Crow.Win32 {
+
+ public class Win32Backend : IBackend {
+ public void CleanUp () {
+ User32.Window.ReleaseDC (handle, hdc);
+ User32.Window.DestroyWindow (handle);
+ }
+
+ public void Flush () {
iFace.surf.Flush ();
- //throw new NotImplementedException();
- }
-
- WindowProc WindowProcedureDelegate;
- string className = "myWindowClass";
- IntPtr instance = Marshal.GetHINSTANCE(typeof(Win32Backend).Module);
- IntPtr handle = IntPtr.Zero;
- IntPtr hdc = IntPtr.Zero;
+ //throw new NotImplementedException();
+ }
+
+ WindowProc WindowProcedureDelegate;
+ string className = "myWindowClass";
+ IntPtr instance;// = Marshal.GetHINSTANCE(typeof(Win32Backend).Module);
+ IntPtr handle = IntPtr.Zero;
+ IntPtr hdc = IntPtr.Zero;
Interface iFace;
- public void Init(Interface _iFace)
- {
+ public void Init (Interface _iFace) {
iFace = _iFace;
- WindowProcedureDelegate = WindowProcedure;
-
- Rect rect = new Rect
- {
- Left = iFace.ClientRectangle.Left,
- Top = iFace.ClientRectangle.Top,
- Right = iFace.ClientRectangle.Right,
- Bottom = iFace.ClientRectangle.Bottom
- };
-
- User32.Window.AdjustWindowRectEx(ref rect, 0, false, 0);
-
- ExtendedWindowClass wc = new ExtendedWindowClass
- {
- Size = ExtendedWindowClass.SizeInBytes,
- Style = 0,
- WindowProc = WindowProcedureDelegate,
- ClassExtra = 0,
- WindowExtra = 0,
- Instance = instance,
- Icon = IntPtr.Zero,
- Cursor = User32.Cursor.LoadCursor(CursorName.Arrow),
- //Background = Gdi32.GetStockObject(GetStockObjectType.BlackBrush),
- MenuName = null,
- ClassName = className,
- };
-
- ushort atom = User32.WindowClass.RegisterClassEx(ref wc);
-
- handle = User32.Window.CreateWindowEx(
- ExtendedWindowStyles.ClientEdge,
- className,
- "The title of my window",
- WindowStyles.OverlappedWindow,
-
- rect.Left,
- rect.Top,
- rect.Width,
- rect.Height,
- IntPtr.Zero,
- IntPtr.Zero,
- instance,
- IntPtr.Zero
- );
-
- User32.Window.ShowWindow(handle, ShowWindowCommand.Show);
-
- hdc = User32.Window.GetDC(handle);
- iFace.surf = new Cairo.Win32Surface(hdc);
-
- }
-
- public void ProcessEvents()
- {
+ WindowProcedureDelegate = WindowProcedure;
+
+ Rect rect = new Rect
+ {
+ Left = iFace.ClientRectangle.Left,
+ Top = iFace.ClientRectangle.Top,
+ Right = iFace.ClientRectangle.Right,
+ Bottom = iFace.ClientRectangle.Bottom
+ };
+
+ User32.Window.AdjustWindowRectEx (ref rect, 0, false, 0);
+
+ ExtendedWindowClass wc = new ExtendedWindowClass
+ {
+ Size = ExtendedWindowClass.SizeInBytes,
+ Style = 0,
+ WindowProc = WindowProcedureDelegate,
+ ClassExtra = 0,
+ WindowExtra = 0,
+ Instance = instance,
+ Icon = IntPtr.Zero,
+ Cursor = User32.Cursor.LoadCursor (CursorName.Arrow),
+ //Background = Gdi32.GetStockObject(GetStockObjectType.BlackBrush),
+ MenuName = null,
+ ClassName = className,
+ };
+
+ ushort atom = User32.WindowClass.RegisterClassEx (ref wc);
+
+ handle = User32.Window.CreateWindowEx (
+ ExtendedWindowStyles.ClientEdge,
+ className,
+ "The title of my window",
+ WindowStyles.OverlappedWindow,
+
+ rect.Left,
+ rect.Top,
+ rect.Width,
+ rect.Height,
+ IntPtr.Zero,
+ IntPtr.Zero,
+ instance,
+ IntPtr.Zero
+ );
+
+ User32.Window.ShowWindow (handle, ShowWindowCommand.Show);
+
+ hdc = User32.Window.GetDC (handle);
+ iFace.surf = new Cairo.Win32Surface (hdc);
+
+ }
+
+ public void ProcessEvents () {
Msg msg;
- while (User32.Message.PeekMessage(out msg, IntPtr.Zero, 0, 0, PeekMessageActions.Remove))
- {
- User32.Message.TranslateMessage(ref msg);
- User32.Message.DispatchMessage(ref msg);
- }
- }
+ while (User32.Message.PeekMessage (out msg, IntPtr.Zero, 0, 0, PeekMessageActions.Remove)) {
+ User32.Message.TranslateMessage (ref msg);
+ User32.Message.DispatchMessage (ref msg);
+ }
+ }
public bool IsDown (Key key) {
return false;
}
}
- void HandleWindowPositionChanged(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam)
- {
- var pos = Marshal.PtrToStructure<WindowPosition>(lParam);
- if (pos.HWnd == handle)
- {
- Rectangle bounds = new Rectangle(pos.X, pos.Y, pos.Width, pos.Height);
+ void HandleWindowPositionChanged (IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam) {
+ var pos = Marshal.PtrToStructure<WindowPosition> (lParam);
+ if (pos.HWnd == handle) {
+ Rectangle bounds = new Rectangle (pos.X, pos.Y, pos.Width, pos.Height);
User32.Window.SetWindowPos
(
- handle,
- IntPtr.Zero,
- bounds.X,
- bounds.Y,
+ handle,
+ IntPtr.Zero,
+ bounds.X,
+ bounds.Y,
bounds.Width,
bounds.Height,
SetWindowPosFlags.NoZOrder | SetWindowPosFlags.NoOwnerZOrder |
}
}
- static Key GetKey(int code)
- {
- switch (code)
- {
- // 0 - 15
- case 0: return Key.NoSymbol;
- case 1: return Key.Escape;
- case 2: return Key.key_1;
- case 3: return Key.key_2;
- case 4: return Key.key_3;
- case 5: return Key.key_4;
- case 6: return Key.key_5;
- case 7: return Key.key_6;
- case 8: return Key.key_7;
- case 9: return Key.key_8;
- case 10: return Key.key_9;
- case 11: return Key.key_0;
- case 12: return Key.minus;
- case 13: return Key.plus;
- case 14: return Key.BackSpace;
- case 15: return Key.Tab;
+ static Key GetKey (int code) {
+ switch (code) {
+ // 0 - 15
+ case 0: return Key.NoSymbol;
+ case 1: return Key.Escape;
+ case 2: return Key.key_1;
+ case 3: return Key.key_2;
+ case 4: return Key.key_3;
+ case 5: return Key.key_4;
+ case 6: return Key.key_5;
+ case 7: return Key.key_6;
+ case 8: return Key.key_7;
+ case 9: return Key.key_8;
+ case 10: return Key.key_9;
+ case 11: return Key.key_0;
+ case 12: return Key.minus;
+ case 13: return Key.plus;
+ case 14: return Key.BackSpace;
+ case 15: return Key.Tab;
// 16-31
- case 16: return Key.Q;
- case 17: return Key.W;
- case 18: return Key.E;
- case 19: return Key.R;
- case 20: return Key.T;
- case 21: return Key.Y;
- case 22: return Key.U;
- case 23: return Key.I;
- case 24: return Key.O;
- case 25: return Key.P;
- case 26: return Key.bracketleft;
- case 27: return Key.bracketright;
- case 28: return Key.Return;
- case 29: return Key.Control_L;
- case 30: return Key.A;
- case 31: return Key.S;
+ case 16: return Key.Q;
+ case 17: return Key.W;
+ case 18: return Key.E;
+ case 19: return Key.R;
+ case 20: return Key.T;
+ case 21: return Key.Y;
+ case 22: return Key.U;
+ case 23: return Key.I;
+ case 24: return Key.O;
+ case 25: return Key.P;
+ case 26: return Key.bracketleft;
+ case 27: return Key.bracketright;
+ case 28: return Key.Return;
+ case 29: return Key.Control_L;
+ case 30: return Key.A;
+ case 31: return Key.S;
// 32 - 47
- case 32: return Key.D;
- case 33: return Key.F;
- case 34: return Key.G;
- case 35: return Key.H;
- case 36: return Key.J;
- case 37: return Key.K;
- case 38: return Key.L;
- case 39: return Key.semicolon;
- case 40: return Key.quotedbl;
- case 41: return Key.grave;
- case 42: return Key.Shift_L;
- case 43: return Key.backslash;
- case 44: return Key.Z;
- case 45: return Key.X;
- case 46: return Key.C;
- case 47: return Key.V;
+ case 32: return Key.D;
+ case 33: return Key.F;
+ case 34: return Key.G;
+ case 35: return Key.H;
+ case 36: return Key.J;
+ case 37: return Key.K;
+ case 38: return Key.L;
+ case 39: return Key.semicolon;
+ case 40: return Key.quotedbl;
+ case 41: return Key.grave;
+ case 42: return Key.Shift_L;
+ case 43: return Key.backslash;
+ case 44: return Key.Z;
+ case 45: return Key.X;
+ case 46: return Key.C;
+ case 47: return Key.V;
// 48 - 63
- case 48: return Key.B;
- case 49: return Key.N;
- case 50: return Key.M;
- case 51: return Key.comma;
- case 52: return Key.period;
- case 53: return Key.slash;
- case 54: return Key.Shift_R;
- case 55: return Key.Print;
- case 56: return Key.Alt_L;
- case 57: return Key.space;
- case 58: return Key.Caps_Lock;
- case 59: return Key.F1;
- case 60: return Key.F2;
- case 61: return Key.F3;
- case 62: return Key.F4;
- case 63: return Key.F5;
+ case 48: return Key.B;
+ case 49: return Key.N;
+ case 50: return Key.M;
+ case 51: return Key.comma;
+ case 52: return Key.period;
+ case 53: return Key.slash;
+ case 54: return Key.Shift_R;
+ case 55: return Key.Print;
+ case 56: return Key.Alt_L;
+ case 57: return Key.space;
+ case 58: return Key.Caps_Lock;
+ case 59: return Key.F1;
+ case 60: return Key.F2;
+ case 61: return Key.F3;
+ case 62: return Key.F4;
+ case 63: return Key.F5;
// 64 - 79
- case 64: return Key.F6;
- case 65: return Key.F7;
- case 66: return Key.F8;
- case 67: return Key.F9;
- case 68: return Key.F10;
- case 69: return Key.Num_Lock;
- case 70: return Key.Scroll_Lock;
- case 71: return Key.Home;
- case 72: return Key.Up;
- case 73: return Key.Page_Up;
- case 74: return Key.KP_Subtract;
- case 75: return Key.Left;
- case 76: return Key.KP_5;
- case 77: return Key.Right;
- case 78: return Key.KP_Add;
- case 79: return Key.End;
+ case 64: return Key.F6;
+ case 65: return Key.F7;
+ case 66: return Key.F8;
+ case 67: return Key.F9;
+ case 68: return Key.F10;
+ case 69: return Key.Num_Lock;
+ case 70: return Key.Scroll_Lock;
+ case 71: return Key.Home;
+ case 72: return Key.Up;
+ case 73: return Key.Page_Up;
+ case 74: return Key.KP_Subtract;
+ case 75: return Key.Left;
+ case 76: return Key.KP_5;
+ case 77: return Key.Right;
+ case 78: return Key.KP_Add;
+ case 79: return Key.End;
// 80 - 95
- case 80: return Key.Down;
- case 81: return Key.Page_Down;
- case 82: return Key.Insert;
- case 83: return Key.Delete;
- case 84: return Key.NoSymbol;
- case 85: return Key.NoSymbol;
- case 86: return Key.NoSymbol;
- case 87: return Key.F11;
- case 88: return Key.F12;
- case 89: return Key.Pause;
- case 90: return Key.NoSymbol;
- case 91: return Key.Meta_L;
- case 92: return Key.Meta_R;
- case 93: return Key.Menu;
- case 94: return Key.NoSymbol;
- case 95: return Key.NoSymbol;
+ case 80: return Key.Down;
+ case 81: return Key.Page_Down;
+ case 82: return Key.Insert;
+ case 83: return Key.Delete;
+ case 84: return Key.NoSymbol;
+ case 85: return Key.NoSymbol;
+ case 86: return Key.NoSymbol;
+ case 87: return Key.F11;
+ case 88: return Key.F12;
+ case 89: return Key.Pause;
+ case 90: return Key.NoSymbol;
+ case 91: return Key.Meta_L;
+ case 92: return Key.Meta_R;
+ case 93: return Key.Menu;
+ case 94: return Key.NoSymbol;
+ case 95: return Key.NoSymbol;
// 96 - 106
- case 96: return Key.NoSymbol;
- case 97: return Key.NoSymbol;
- case 98: return Key.NoSymbol;
- case 99: return Key.NoSymbol;
- case 100: return Key.F13;
- case 101: return Key.F14;
- case 102: return Key.F15;
- case 103: return Key.F16;
- case 104: return Key.F17;
- case 105: return Key.F18;
- case 106: return Key.F19;
-
- default: return Key.NoSymbol;
+ case 96: return Key.NoSymbol;
+ case 97: return Key.NoSymbol;
+ case 98: return Key.NoSymbol;
+ case 99: return Key.NoSymbol;
+ case 100: return Key.F13;
+ case 101: return Key.F14;
+ case 102: return Key.F15;
+ case 103: return Key.F16;
+ case 104: return Key.F17;
+ case 105: return Key.F18;
+ case 106: return Key.F19;
+
+ default: return Key.NoSymbol;
}
}
const long ExtendedBit = 1 << 24; // Used to distinguish left and right control, alt and enter keys.
void handleKeyboard (IntPtr lParam, IntPtr wParam, bool pressed) {
- bool extended = (lParam.ToInt64() & ExtendedBit) != 0;
- uint scancode = (uint)((lParam.ToInt64() >> 16) & 0xFF);
+ bool extended = (lParam.ToInt64 () & ExtendedBit) != 0;
+ uint scancode = (uint)((lParam.ToInt64 () >> 16) & 0xFF);
//ushort repeat_count = unchecked((ushort)((ulong)lParam.ToInt64() & 0xffffu));
-// VirtualKey vkey = (VirtualKey)wParam;
-// var key = WinKeyMap.TranslateKey(scancode, vkey, extended, false, out bool is_valid);
+ // VirtualKey vkey = (VirtualKey)wParam;
+ // var key = WinKeyMap.TranslateKey(scancode, vkey, extended, false, out bool is_valid);
Key k = GetKey ((int)scancode);
- if (pressed)
+ if (pressed)
iFace.ProcessKeyDown (k);
else
- iFace.ProcessKeyUp (k);
+ iFace.ProcessKeyUp (k);
}
void handleChar (IntPtr lParam, IntPtr wParam) {
char c = IntPtr.Size == 4 ?
- (char)wParam.ToInt32() :
- (char)wParam.ToInt64();
+ (char)wParam.ToInt32 () :
+ (char)wParam.ToInt64 ();
if (!char.IsControl (c))
iFace.ProcessKeyPress (c);
- IntPtr WindowProcedure(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam)
- {
- var result = IntPtr.Zero;
-
-
- switch (message)
- {
- case WindowMessage.MouseMove:
- iFace.ProcessMouseMove
- ((int)((uint)lParam.ToInt32() & 0x0000FFFF), (int)(((uint)lParam.ToInt32() & 0xFFFF0000) >> 16));
- break;
- case WindowMessage.LButtonDown:
- iFace.ProcessMouseButtonDown(Crow.MouseButton.Left);
- return IntPtr.Zero;
- case WindowMessage.RButtonDown:
- iFace.ProcessMouseButtonDown(Crow.MouseButton.Right);
- return IntPtr.Zero;
- case WindowMessage.MButtonDown:
- iFace.ProcessMouseButtonDown(Crow.MouseButton.Middle);
- return IntPtr.Zero;
- case WindowMessage.LButtonUp:
- iFace.ProcessMouseButtonUp(Crow.MouseButton.Left);
- return IntPtr.Zero;
- case WindowMessage.RButtonUp:
- iFace.ProcessMouseButtonUp(Crow.MouseButton.Right);
- return IntPtr.Zero;
- case WindowMessage.MButtonUp:
- iFace.ProcessMouseButtonUp(Crow.MouseButton.Middle);
- return IntPtr.Zero;
- case WindowMessage.MouseWheel:
- iFace.ProcessMouseWheelChanged ((((long)wParam << 32) >> 48) / 120.0f);
- return IntPtr.Zero;
- case WindowMessage.MouseHWheel:
- iFace.ProcessMouseWheelChanged ((((long)wParam << 32) >> 48) / 120.0f);
- return IntPtr.Zero;
- case WindowMessage.KeyDown:
- case WindowMessage.SystemKeyDown:
- handleKeyboard (lParam, wParam, true);
- return IntPtr.Zero;
- case WindowMessage.KeyUp:
- case WindowMessage.SystemKeyUp:
- handleKeyboard (lParam, wParam, false);
- return IntPtr.Zero;
- case WindowMessage.Char:
- handleChar (lParam, wParam);
- break;
- case WindowMessage.WindowPosChanged:
- HandleWindowPositionChanged(handle, message, wParam, lParam);
- break;
-
-
- /*case WindowMessage.Activate:
- HandleActivate(handle, message, wParam, lParam);
- break;
-
- case WindowMessage.EnterMenuLoop:
- case WindowMessage.EnterSizeMove:
- HandleEnterModalLoop(handle, message, wParam, lParam);
- break;
-
- case WindowMessage.ExitMenuLoop:
- case WindowMessage.ExitSizeMove:
- HandleExitModalLoop(handle, message, wParam, lParam);
- break;
-
- case WindowMessage.EraseBackground:
- // This is triggered only when the client area changes.
- // As such it does not affect steady-state performance.
- break;
-
-
- case WindowMessage.StyleChanged:
- HandleStyleChanged(handle, message, wParam, lParam);
- break;
-
- case WindowMessage.Size:
- HandleSize(handle, message, wParam, lParam);
- break;
-
- case WindowMessage.SetCursor:
- result = HandleSetCursor(handle, message, wParam, lParam);
- break;
-
- case WindowMessage.CaptureChanged:
- HandleCaptureChanged(handle, message, wParam, lParam);
- break;
-
- case WindowMessage.Char:
- HandleChar(handle, message, wParam, lParam);
- break;
-
-
-
- case WindowMessage.MouseLeave:
- HandleMouseLeave(handle, message, wParam, lParam);
- break;
-
- case WindowMessage.MouseWheel:
- HandleMouseWheel(handle, message, wParam, lParam);
- return IntPtr.Zero;
-
- case WindowMessage.MouseHWheel:
- HandleMouseHWheel(handle, message, wParam, lParam);
- return IntPtr.Zero;
-
-
- // Keyboard events:
- case WindowMessage.KeyDown:
- case WindowMessage.KeyUp:
- case WindowMessage.SystemKeyDown:
- case WindowMessage.SystemKeyUp:
- HandleKeyboard(handle, message, wParam, lParam);
- return IntPtr.Zero;
-
- case WindowMessage.SystemChar:
- return IntPtr.Zero;
-
- case WindowMessage.KillFocus:
- HandleKillFocus(handle, message, wParam, lParam);
- break;
-
- case WindowMessage.DropFiles:
- HandleDropFiles(handle, message, wParam, lParam);
- break;
-
- case WindowMessage.Create:
- HandleCreate(handle, message, wParam, lParam);
- break;
- case WindowMessage.Paint:
- dc = User32.Window.BeginPaint(handle, out paintStruct);
-
- return IntPtr.Zero;*/
- case WindowMessage.Close:
- User32.Window.DestroyWindow(handle);
- return IntPtr.Zero;
- case WindowMessage.Destroy:
- User32.Message.PostQuitMessage(0);
- //User32.WindowClass.UnregisterClass(className, instance);
- break;
- }
-
- if (result != IntPtr.Zero)
- return result;
+ IntPtr WindowProcedure (IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam) {
+ var result = IntPtr.Zero;
+
+
+ switch (message) {
+ case WindowMessage.MouseMove:
+ iFace.ProcessMouseMove
+ ((int)((uint)lParam.ToInt32 () & 0x0000FFFF), (int)(((uint)lParam.ToInt32 () & 0xFFFF0000) >> 16));
+ break;
+ case WindowMessage.LButtonDown:
+ iFace.ProcessMouseButtonDown (Crow.MouseButton.Left);
+ return IntPtr.Zero;
+ case WindowMessage.RButtonDown:
+ iFace.ProcessMouseButtonDown (Crow.MouseButton.Right);
+ return IntPtr.Zero;
+ case WindowMessage.MButtonDown:
+ iFace.ProcessMouseButtonDown (Crow.MouseButton.Middle);
+ return IntPtr.Zero;
+ case WindowMessage.LButtonUp:
+ iFace.ProcessMouseButtonUp (Crow.MouseButton.Left);
+ return IntPtr.Zero;
+ case WindowMessage.RButtonUp:
+ iFace.ProcessMouseButtonUp (Crow.MouseButton.Right);
+ return IntPtr.Zero;
+ case WindowMessage.MButtonUp:
+ iFace.ProcessMouseButtonUp (Crow.MouseButton.Middle);
+ return IntPtr.Zero;
+ case WindowMessage.MouseWheel:
+ iFace.ProcessMouseWheelChanged ((((long)wParam << 32) >> 48) / 120.0f);
+ return IntPtr.Zero;
+ case WindowMessage.MouseHWheel:
+ iFace.ProcessMouseWheelChanged ((((long)wParam << 32) >> 48) / 120.0f);
+ return IntPtr.Zero;
+ case WindowMessage.KeyDown:
+ case WindowMessage.SystemKeyDown:
+ handleKeyboard (lParam, wParam, true);
+ return IntPtr.Zero;
+ case WindowMessage.KeyUp:
+ case WindowMessage.SystemKeyUp:
+ handleKeyboard (lParam, wParam, false);
+ return IntPtr.Zero;
+ case WindowMessage.Char:
+ handleChar (lParam, wParam);
+ break;
+ case WindowMessage.WindowPosChanged:
+ HandleWindowPositionChanged (handle, message, wParam, lParam);
+ break;
+
+
+ /*case WindowMessage.Activate:
+ HandleActivate(handle, message, wParam, lParam);
+ break;
+
+ case WindowMessage.EnterMenuLoop:
+ case WindowMessage.EnterSizeMove:
+ HandleEnterModalLoop(handle, message, wParam, lParam);
+ break;
+
+ case WindowMessage.ExitMenuLoop:
+ case WindowMessage.ExitSizeMove:
+ HandleExitModalLoop(handle, message, wParam, lParam);
+ break;
+
+ case WindowMessage.EraseBackground:
+ // This is triggered only when the client area changes.
+ // As such it does not affect steady-state performance.
+ break;
+
+
+ case WindowMessage.StyleChanged:
+ HandleStyleChanged(handle, message, wParam, lParam);
+ break;
+
+ case WindowMessage.Size:
+ HandleSize(handle, message, wParam, lParam);
+ break;
+
+ case WindowMessage.SetCursor:
+ result = HandleSetCursor(handle, message, wParam, lParam);
+ break;
+
+ case WindowMessage.CaptureChanged:
+ HandleCaptureChanged(handle, message, wParam, lParam);
+ break;
+
+ case WindowMessage.Char:
+ HandleChar(handle, message, wParam, lParam);
+ break;
+
+
+
+ case WindowMessage.MouseLeave:
+ HandleMouseLeave(handle, message, wParam, lParam);
+ break;
+
+ case WindowMessage.MouseWheel:
+ HandleMouseWheel(handle, message, wParam, lParam);
+ return IntPtr.Zero;
+
+ case WindowMessage.MouseHWheel:
+ HandleMouseHWheel(handle, message, wParam, lParam);
+ return IntPtr.Zero;
+
+
+ // Keyboard events:
+ case WindowMessage.KeyDown:
+ case WindowMessage.KeyUp:
+ case WindowMessage.SystemKeyDown:
+ case WindowMessage.SystemKeyUp:
+ HandleKeyboard(handle, message, wParam, lParam);
+ return IntPtr.Zero;
+
+ case WindowMessage.SystemChar:
+ return IntPtr.Zero;
+
+ case WindowMessage.KillFocus:
+ HandleKillFocus(handle, message, wParam, lParam);
+ break;
+
+ case WindowMessage.DropFiles:
+ HandleDropFiles(handle, message, wParam, lParam);
+ break;
+
+ case WindowMessage.Create:
+ HandleCreate(handle, message, wParam, lParam);
+ break;
+ case WindowMessage.Paint:
+ dc = User32.Window.BeginPaint(handle, out paintStruct);
+
+ return IntPtr.Zero;*/
+ case WindowMessage.Close:
+ User32.Window.DestroyWindow (handle);
+ return IntPtr.Zero;
+ case WindowMessage.Destroy:
+ User32.Message.PostQuitMessage (0);
+ //User32.WindowClass.UnregisterClass(className, instance);
+ break;
+ }
- return User32.Window.DefWindowProc(handle, message, wParam, lParam);
- }
+ if (result != IntPtr.Zero)
+ return result;
+
+ return User32.Window.DefWindowProc (handle, message, wParam, lParam);
+ }
- }
+ }
}
xcb_window_class_t.INPUT_OUTPUT, scr.root_visual, mask, intPtr);
}
-
xcb_map_window (conn, win);
xcb_flush (conn);
-
IntPtr visual = findVisual (scr_it, scr.root_visual);
- loadCursors ();
+ //loadCursors ();
iFace.surf = new Cairo.XcbSurface (conn, win, visual, iFace.ClientRectangle.Width, iFace.ClientRectangle.Height);
}
level = currentNode.Level - 1;
}
- for (int l = 0; l < level; l++) {
+ /*for (int l = 0; l < level; l++) {
gr.MoveTo (rFld.Center.X + 0.5, y);
gr.LineTo (rFld.Center.X + 0.5, y + fe.Ascent + fe.Descent);
rFld.Left += foldHSpace;
+ }*/
+ if (level > 0) {
+ gr.MoveTo (rFld.Center.X + 0.5, y);
+ gr.LineTo (rFld.Center.X + 0.5, y + fe.Ascent + fe.Descent);
}
if (closingNode) {
gr.MoveTo (rFld.Center.X + 0.5, y);
</HorizontalStack>
</VerticalStack>
<Splitter/>
- <IMLContainer Path="#Crow.Coding.ui.editors.SourceEditor.crow"/>
+ <IMLContainer Path="#CrowIDE.ui.editors.SourceEditor.crow"/>
<Label DataSource="{../editor.Error}" Text="{Message}"
Visible="{../editor.HasError}"
Height="Fit" Width="Stretched" Background="DarkRed" Foreground="White"
--- /dev/null
+<Project Sdk="Microsoft.NET.Sdk">
+ <Import Project="$(SolutionDir)netfx.props" />
+ <PropertyGroup>
+ <TargetFrameworks>net472</TargetFrameworks>
+ <TargetFramework>net472</TargetFramework>
+ <OutputType>Exe</OutputType>
+ <StartupObject>Crow.Coding.CrowIDE</StartupObject>
+ <OutputPath>$(SolutionDir)build\$(Configuration)\</OutputPath>
+ <IntermediateOutputPath>$(SolutionDir)build\obj\$(Configuration)</IntermediateOutputPath>
+ <EnableDefaultItems>false</EnableDefaultItems>
+ <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
+ <ReleaseVersion>0.8.0</ReleaseVersion>
+ </PropertyGroup>
+
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugType>full</DebugType>
+ <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
+ <DefineConstants>TRACE;DEBUG</DefineConstants>
+ </PropertyGroup>
+
+ <ItemGroup Condition="$(TargetFramework.StartsWith('net4'))">
+ <Reference Include="System" />
+ <PackageReference Include="CVKL" Version="0.1.5-beta" />
+ <ProjectReference Include="..\..\Crow\Crow.csproj" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <Compile Include="..\common\CrowWin.cs" />
+ <Compile Include="src\**\*.cs" Exclude="src\ProjectTree\CSProjectFile.cs" />
+ <EmbeddedResource Remove="icons\blank-file2.svg" />
+ <EmbeddedResource Include="icons\*.*">
+ <LogicalName>CrowIDE.icons.%(Filename)%(Extension)</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="ui\**\*.crow" />
+ <EmbeddedResource Include="ui\**\*.itemp" />
+ <EmbeddedResource Include="ui\**\*.template">
+ <LogicalName>Crow.Coding.%(Filename).template</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="DefaultTemplateOverrides\*.*">
+ <LogicalName>Crow.%(Filename).template</LogicalName>
+ </EmbeddedResource>
+ <EmbeddedResource Include="IDE.style" />
+ </ItemGroup>
+ <ItemGroup Condition="$(TargetFramework.StartsWith('netstandard'))">
+ <PackageReference Include="System.CodeDom" Version="4.5.0" />
+ </ItemGroup>
+</Project>
--- /dev/null
+<Properties StartupConfiguration="{B6D911CD-1D09-42FC-B300-9187190F2AE1}|Default">
+ <MonoDevelop.Ide.Workbench />
+ <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
+ <MonoDevelop.Ide.DebuggingService.Breakpoints>
+ <BreakpointStore />
+ </MonoDevelop.Ide.DebuggingService.Breakpoints>
+ <MonoDevelop.Ide.DebuggingService.PinnedWatches>
+ <Watch file="../src/GraphicObjects/Shape.cs" line="42" offsetX="508" offsetY="265" expression="c" liveUpdate="False" />
+ <Watch file="../src/GraphicObjects/Shape.cs" line="48" offsetX="524" offsetY="319" expression="tmp" liveUpdate="False" />
+ <Watch file="../src/GraphicObjects/Slider.cs" line="88" offsetX="534" offsetY="788" expression="value" liveUpdate="False" />
+ <Watch file="src/SourceEditor/SourceEditor.cs" line="632" offsetX="703" offsetY="8806" expression="cl.Tokens [t]" liveUpdate="False" />
+ <Watch file="src/SourceEditor/CSharpParser.cs" line="202" offsetX="590" offsetY="1493" expression="currentTok" liveUpdate="False" />
+ <Watch file="src/SourceEditor/Parser.cs" line="258" offsetX="328" offsetY="3348" expression="tmp" liveUpdate="False" />
+ <Watch file="src/SourceEditor/SourceEditor.cs" line="629" offsetX="835" offsetY="9513" expression="lineIndex" liveUpdate="False" />
+ <Watch file="src/SourceEditor/BufferParser.cs" line="90" offsetX="544" offsetY="972" expression="SyntacticTreeMaxDepth" liveUpdate="False" />
+ </MonoDevelop.Ide.DebuggingService.PinnedWatches>
+ <MultiItemStartupConfigurations />
+ <MonoDevelop.Ide.ItemProperties.CrowIDE PreferredExecutionTarget="MonoDevelop.Default" />
+</Properties>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<MenuItem MinimumSize="20,20" Height="Fit" Width="160" Caption="Context Menu" Data="{ContextCommands}" Orientation="Vertical"
+ IsOpened ="true" Visible="{/IsOpened}" SelectionBackground="Transparent">
+ <Template>
+ <Border Background="DimGrey" Foreground="Black" CornerRadius="2">
+ <GenericStack Orientation="{./Orientation}" Name="ItemsContainer" Margin="2"/>
+ </Border>
+ </Template>
+ <ItemTemplate>
+ <MenuItem Command="{}" Width="150" PopWidth="120" SelectionBackground="Transparent" IsEnabled="{CanExecute}">
+ <Template>
+ <Popper Font="{./Font}" Caption="{./Caption}" Background="{./Background}" PopDirection="{./PopDirection}"
+ Foreground = "{./Foreground}" CanPop="{./HasChildren}" MouseDown="./onMI_Click"
+ IsPopped="{²./IsOpened}" PopWidth="{./PopWidth}" PopHeight="{./PopHeight}">
+ <Template>
+ <Border Name="border1"
+ CornerRadius="0"
+ MouseEnter="{Foreground=vgradient|0:White|0.2:Grey|0.9:Grey|1:Black}"
+ MouseLeave="{Foreground=Transparent}"
+ MouseDown="{Foreground=vgradient|0:Black|0.05:Grey|0.85:Grey|1:White}"
+ MouseUp="{Foreground=vgradient|0:White|0.2:Grey|0.9:Grey|1:Black}"
+ MinimumSize = "60,0"
+ Foreground="Transparent"
+ Background="{./Background}">
+ <HorizontalStack Spacing="5">
+ <Image Height="14" Width="14" Picture="{Icon}" />
+ <Label Text="{./Caption}"
+ Foreground="{./Foreground}"
+ Margin="1" HorizontalAlignment="Left"
+ Font="{./Font}" />
+ </HorizontalStack>
+ </Border>
+ </Template>
+ <Border Foreground="DimGrey" Width="{../PopWidth}" Height="{../PopHeight}" Background="DimGrey">
+ <VerticalStack Name="ItemsContainer"/>
+ </Border>
+ </Popper>
+ </Template>
+ </MenuItem>
+ </ItemTemplate>
+</MenuItem>
+
--- /dev/null
+<?xml version="1.0"?>
+<Popper Font="{./Font}" Caption="{./Caption}" Background="{./Background}" PopDirection="{./PopDirection}"
+ Foreground = "{./Foreground}" CanPop="{./HasChildren}"
+ IsPopped="{²./IsOpened}" PopWidth="{./PopWidth}" PopHeight="{./PopHeight}" IsEnabled="{./IsEnabled}">
+ <Template>
+ <CheckBox IsChecked="{²./IsPopped}" Caption="{./Caption}" Background="{./Background}" Foreground="{./Foreground}">
+ <Template>
+ <Border Name="border1" ForwardMouseEvents="true"
+ MouseEnter="{Foreground=vgradient|0:White|0.2:Grey|0.9:Grey|1:Black}"
+ MouseLeave="{Foreground=Transparent}"
+ MouseDown="{Foreground=vgradient|0:Black|0.05:Grey|0.85:Grey|1:White}"
+ MouseUp="{Foreground=vgradient|0:White|0.2:Grey|0.9:Grey|1:Black}"
+ MinimumSize = "40,0"
+ Foreground="Transparent"
+ Background="{./Background}">
+ <HorizontalStack HorizontalAlignment="Left" Margin="1">
+ <Image Width="10" Height="10" Picture="{../../../../../Icon}"/>
+ <Label Text="{./Caption}"
+ Foreground="{./Foreground}"
+ Font="{./Font}" />
+ </HorizontalStack>
+ </Border>
+ </Template>
+ </CheckBox>
+ </Template>
+ <Border Foreground="DimGrey" Width="{../PopWidth}" Height="{../PopHeight}" Background="Jet">
+ <VerticalStack Name="ItemsContainer"/>
+ </Border>
+</Popper>
--- /dev/null
+<?xml version="1.0"?>
+<GenericStack Orientation="Vertical" Spacing="0"
+ MouseEnter="{caption.Foreground=White}"
+ MouseLeave="{caption.Foreground=Grey}">
+ <HorizontalStack Margin="2" Left="{./TabOffset}"
+ Name="TabTitle"
+ HorizontalAlignment="Left"
+ Height="{./TabHeight}"
+ Width="{./TabWidth}">
+ <Label Name="caption" Text="{./Caption}" Foreground="Grey" Width="Stretched"/>
+ <Border CornerRadius="5" BorderWidth="1" Foreground="Transparent" Height="12" Width="12"
+ MouseEnter="{Foreground=White}" MouseLeave="{Foreground=Transparent}">
+ <Image Focusable="true" Name="Image" Margin="0" Width="Stretched" Height="Stretched" Path="#Crow.Icons.exit2.svg"
+ MouseClick="./butCloseTabClick"/>
+ </Border>
+ </HorizontalStack>
+ <Container Name="Content"/>
+</GenericStack>
+
--- /dev/null
+Label {
+ Foreground="Black";
+}
+icon {
+ Width="14";
+ Height="14";
+}
+MemberViewLabel {
+ Margin="1";
+ Height="Fit";
+ Width="50%";
+ Background="White";
+}
+MemberViewHStack {
+ Focusable="true";
+ Height="Fit";
+ Spacing="1";
+ MouseEnter="{Background=SteelBlue}";
+ MouseLeave="{Background=Transparent}";
+}
+
+IcoBut {
+ Template = "#Crow.Coding.IcoBut.template";
+ MinimumSize = "10,10";
+ Width = "8";
+ Height = "14";
+ Background = "Black";
+}
+
+WinSchema {
+ Template="#Crow.Coding.ui.DockWindows.WinSchemaItem.template";
+ Focusable = "true";
+ MinimumSize="150,50";
+ Width = "Fit";
+ Height = "Fit";
+}
+TabItem {
+ AllowDrag="false";
+ Background="Grey";
+ SelectedBackground="0.9,0.9,0.91,1.0";
+ Foreground="Black";
+}
+TreeItemBorder {
+ CornerRadius="2";
+ Margin="0";
+ //Focusable="true";
+ Height="Fit";
+ Width="Stretched";
+ Foreground="Transparent";
+ MouseEnter="{Foreground=DimGrey}";
+ MouseLeave="{Foreground=Transparent}";
+}
+TreeIcon {
+ Margin="0";
+ Width="14";
+ Height="14";
+}
+Splitter {
+ Thickness="1";
+ Background="RoyalBlue";
+}
+DockWindow {
+ Background="0.98,0.98,0.99,0.9";
+}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
+<g>
+ <polygon fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" points="63,63 1,63 1,1 51,1 63,13 "/>
+</g>
+<rect x="7" y="31" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" width="50" height="32"/>
+<line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="14" y1="39" x2="50" y2="39"/>
+<line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="14" y1="47" x2="50" y2="47"/>
+<line fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" x1="14" y1="55" x2="50" y2="55"/>
+<rect x="15" y="1" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" width="34" height="19"/>
+<rect x="38" y="5" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" width="5" height="11"/>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14.9 1.1c-1.4-1.4-3.7-1.4-5.1 0l-4.4 4.3c-1.4 1.5-1.4 3.7 0 5.2 0.1 0.1 0.3 0.2 0.4 0.3l1.5-1.5c-0.1-0.1-0.3-0.2-0.4-0.3-0.6-0.6-0.6-1.6 0-2.2l4.4-4.4c0.6-0.6 1.6-0.6 2.2 0s0.6 1.6 0 2.2l-1.3 1.3c0.4 0.8 0.5 1.7 0.4 2.5l2.3-2.3c1.5-1.4 1.5-3.7 0-5.1z"></path>
+<path fill="#dddddd" d="M10.2 5.1l-1.5 1.5c0 0 0.3 0.2 0.4 0.3 0.6 0.6 0.6 1.6 0 2.2l-4.4 4.4c-0.6 0.6-1.6 0.6-2.2 0s-0.6-1.6 0-2.2l1.3-1.3c-0.4-0.8-0.1-1.3-0.4-2.5l-2.3 2.3c-1.4 1.4-1.4 3.7 0 5.1s3.7 1.4 5.1 0l4.4-4.4c1.4-1.4 1.4-3.7 0-5.1-0.2-0.1-0.4-0.3-0.4-0.3z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#ffffff" d="M 10,0 H 2 V 16 H 14 V 4 Z"/>
+<path fill="#444444" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"/>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M5 0h6v3h-6v-3z"></path>
+<path fill="#FFFFFF" d="M1 4h14v3h-14v-3z"></path>
+<path fill="#FFFFFF" d="M3 8h10v3h-10v-3z"></path>
+<path fill="#FFFFFF" d="M0 12h16v3h-16v-3z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M15.2 6l-1.1-0.2c-0.1-0.2-0.1-0.4-0.2-0.6l0.6-0.9 0.5-0.7-2.6-2.6-0.7 0.5-0.9 0.6c-0.2-0.1-0.4-0.1-0.6-0.2l-0.2-1.1-0.2-0.8h-3.6l-0.2 0.8-0.2 1.1c-0.2 0.1-0.4 0.1-0.6 0.2l-0.9-0.6-0.7-0.4-2.5 2.5 0.5 0.7 0.6 0.9c-0.2 0.2-0.2 0.4-0.3 0.6l-1.1 0.2-0.8 0.2v3.6l0.8 0.2 1.1 0.2c0.1 0.2 0.1 0.4 0.2 0.6l-0.6 0.9-0.5 0.7 2.6 2.6 0.7-0.5 0.9-0.6c0.2 0.1 0.4 0.1 0.6 0.2l0.2 1.1 0.2 0.8h3.6l0.2-0.8 0.2-1.1c0.2-0.1 0.4-0.1 0.6-0.2l0.9 0.6 0.7 0.5 2.6-2.6-0.5-0.7-0.6-0.9c0.1-0.2 0.2-0.4 0.2-0.6l1.1-0.2 0.8-0.2v-3.6l-0.8-0.2zM15 9l-1.7 0.3c-0.1 0.5-0.3 1-0.6 1.5l0.9 1.4-1.4 1.4-1.4-0.9c-0.5 0.3-1 0.5-1.5 0.6l-0.3 1.7h-2l-0.3-1.7c-0.5-0.1-1-0.3-1.5-0.6l-1.4 0.9-1.4-1.4 0.9-1.4c-0.3-0.5-0.5-1-0.6-1.5l-1.7-0.3v-2l1.7-0.3c0.1-0.5 0.3-1 0.6-1.5l-1-1.4 1.4-1.4 1.4 0.9c0.5-0.3 1-0.5 1.5-0.6l0.4-1.7h2l0.3 1.7c0.5 0.1 1 0.3 1.5 0.6l1.4-0.9 1.4 1.4-0.9 1.4c0.3 0.5 0.5 1 0.6 1.5l1.7 0.3v2z"></path>
+<path fill="#FFFFFF" d="M8 4.5c-1.9 0-3.5 1.6-3.5 3.5s1.6 3.5 3.5 3.5 3.5-1.6 3.5-3.5c0-1.9-1.6-3.5-3.5-3.5zM8 10.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5c0 1.4-1.1 2.5-2.5 2.5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M12 7v-2l-1.2-0.4c-0.1-0.3-0.2-0.7-0.4-1l0.6-1.2-1.5-1.3-1.1 0.5c-0.3-0.2-0.6-0.3-1-0.4l-0.4-1.2h-2l-0.4 1.2c-0.3 0.1-0.7 0.2-1 0.4l-1.1-0.5-1.4 1.4 0.6 1.2c-0.2 0.3-0.3 0.6-0.4 1l-1.3 0.3v2l1.2 0.4c0.1 0.3 0.2 0.7 0.4 1l-0.5 1.1 1.4 1.4 1.2-0.6c0.3 0.2 0.6 0.3 1 0.4l0.3 1.3h2l0.4-1.2c0.3-0.1 0.7-0.2 1-0.4l1.2 0.6 1.4-1.4-0.6-1.2c0.2-0.3 0.3-0.6 0.4-1l1.2-0.4zM3 6c0-1.7 1.3-3 3-3s3 1.3 3 3c0 1.7-1.3 3-3 3s-3-1.3-3-3z"></path>
+<path fill="#FFFFFF" d="M7.5 6c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path>
+<path fill="#FFFFFF" d="M16 3v-1h-0.6c0-0.2-0.1-0.4-0.2-0.5l0.4-0.4-0.7-0.7-0.4 0.4c-0.2-0.1-0.3-0.2-0.5-0.2v-0.6h-1v0.6c-0.2 0-0.4 0.1-0.5 0.2l-0.4-0.4-0.7 0.7 0.4 0.4c-0.1 0.2-0.2 0.3-0.2 0.5h-0.6v1h0.6c0 0.2 0.1 0.4 0.2 0.5l-0.4 0.4 0.7 0.7 0.4-0.4c0.2 0.1 0.3 0.2 0.5 0.2v0.6h1v-0.6c0.2 0 0.4-0.1 0.5-0.2l0.4 0.4 0.7-0.7-0.4-0.4c0.1-0.2 0.2-0.3 0.2-0.5h0.6zM13.5 3.5c-0.6 0-1-0.4-1-1s0.4-1 1-1 1 0.4 1 1c0 0.6-0.4 1-1 1z"></path>
+<path fill="#FFFFFF" d="M15.4 11.8c-0.1-0.3-0.2-0.6-0.4-0.9l0.3-0.6-0.7-0.7-0.5 0.4c-0.3-0.2-0.6-0.3-0.9-0.4l-0.2-0.6h-1l-0.2 0.6c-0.3 0.1-0.6 0.2-0.9 0.4l-0.6-0.3-0.7 0.7 0.3 0.6c-0.2 0.3-0.3 0.6-0.4 0.9l-0.5 0.1v1l0.6 0.2c0.1 0.3 0.2 0.6 0.4 0.9l-0.3 0.6 0.7 0.7 0.6-0.3c0.3 0.2 0.6 0.3 0.9 0.4l0.1 0.5h1l0.2-0.6c0.3-0.1 0.6-0.2 0.9-0.4l0.6 0.3 0.7-0.7-0.4-0.5c0.2-0.3 0.3-0.6 0.4-0.9l0.6-0.2v-1l-0.6-0.2zM12.5 14c-0.8 0-1.5-0.7-1.5-1.5s0.7-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M13 3h-3l-3-3h-7v13h6v3h10v-10l-3-3zM7 1l2 2h-2v-2zM1 12v-11h5v3h3v8h-8zM15 15h-8v-2h3v-9h2v3h3v8zM13 6v-2l2 2h-2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0"?>
+<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
+
+ <g class="layer">
+ <title>Layer 1</title>
+ <path d="m10,0l-8,0l0,16l12,0l0,-12l-4,-4z" fill="#ffffff" id="svg_1"/>
+ <path d="m10,0l-8,0l0,16l12,0l0,-12l-4,-4zm-1,5l4,0l0,10l-10,0l0,-14l6,0l0,4zm1,-1l0,-3l3,3l-3,0z" fill="#444444" id="svg_2"/>
+ <text fill="#007f00" font-family="Monospace" font-size="16" font-style="normal" font-weight="bold" id="svg_4" stroke="#000000" stroke-width="0" text-anchor="middle" transform="matrix(0.69828, 0, 0, 0.877654, 0.704781, 2.22646)" x="7.714503" xml:space="preserve" y="12.444685">c</text>
+ <text fill="#007f00" font-family="Monospace" font-size="7" font-style="normal" font-weight="bold" id="svg_5" stroke="#000000" stroke-width="0" text-anchor="middle" transform="matrix(0.999951, 0, 0, 0.975655, -2.14552, 0.0604767)" x="12.987902" xml:space="preserve" y="11.031572">#</text>
+ </g>
+</svg>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M2.1 3.1c0.2 1.3 0.4 1.6 0.4 2.9 0 0.8-1.5 1.5-1.5 1.5v1c0 0 1.5 0.7 1.5 1.5 0 1.3-0.2 1.6-0.4 2.9-0.3 2.1 0.8 3.1 1.8 3.1s2.1 0 2.1 0v-2c0 0-1.8 0.2-1.8-1 0-0.9 0.2-0.9 0.4-2.9 0.1-0.9-0.5-1.6-1.1-2.1 0.6-0.5 1.2-1.1 1.1-2-0.3-2-0.4-2-0.4-2.9 0-1.2 1.8-1.1 1.8-1.1v-2c0 0-1 0-2.1 0s-2.1 1-1.8 3.1z"></path>
+<path fill="#dddddd" d="M13.9 3.1c-0.2 1.3-0.4 1.6-0.4 2.9 0 0.8 1.5 1.5 1.5 1.5v1c0 0-1.5 0.7-1.5 1.5 0 1.3 0.2 1.6 0.4 2.9 0.3 2.1-0.8 3.1-1.8 3.1s-2.1 0-2.1 0v-2c0 0 1.8 0.2 1.8-1 0-0.9-0.2-0.9-0.4-2.9-0.1-0.9 0.5-1.6 1.1-2.1-0.6-0.5-1.2-1.1-1.1-2 0.2-2 0.4-2 0.4-2.9 0-1.2-1.8-1.1-1.8-1.1v-2c0 0 1 0 2.1 0s2.1 1 1.8 3.1z"></path>
+</svg>
--- /dev/null
+<svg xmlns="http://www.w3.org/2000/svg" width="1120px" height="670px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1120 670" preserveAspectRatio="xMidYMid meet" ><rect id="svgEditorBackground" x="0" y="0" width="1120" height="670" style="fill: none; stroke: none;"/><line id="e1_line" x1="432" y1="118" x2="291" y2="273" style="stroke:black;fill:none;stroke-width:1px;"/><line id="e2_line" x1="291" y1="270" x2="397" y2="402" style="stroke:black;fill:none;stroke-width:1px;"/><polyline style="stroke:black;fill:none;stroke-width:10px;stroke-linecap:round;stroke-linejoin:round;" id="e3_polyline" points="685,138 683,138 596,275 694,413"/></svg>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M16 4c0 0 0-1-1-2s-1.9-1-1.9-1l-1.1 1.1v-2.1h-12v16h12v-8l4-4zM6.3 11.4l-0.6-0.6 0.3-1.1 1.5 1.5-1.2 0.2zM7.2 9.5l-0.6-0.6 5.2-5.2c0.2 0.1 0.4 0.3 0.6 0.5zM14.1 2.5l-0.9 1c-0.2-0.2-0.4-0.3-0.6-0.5l0.9-0.9c0.1 0.1 0.3 0.2 0.6 0.4zM11 15h-10v-14h10v2.1l-5.9 5.9-1.1 4.1 4.1-1.1 2.9-3v6z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8.1 14l6.4-7.2c0.6-0.7 0.6-1.8-0.1-2.5l-2.7-2.7c-0.3-0.4-0.8-0.6-1.3-0.6h-1.8c-0.5 0-1 0.2-1.4 0.6l-6.7 7.6c-0.6 0.7-0.6 1.9 0.1 2.5l2.7 2.7c0.3 0.4 0.8 0.6 1.3 0.6h11.4v-1h-7.9zM6.8 13.9c0 0 0-0.1 0 0l-2.7-2.7c-0.4-0.4-0.4-0.9 0-1.3l3.4-3.9h-1l-3 3.3c-0.6 0.7-0.6 1.7 0.1 2.4l2.3 2.3h-1.3c-0.2 0-0.4-0.1-0.6-0.2l-2.8-2.8c-0.3-0.3-0.3-0.8 0-1.1l3.5-3.9h1.8l3.5-4h1l-3.5 4 3.1 3.7-3.5 4c-0.1 0.1-0.2 0.1-0.3 0.2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M5.3 6.7l1.4-1.4-3-3 1.3-1.3h-4v4l1.3-1.3z"></path>
+<path fill="#dddddd" d="M6.7 10.7l-1.4-1.4-3 3-1.3-1.3v4h4l-1.3-1.3z"></path>
+<path fill="#dddddd" d="M10.7 9.3l-1.4 1.4 3 3-1.3 1.3h4v-4l-1.3 1.3z"></path>
+<path fill="#dddddd" d="M11 1l1.3 1.3-3 3 1.4 1.4 3-3 1.3 1.3v-4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#FFFFFF" d="M6.2 13h-0.7l-2-2.5 2-2.5h0.7l-2 2.5z"></path>
+<path fill="#FFFFFF" d="M9.8 13h0.7l2-2.5-2-2.5h-0.7l2 2.5z"></path>
+<path fill="#FFFFFF" d="M6.7 14h0.6l2.1-7h-0.8z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M9 5h5v11h-12v-16h7v5zM10 4v-4l4 4h-4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#FFFFFF" d="M5 7v2h2v5h2v-5h2v-2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M11.7 1.9c-1-1.2-2.6-1.9-4.2-1.9s-3.2 0.7-4.2 1.9c-1 1.1-1.4 2.6-1.2 4 0.2 1.5 0.8 2.6 2.1 3.7 0.5 0.4 0.7 0.8 0.9 1.2 0 0.1 0.1 0.2 0.1 0.3-0.1 0.1-0.2 0.2-0.2 0.4 0 0.3 0.2 0.5 0.5 0.5-0.3 0-0.5 0.2-0.5 0.5s0.2 0.5 0.5 0.5c-0.3 0-0.5 0.2-0.5 0.5s0.2 0.5 0.5 0.5c-0.3 0-0.5 0.2-0.5 0.5s0.2 0.5 0.5 0.5h0.5c0 0.5 0.7 1 1.5 1s1.5-0.5 1.5-1h0.5c0.3 0 0.5-0.2 0.5-0.5s-0.2-0.5-0.5-0.5c0.3 0 0.5-0.2 0.5-0.5s-0.2-0.5-0.5-0.5c0.3 0 0.5-0.2 0.5-0.5s-0.2-0.5-0.5-0.5c0.3 0 0.5-0.2 0.5-0.5 0-0.2-0.1-0.3-0.2-0.4 0-0.1 0.1-0.1 0.1-0.2 0.2-0.4 0.4-0.8 0.9-1.2 1.3-1.1 1.9-2.2 2.1-3.8 0.2-1.4-0.2-2.8-1.2-4zM12 5.8c-0.2 1.3-0.7 2.2-1.8 3.2-0.6 0.5-0.9 1-1.2 1.4-0.2 0.5-0.3 0.6-0.5 0.6h-2c-0.2 0-0.3-0.1-0.5-0.6-0.2-0.4-0.5-1-1.1-1.6-1.3-1.1-1.6-2-1.8-3-0.2-1.1 0.2-2.3 0.9-3.2 0.9-1 2.2-1.6 3.5-1.6s2.6 0.6 3.5 1.6c0.7 0.9 1.1 2.1 1 3.2z"></path>
+<path fill="#FFFFFF" d="M11 5h-1c0-0.7-0.8-2-2-2v-1c1.8 0 3 1.8 3 3z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 5h3v1h-3v-1z"></path>
+<path fill="#dddddd" d="M5 0h1v3h-1v-3z"></path>
+<path fill="#dddddd" d="M6 11h-1v-2.5l1 1z"></path>
+<path fill="#dddddd" d="M11 6h-1.5l-1-1h2.5z"></path>
+<path fill="#dddddd" d="M3.131 7.161l0.707 0.707-2.97 2.97-0.707-0.707 2.97-2.97z"></path>
+<path fill="#dddddd" d="M10.131 0.161l0.707 0.707-2.97 2.97-0.707-0.707 2.97-2.97z"></path>
+<path fill="#dddddd" d="M0.836 0.199l3.465 3.465-0.707 0.707-3.465-3.465 0.707-0.707z"></path>
+<path fill="#dddddd" d="M6.1 4.1l-2.1 2 9.8 9.9 2.2-2.1-9.9-9.8zM6.1 5.5l2.4 2.5-0.6 0.6-2.5-2.5 0.7-0.6z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11 0h5v4h-5v-4z"></path>
+<path fill="#dddddd" d="M11 5v3c0 1.6-1.4 3-3 3s-3-1.4-3-3v-3h-5v3c0 4.4 3.6 8 8 8s8-3.6 8-8v-3h-5z"></path>
+<path fill="#dddddd" d="M0 0h5v4h-5v-4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 8l-3-3v2h-4v-4h2l-3-3-3 3h2v4h-4v-2l-3 3 3 3v-2h4v4h-2l3 3 3-3h-2v-4h4v2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 6v-2h-7l-1-2h-4l-1 2h-1v11h14l2-9h-2zM14.9 7l-1.6 7-11.9-0.1 2.3-6.9h11.2zM1 5h0.6l1-2h2.6l1.2 2h6.6v1h-10l-2 5.9v-6.9z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M6 5v6h4v-6h2l-4-5-4 5z"></path>
+<path fill="#FFFFFF" d="M13 2h-2l0.9 1h0.4l2.6 8h-3.9v2h-6v-2h-3.9l2.6-8h0.4l0.9-1h-2l-3 9v5h16v-5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M5.6 11.6l-1.2-1.2c-0.8-0.2-2-0.1-2.7 1-0.8 1.1-0.3 2.8-1.7 4.6 0 0 3.5 0 4.8-1.3 1.2-1.2 1.2-2.2 1-3l-0.2-0.1z"></path>
+<path fill="#dddddd" d="M5.8 8.1c-0.2 0.3-0.5 0.7-0.7 1 0 0.2-0.1 0.3-0.2 0.4l1.5 1.5c0.1-0.1 0.3-0.2 0.4-0.3 0.3-0.2 0.7-0.4 1-0.7 0.4 0 0.6-0.2 0.8-0.4l-2.2-2.2c-0.2 0.2-0.4 0.4-0.6 0.7z"></path>
+<path fill="#dddddd" d="M15.8 0.2c-0.3-0.3-0.7-0.3-1-0.1 0 0-3 2.5-5.9 5.1-0.4 0.4-0.7 0.7-1.1 1-0.2 0.2-0.4 0.4-0.6 0.5l2.1 2.1c0.2-0.2 0.4-0.4 0.5-0.7 0.3-0.4 0.6-0.7 0.9-1.1 2.5-3 5.1-5.9 5.1-5.9 0.3-0.2 0.3-0.6 0-0.9z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 7.1c0-2.7-1.3-7.1-7.3-7.1s-8.5 7.4-7.5 9.9c0.8 1.9 2.5 0.1 3.1 1 1.8 2.5-2 3.8 0.1 4.7 2.5 1.1 11.6 0.4 11.6-8.5zM4.5 9c-0.9 0-1.5-0.7-1.5-1.5s0.6-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5zM6 3.5c0-0.8 0.6-1.5 1.5-1.5s1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5-1.5-0.7-1.5-1.5zM8.5 14c-0.9 0-1.5-0.7-1.5-1.5s0.6-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5zM11 4.5c0-0.8 0.6-1.5 1.5-1.5s1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5-1.5-0.7-1.5-1.5zM12.5 11c-0.8 0-1.5-0.7-1.5-1.5s0.6-1.5 1.5-1.5 1.5 0.7 1.5 1.5-0.7 1.5-1.5 1.5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M5.5 0c-2.5 0-4.5 2-4.5 4.5s2 4.5 4.5 4.5h2.5v7h2v-14h1v14h2v-14h2v-2h-9.5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M13 4h-3v-4h-10v14h6v2h10v-9l-3-3zM3 1h4v1h-4v-1zM15 15h-8v-10h5v3h3v7zM13 7v-2l2 2h-2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11 6.5v-5.5h1v-1h-8v1h1v5.5c0 0-2 1.5-2 3.5 0 0.5 1.9 0.7 4 0.7v2.2c0 0.7 0.2 1.4 0.5 2.1l0.5 1 0.5-1c0.3-0.6 0.5-1.3 0.5-2.1v-2.2c2.1 0 4-0.3 4-0.7 0-2-2-3.5-2-3.5zM7 6.6c0 0-0.5 0.3-1.6 1.4-1 1-1.5 1.9-1.5 1.9s0.1-1 0.8-1.9c0.9-1.1 1.3-1.4 1.3-1.4v-5.6h1v5.6z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M0 7.9l6-4.9v3c0 0 1.1 0 2 0 8 0 8 8 8 8s-1-4-7.8-4c-1.1 0-1.8 0-2.2 0v2.9l-6-5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M9 11h-3c0-3 1.6-4 2.7-4.6 0.4-0.2 0.7-0.4 0.9-0.6 0.5-0.5 0.3-1.2 0.2-1.4-0.3-0.7-1-1.4-2.3-1.4-2.1 0-2.5 1.9-2.5 2.3l-3-0.4c0.2-1.7 1.7-4.9 5.5-4.9 2.3 0 4.3 1.3 5.1 3.2 0.7 1.7 0.4 3.5-0.8 4.7-0.5 0.5-1.1 0.8-1.6 1.1-0.9 0.5-1.2 1-1.2 2z"></path>
+<path fill="#FFFFFF" d="M9.5 14c0 1.105-0.895 2-2 2s-2-0.895-2-2c0-1.105 0.895-2 2-2s2 0.895 2 2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 7.9l-6-4.9v3c-0.5 0-1.1 0-2 0-8 0-8 8-8 8s1-4 7.8-4c1.1 0 1.8 0 2.2 0v2.9l6-5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M16 8c0-5-4.9-5-4.9-5h-5.1v-3l-6 6 6 6v-3h5.2c3.5 0 1.8 7 1.8 7s3-4.1 3-8z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10 6v-6h-4v6h-2l4 5 4-5z"></path>
+<path fill="#FFFFFF" d="M13 1h-2v1h1.3l2.6 8h-3.9v2h-6v-2h-3.9l2.6-8h1.3v-1h-2l-3 9v5h16v-5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M16 3.1c0 0-2.1-1.1-3.5-1-0.3 0-0.5 0.1-0.7 0.2l-4.3 3.4-1.8-1.5c0.1-0.3 0.2-0.6 0.3-1 0.1-1.8-1.4-3.4-3.3-3.2-1.2 0.1-2.3 1-2.6 2.2-0.3 1.3 0.2 2.5 1.2 3.2l3.3 2.6-3.3 2.6c-1 0.7-1.5 1.9-1.2 3.2 0.3 1.2 1.4 2 2.6 2.2 1.9 0.2 3.4-1.4 3.2-3.2 0-0.3-0.1-0.7-0.3-1l1.8-1.5 4.3 3.4c0.2 0.1 0.4 0.2 0.7 0.2 1.4 0.1 3.5-1 3.5-1l-5.7-4.9 5.8-4.9zM2.8 4.6c-0.9-0.1-1.6-0.9-1.5-1.8s0.9-1.6 1.8-1.5c0.9 0.1 1.6 0.9 1.5 1.8 0 0.9-0.9 1.6-1.8 1.5zM3.1 14.7c-0.9 0.1-1.7-0.6-1.8-1.5s0.6-1.7 1.5-1.8c0.9-0.1 1.7 0.6 1.8 1.5s-0.6 1.7-1.5 1.8zM12.4 3.2c0 0 0.1 0 0.2 0 0.4 0 0.9 0.1 1.4 0.2l-6.8 5.7-0.9-1.1 6.1-4.8zM14 12.6c-0.5 0.2-1 0.3-1.4 0.2-0.1 0-0.2 0-0.2 0l-4-3.2 1-0.9 4.6 3.9z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M15.7 14.3l-4.2-4.2c-0.2-0.2-0.5-0.3-0.8-0.3 0.8-1 1.3-2.4 1.3-3.8 0-3.3-2.7-6-6-6s-6 2.7-6 6 2.7 6 6 6c1.4 0 2.8-0.5 3.8-1.4 0 0.3 0 0.6 0.3 0.8l4.2 4.2c0.2 0.2 0.5 0.3 0.7 0.3s0.5-0.1 0.7-0.3c0.4-0.3 0.4-0.9 0-1.3zM6 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10 3h-5.1c0 0-4.9 0-4.9 5 0 3.9 3 8 3 8s-1.7-7 1.8-7h5.2v3l6-6-6-6v3z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M9 4v-3h-9v14h9v-3h-1v2h-7v-12h7v2z"></path>
+<path fill="#FFFFFF" d="M16 8l-5-4v2h-5v4h5v2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#FFFFFF" d="M4 7h8v1h-8v-1z"></path>
+<path fill="#FFFFFF" d="M4 9h8v1h-8v-1z"></path>
+<path fill="#FFFFFF" d="M4 11h8v1h-8v-1z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M12.5 4.9c-1.4 0-2.5 0.8-2.6 0.9l1.2 1.6c0 0 0.7-0.5 1.4-0.5 1.4 0 1.5 1.2 1.5 1.6-0.4-0.1-1.1-0.3-2-0.1-1.4 0.3-2.8 2-2.1 3.9 0.7 1.8 3.1 2.1 4.1 0.6v1h2v-5.3c0-2.7-1.9-3.7-3.5-3.7zM11.5 11.4c-0.1-1.9 1.5-1.9 2.5-1.8v1c0 1.2-2.3 2.3-2.5 0.8z"></path>
+<path fill="#FFFFFF" d="M6.9 14h2.1l-3.2-12h-2.7l-3.1 12h2.1l1-4h2.7l1.1 4zM3.6 8l0.8-3.2 0.9 3.2h-1.7z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 2v-2h-14v14h2v2h14v-14h-2zM13 13h-12v-12h12v12z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15.7 5.3l-1-1c-0.2-0.2-0.4-0.3-0.7-0.3h-13c-0.6 0-1 0.4-1 1v5c0 0.3 0.1 0.6 0.3 0.7l1 1c0.2 0.2 0.4 0.3 0.7 0.3h13c0.6 0 1-0.4 1-1v-5c0-0.3-0.1-0.5-0.3-0.7zM14 10h-13v-5h13v5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M13 0.9l-1 1.1h-12v14h14v-10.5l1.7-2-2.7-2.6zM6.5 11.7l-4.2-4.2 1.4-1.4 2.7 2.7 6.6-6.6 1.4 1.4-7.9 8.1z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 1c-1.8-1.8-3.7-0.7-4.6 0.1-0.4 0.4-0.7 0.9-0.7 1.5v0c0 1.1-1.1 1.8-2.1 1.5l-0.1-0.1-0.7 0.8 0.7 0.7-6 6-0.8 2.3-0.7 0.7 1.5 1.5 0.8-0.8 2.3-0.8 6-6 0.7 0.7 0.7-0.6-0.1-0.2c-0.3-1 0.4-2.1 1.5-2.1v0c0.6 0 1.1-0.2 1.4-0.6 0.9-0.9 2-2.8 0.2-4.6zM3.9 13.6l-2 0.7-0.2 0.1 0.1-0.2 0.7-2 5.8-5.8 1.5 1.5-5.9 5.7z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 4h-14c-0.6 0-1 0.4-1 1v6c0 0.6 0.4 1 1 1h14c0.6 0 1-0.4 1-1v-6c0-0.6-0.4-1-1-1zM10 11h-9v-6h9v6zM13 8.4l-2-1.4h4l-2 1.4z"></path>
+<path fill="#dddddd" d="M2 6h1v4h-1v-4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 1h-14v14h14v-14zM14 14h-12v-12h12v12z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 6v-2h-7l-1-2h-4l-1 2h-1v11h14l2-9h-2zM14.9 7l-1.6 7-11.9-0.1 2.3-6.9h11.2zM1 5h0.6l1-2h2.6l1.2 2h6.6v1h-10l-2 5.9v-6.9z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 2v13h15v-13h-15zM13 3h1v1h-1v-1zM7 14h-6v-9h6v9zM14 14h-6v-9h6v9z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 4h-14c-0.6 0-1 0.4-1 1v6c0 0.6 0.4 1 1 1h14c0.6 0 1-0.4 1-1v-6c0-0.6-0.4-1-1-1zM12 9l-2-2h4l-2 2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11 2h-6v4h6v-4zM9 4h-2v-1h2v1z"></path>
+<path fill="#dddddd" d="M3 0v16h2v-1h6v1h2v-16h-10zM12 14h-8v-6h8v6zM12 7h-8v-6h8v6z"></path>
+<path fill="#dddddd" d="M11 9h-6v4h6v-4zM9 11h-2v-1h2v1z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 0v16h16v-16h-16zM5 15h-4v-4h4v4zM5 10h-4v-4h4v4zM5 5h-4v-4h4v4zM10 15h-4v-4h4v4zM10 10h-4v-4h4v4zM10 5h-4v-4h4v4zM15 15h-4v-4h4v4zM15 10h-4v-4h4v4zM15 5h-4v-4h4v4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 7h7v-7h-7v7zM1 1h5v5h-5v-5z"></path>
+<path fill="#dddddd" d="M9 0v7h7v-7h-7zM15 6h-5v-5h5v5z"></path>
+<path fill="#dddddd" d="M0 16h7v-7h-7v7zM1 10h5v5h-5v-5z"></path>
+<path fill="#dddddd" d="M9 16h7v-7h-7v7zM10 10h5v5h-5v-5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M1 4h-1v-4h4v1h-3z"></path>
+<path fill="#dddddd" d="M12 1v-1h4v4h-1v-3z"></path>
+<path fill="#dddddd" d="M15 12h1v4h-4v-1h3z"></path>
+<path fill="#dddddd" d="M4 15v1h-4v-4h1v3z"></path>
+<path fill="#dddddd" d="M13 3v10h-10v-10h10zM14 2h-12v12h12v-12z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 0v16h16v-16h-16zM5 15h-4v-14h4v14zM10 15h-4v-14h4v14zM15 15h-4v-14h4v14z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M5.2 14l4.5-12h1.1l-4.5 12z"></path>
+<path fill="#dddddd" d="M11.1 13h1.2l3.7-5-3.7-5h-1.3l3.8 5z"></path>
+<path fill="#dddddd" d="M4.9 13h-1.2l-3.7-5 3.7-5h1.3l-3.8 5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 14h-16v-12h16v12zM1 13h14v-10h-14v10z"></path>
+<path fill="#dddddd" d="M2 10v2h12v-1c0 0 0.2-1.7-2-2-1.9-0.3-2.2 0.6-3.8 0.6-1.1 0-0.9-1.6-3.2-1.6-1.7 0-3 2-3 2z"></path>
+<path fill="#dddddd" d="M13 6c0 1.105-0.895 2-2 2s-2-0.895-2-2c0-1.105 0.895-2 2-2s2 0.895 2 2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M12.5 4.9c-1.4 0-2.5 0.8-2.6 0.9l1.2 1.6c0 0 0.7-0.5 1.4-0.5 1.4 0 1.5 1.2 1.5 1.6-0.4-0.1-1.1-0.3-2-0.1-1.4 0.3-2.8 2-2.1 3.9 0.7 1.8 3.1 2.1 4.1 0.6v1h2v-5.3c0-2.7-1.9-3.7-3.5-3.7zM11.5 11.4c-0.1-1.9 1.5-1.9 2.5-1.8v1c0 1.2-2.3 2.3-2.5 0.8z"></path>
+<path fill="#dddddd" d="M6.9 14h2.1l-3.2-12h-2.7l-3.1 12h2.1l1-4h2.7l1.1 4zM3.6 8l0.8-3.2 0.9 3.2h-1.7z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 1h3v3h-3v-3z"></path>
+<path fill="#dddddd" d="M0 6h3v3h-3v-3z"></path>
+<path fill="#dddddd" d="M0 11h3v3h-3v-3z"></path>
+<path fill="#dddddd" d="M5 1h11v3h-11v-3z"></path>
+<path fill="#dddddd" d="M5 6h11v3h-11v-3z"></path>
+<path fill="#dddddd" d="M5 11h11v3h-11v-3z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 2v2h-9v-2h9zM16 1h-11v4h11v-4z"></path>
+<path fill="#dddddd" d="M0 1h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M15 7v2h-9v-2h9zM16 6h-11v4h11v-4z"></path>
+<path fill="#dddddd" d="M0 6h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M15 12v2h-9v-2h9zM16 11h-11v4h11v-4z"></path>
+<path fill="#dddddd" d="M0 11h4v4h-4v-4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 7v2h-9v-2h9zM16 6h-11v4h11v-4z"></path>
+<path fill="#dddddd" d="M0 6h4v4h-4v-4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z"></path>
+<path fill="#dddddd" d="M7 6h2v7h-2v-7z"></path>
+<path fill="#dddddd" d="M7 3h2v2h-2v-2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 5v6h16v-6h-16zM15 10h-14v-4h14v4z"></path>
+<path fill="#dddddd" d="M2 7h7v2h-7v-2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 4c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4z"></path>
+<path fill="#dddddd" d="M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M2 2h1v4h-1v-4z"></path>
+<path fill="#dddddd" d="M1 0c-0.6 0-1 0.4-1 1v14c0 0.6 0.4 1 1 1h15v-16h-15zM13 15h-12v-14h12v14zM15 15v0h-1v-1h1v1zM15 13h-1v-10h1v10zM15 2h-1v-1h1v1z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 0v16h16v-16h-16zM15 15h-14v-6h3v1l3-2-3-2v1h-3v-6h6v3h-1l2 3 2-3h-1v-3h6v14z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0l-8 8 8 8 8-8-8-8zM2 8l6-6 6 6-6 6-6-6z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 6h-3.6c-0.7-1.2-2-2-3.4-2s-2.8 0.8-3.4 2h-5.6v4h5.6c0.7 1.2 2 2 3.4 2s2.8-0.8 3.4-2h3.6v-4zM1 9v-2h4.1c0 0.3-0.1 0.7-0.1 1s0.1 0.7 0.1 1h-4.1zM9 11c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3c0 1.7-1.3 3-3 3z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11 7h-6l3-4z"></path>
+<path fill="#dddddd" d="M5 9h6l-3 4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M7 0h2v16h-2v-16z"></path>
+<path fill="#dddddd" d="M3 5l-3 3 3 3v-2h3v-2h-3z"></path>
+<path fill="#dddddd" d="M16 8l-3-3v2h-3v2h3v2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M7 4l-1-2h-4l-1 2h-1v11h16v-11h-9zM15 14h-14v-9h0.6l1-2h2.6l1.2 2h8.6v9z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 4v-2h-14v13h16v-11h-2zM10 3h3v1h-3v-1zM6 3h3v1h-3v-1zM15 14h-14v-11h4v2h10v9z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0l-8 2v10l8 4 8-4v-10l-8-2zM14.4 2.6l-5.9 2.2-6.6-2.2 6.1-1.6 6.4 1.6zM1 11.4v-8.1l7 2.4v9.2l-7-3.5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11 6.6v0-3.8l-4-1.8-4 1.8v4.2l-3 1.3v4.4l4 1.8 3.5-1.5 3.5 1.6 4-1.8v-4.5l-4-1.7zM7 2.1l2.8 1.2-2.7 1.1-2.6-1.2 2.5-1.1zM7 5v2.9l-3-1.3v-3l3 1.4zM4 13.5l-3-1.3v-3l3 1.4v2.9zM4 10l-2.6-1.2 2.6-1.1 2.8 1.2-2.8 1.1zM11 13.5l-3-1.3v-3l3 1.4v2.9zM11 10l-2.6-1.2 2.6-1.1 2.8 1.2-2.8 1.1z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 5c0-0.6-0.4-1-1-1h-14c-0.6 0-1 0.4-1 1v6c0 0.6 0.4 1 1 1h14c0.6 0 1-0.4 1-1v-6zM15 11h-14v-6h14v6z"></path>
+<path fill="#dddddd" d="M2 6h1v4h-1v-4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 10v-4h-11v1h-2v-3h9v-4h-12v4h2v10h3v2h11v-4h-11v1h-2v-5h2v2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M16 0h-16v16h16v-16zM1 5v-4h14v4h-14zM1 10v-4h14v4h-14zM1 15v-4h14v4h-14z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 4v11h16v-14h-16v3zM14 2h1v1h-1v-1zM1 4h14v10h-14v-10z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 6h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M6 6h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M12 6h4v4h-4v-4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 15h15v1h-15v-1z"></path>
+<path fill="#dddddd" d="M0 11h3v3h-3v-3z"></path>
+<path fill="#dddddd" d="M4 9h3v5h-3v-5z"></path>
+<path fill="#dddddd" d="M8 5h3v9h-3v-9z"></path>
+<path fill="#dddddd" d="M12 0h3v14h-3v-14z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 1h16v3h-16v-3z"></path>
+<path fill="#dddddd" d="M0 6h16v3h-16v-3z"></path>
+<path fill="#dddddd" d="M0 11h16v3h-16v-3z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 2.5v0c0 0.8 0.7 1.5 1.5 1.5v0c0.8 0 1.5-0.7 1.5-1.5v0c0-0.8-0.7-1.5-1.5-1.5v0c-0.8 0-1.5 0.7-1.5 1.5z"></path>
+<path fill="#dddddd" d="M0 7.5v0c0 0.8 0.7 1.5 1.5 1.5v0c0.8 0 1.5-0.7 1.5-1.5v0c0-0.8-0.7-1.5-1.5-1.5v0c-0.8 0-1.5 0.7-1.5 1.5z"></path>
+<path fill="#dddddd" d="M0 12.5v0c0 0.8 0.7 1.5 1.5 1.5v0c0.8 0 1.5-0.7 1.5-1.5v0c0-0.8-0.7-1.5-1.5-1.5v0c-0.8 0-1.5 0.7-1.5 1.5z"></path>
+<path fill="#dddddd" d="M5 1h11v3h-11v-3z"></path>
+<path fill="#dddddd" d="M5 6h11v3h-11v-3z"></path>
+<path fill="#dddddd" d="M5 11h11v3h-11v-3z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 1v3h-3v-3h-6v3h-3v-3h-2v15h16v-15h-2zM3 15h-2v-2h2v2zM3 12h-2v-2h2v2zM3 9h-2v-2h2v2zM6 15h-2v-2h2v2zM6 12h-2v-2h2v2zM6 9h-2v-2h2v2zM9 15h-2v-2h2v2zM9 12h-2v-2h2v2zM9 9h-2v-2h2v2zM12 15h-2v-2h2v2zM12 12h-2v-2h2v2zM12 9h-2v-2h2v2zM15 15h-2v-2h2v2zM15 12h-2v-2h2v2zM15 9h-2v-2h2v2z"></path>
+<path fill="#dddddd" d="M3 0h1v3h-1v-3z"></path>
+<path fill="#dddddd" d="M12 0h1v3h-1v-3z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 6.2v7.8h-12v-12h10.5l1-1h-12.5v14h14v-9.8z"></path>
+<path fill="#dddddd" d="M7.9 10.9l-4.2-4.2 1.5-1.4 2.7 2.8 6.7-6.7 1.4 1.4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14 2.5c0 0.828-2.686 1.5-6 1.5s-6-0.672-6-1.5c0-0.828 2.686-1.5 6-1.5s6 0.672 6 1.5z"></path>
+<path fill="#dddddd" d="M8 5c-3.3 0-6-0.7-6-1.5v3c0 0.8 2.7 1.5 6 1.5s6-0.7 6-1.5v-3c0 0.8-2.7 1.5-6 1.5z"></path>
+<path fill="#dddddd" d="M8 9c-3.3 0-6-0.7-6-1.5v3c0 0.8 2.7 1.5 6 1.5s6-0.7 6-1.5v-3c0 0.8-2.7 1.5-6 1.5z"></path>
+<path fill="#dddddd" d="M8 13c-3.3 0-6-0.7-6-1.5v3c0 0.8 2.7 1.5 6 1.5s6-0.7 6-1.5v-3c0 0.8-2.7 1.5-6 1.5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M6 0h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M6 6h4v4h-4v-4z"></path>
+<path fill="#dddddd" d="M6 12h4v4h-4v-4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z"></path>
+<path fill="#dddddd" d="M7 3h2v7h-2v-7z"></path>
+<path fill="#dddddd" d="M7 11h2v2h-2v-2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zM9 13h-2v-2h2v2zM9 10h-2v-7h2v7z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#dddddd" d="M6.2 13h-0.7l-2-2.5 2-2.5h0.7l-2 2.5z"></path>
+<path fill="#dddddd" d="M9.8 13h0.7l2-2.5-2-2.5h-0.7l2 2.5z"></path>
+<path fill="#dddddd" d="M6.7 14h0.6l2.1-7h-0.8z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M12.6 4c-0.2 0-0.4 0-0.6 0 0-0.2-0.2-0.6-0.4-0.8s-0.5-0.4-1.1-0.4c-0.2 0-0.4 0-0.6 0.1-0.1-0.2-0.2-0.3-0.3-0.5-0.2-0.2-0.5-0.4-1.1-0.4-0.8 0-1.2 0.5-1.4 1-0.1 0-0.3-0.1-0.5-0.1-0.5 0-0.8 0.2-1.1 0.4-0.5 0.6-0.5 1.4-0.5 1.5v0.4c-0.6 0-1.1 0.2-1.4 0.5-0.6 0.7-0.6 1.6-0.6 2.8 0 0.2 0 0.5 0 0.7 0 1.4 0.7 2.1 1.4 2.8l0.3 0.4c1.3 1.2 2.5 1.6 5.1 1.6 2.9 0 4.2-1.6 4.2-5.1v-2.5c0-0.7-0.2-2.1-1.4-2.4zM10.5 3.8c0.4 0 0.5 0.4 0.5 0.6v0.8c0 0.3 0.2 0.5 0.4 0.5 0.3 0 0.5-0.1 0.5-0.4 0 0 0-0.4 0.4-0.3 0.6 0.2 0.7 1.1 0.7 1.3 0 0 0 0 0 0v2.6c0 3.4-1.3 4.1-3.2 4.1-2.4 0-3.3-0.3-4.3-1.3-0.1-0.1-0.2-0.2-0.4-0.4-0.7-0.7-1.1-1.1-1.1-2.1 0-0.2 0-0.3 0-0.6 0-1 0-1.8 0.3-2.1 0.1-0.2 0.4-0.3 0.7-0.3v0.8l-0.3 1.2c0 0.1 0 0.1 0.1 0.1 0.1 0.1 0.2 0 0.2 0l1-1.2c0 0 0-0.1 0-0.1v-2c0-0.1 0-0.6 0.2-0.8 0.1-0.1 0.2-0.2 0.4-0.2 0.3 0 0.4 0.2 0.4 0.4v0.4c0 0.2 0.2 0.5 0.5 0.5s0.5-0.3 0.5-0.5v-1.3c0-0.1 0-0.5 0.5-0.5 0.3 0 0.5 0.2 0.5 0.5v1.2c0 0.3 0.2 0.6 0.5 0.6s0.5-0.3 0.5-0.5v-0.5c0-0.3 0.2-0.5 0.5-0.5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M13 1h-10l-2.7 8h15.4z"></path>
+<path fill="#dddddd" d="M0 10v5h16v-5h-16zM3 13h-1v-1h1v1zM7 13h-3v-1h3v1z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M15 6v-2h-2.6l0.6-2.8-2-0.4-0.7 3.2h-3l0.7-2.8-2-0.4-0.7 3.2h-3.3v2h2.9l-0.9 4h-3v2h2.6l-0.6 2.8 2 0.4 0.7-3.2h3l-0.7 2.8 2 0.4 0.7-3.2h3.3v-2h-2.9l0.9-4h3zM9 10h-3l1-4h3l-1 4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M7 5h3v11h-3v-11z"></path>
+<path fill="#dddddd" d="M10.5 2c0 1.105-0.895 2-2 2s-2-0.895-2-2c0-1.105 0.895-2 2-2s2 0.895 2 2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 0v16h16v-16h-16zM1 3h4v12h-4v-12zM15 15h-9v-12h9v12z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 1h3v2h-3v-2z"></path>
+<path fill="#dddddd" d="M0 5h3v2h-3v-2z"></path>
+<path fill="#dddddd" d="M0 9h3v2h-3v-2z"></path>
+<path fill="#dddddd" d="M0 13h3v2h-3v-2z"></path>
+<path fill="#dddddd" d="M4 1h12v2h-12v-2z"></path>
+<path fill="#dddddd" d="M4 5h12v2h-12v-2z"></path>
+<path fill="#dddddd" d="M4 9h12v2h-12v-2z"></path>
+<path fill="#dddddd" d="M4 13h12v2h-12v-2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M4 0h12v4h-12v-4z"></path>
+<path fill="#dddddd" d="M4 6h12v4h-12v-4z"></path>
+<path fill="#dddddd" d="M4 12h12v4h-12v-4z"></path>
+<path fill="#dddddd" d="M1 0l-0.9 0.5 0.2 0.7 0.7-0.3v3.1h1v-4z"></path>
+<path fill="#dddddd" d="M2.2 13.9c0.3-0.2 0.5-0.5 0.5-0.8 0-0.5-0.4-1-1.3-1-0.5 0-1 0.1-1.2 0.3h-0.1l0.2 0.8 0.1-0.1c0.1-0.1 0.4-0.2 0.7-0.2s0.4 0.1 0.4 0.3c0 0.4-0.5 0.4-0.6 0.4h-0.4v0.7h0.4c0.3 0 0.6 0.1 0.6 0.4 0 0.2-0.2 0.4-0.6 0.4s-0.7-0.2-0.8-0.2l-0.1-0.1v0.9h0.1c0.2 0.2 0.6 0.3 1.1 0.3 1 0 1.6-0.5 1.6-1.2 0-0.4-0.2-0.8-0.6-0.9z"></path>
+<path fill="#dddddd" d="M0.1 6.4l0.3 1c0 0 0.7-0.6 1.2-0.3 1.1 0.8-1.6 2.4-1.6 2.4v0.5h3v-1h-1.2c0.6-0.5 1.2-1.2 1-1.9-0.5-1.9-2.7-0.7-2.7-0.7z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 4v11h16v-14h-16v3zM14 2h1v1h-1v-1zM1 4h14v10h-14v-10z"></path>
+<path fill="#dddddd" d="M3 6h2v1h-2v-1z"></path>
+<path fill="#dddddd" d="M6 6h7v1h-7v-1z"></path>
+<path fill="#dddddd" d="M3 8h2v1h-2v-1z"></path>
+<path fill="#dddddd" d="M6 8h7v1h-7v-1z"></path>
+<path fill="#dddddd" d="M3 10h2v1h-2v-1z"></path>
+<path fill="#dddddd" d="M6 10h7v1h-7v-1z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M5 3.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path>
+<path fill="#dddddd" d="M3.5 0c-1.9 0-3.5 1.6-3.5 3.5s1.6 3.5 3.5 3.5 3.5-1.6 3.5-3.5-1.6-3.5-3.5-3.5zM3.5 6c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5c0 1.4-1.1 2.5-2.5 2.5z"></path>
+<path fill="#dddddd" d="M3.5 8c-1.9 0-3.5 1.6-3.5 3.5s1.6 3.5 3.5 3.5 3.5-1.6 3.5-3.5c0-1.9-1.6-3.5-3.5-3.5zM3.5 14c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5c0 1.4-1.1 2.5-2.5 2.5z"></path>
+<path fill="#dddddd" d="M8 2h8v3h-8v-3z"></path>
+<path fill="#dddddd" d="M8 10h8v3h-8v-3z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 0l-8 2v10l8 4 8-4v-10l-8-2zM8 1l2.1 0.5-5.9 1.9-2.3-0.8 6.1-1.6zM8 14.9l-7-3.5v-8.1l3 1v3.4l1 0.3v-3.3l3 1v9.2zM8.5 4.8l-2.7-0.9 6.2-1.9 2.4 0.6-5.9 2.2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 0v16h16v-16h-16zM15 3h-1v1h1v1h-1v1h1v1h-1v1h1v1h-1v1h1v1h-1v1h1v1h-1v1h1v1h-1v-1h-1v1h-1v-1h-1v1h-1v-1h-1v1h-1v-1h-1v1h-1v-1h-1v1h-1v-1h-1v1h-1v-1h-1v-1h1v-1h-1v-1h1v-1h-1v-1h1v-1h-1v-1h1v-1h-1v-1h1v-1h-1v-1h1v-1h-1v-1h1v1h1v-1h1v1h1v-1h1v1h1v-1h1v1h1v-1h1v1h1v-1h1v1h1v-1h1v1h1v1z"></path>
+<path fill="#dddddd" d="M3 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M4 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M6 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M5 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M7 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M9 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M8 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M10 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M11 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 2h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 5h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 4h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 7h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 6h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 9h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 8h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 11h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 10h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M12 13h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M13 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 3h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 4h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 5h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 6h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 7h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 8h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 9h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 10h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 11h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M2 13h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M3 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M4 11h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M4 13h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M5 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M6 13h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M7 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M9 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M8 13h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M11 12h1v1h-1v-1z"></path>
+<path fill="#dddddd" d="M10 13h1v1h-1v-1z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"></path>
+<path fill="#dddddd" d="M4 11.5v2.5h8v-1.7c0 0 0.1-1.3-1.3-1.5-1.3-0.2-1.5 0.4-2.5 0.5-0.8 0-0.6-1.3-2.2-1.3-1.2 0-2 1.5-2 1.5z"></path>
+<path fill="#dddddd" d="M12 8.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M11.6 5c-0.2 0-0.5 0-0.6 0 0-0.2-0.2-0.6-0.4-0.8s-0.6-0.4-1.1-0.4c-0.2 0-0.4 0-0.6 0.1-0.1-0.2-0.2-0.3-0.3-0.5-0.2-0.2-0.5-0.4-1.1-0.4-0.2 0-0.4 0-0.5 0.1v-1.7c0-0.6-0.4-1.4-1.4-1.4-0.4 0-0.8 0.2-1.1 0.4-0.5 0.6-0.5 1.4-0.5 1.4v4.3c-0.6 0.1-1.1 0.3-1.4 0.6-0.6 0.7-0.6 1.6-0.6 2.8 0 0.2 0 0.5 0 0.7 0 1.4 0.7 2.1 1.4 2.8l0.3 0.4c1.3 1.2 2.4 1.6 5.1 1.6 2.9 0 4.2-1.6 4.2-5.1v-2.5c0-0.7-0.2-2.1-1.4-2.4zM12 7.4v2.6c0 3.4-1.3 4.1-3.2 4.1-2.4 0-3.3-0.3-4.3-1.3-0.1-0.1-0.2-0.2-0.4-0.4-0.7-0.8-1.1-1.2-1.1-2.2 0-0.2 0-0.5 0-0.7 0-1 0-1.7 0.3-2.1 0.1-0.1 0.4-0.2 0.7-0.2v0.5l-0.3 1.5c0 0.1 0 0.1 0.1 0.2s0.2 0 0.2 0l1-1.2c0-0.1 0-0.2 0-0.2v-6.2c0-0.1 0-0.5 0.2-0.7 0.1 0 0.2-0.1 0.4-0.1 0.3 0 0.4 0.3 0.4 0.4v3.1c0 0 0 0 0 0v1.2c0 0.3 0.2 0.6 0.5 0.6s0.5-0.3 0.5-0.5v-1.3c0 0 0 0 0 0 0-0.1 0.1-0.5 0.5-0.5 0.3 0 0.5 0.1 0.5 0.4v1.3c0 0.3 0.2 0.6 0.5 0.6s0.5-0.3 0.5-0.5v-0.7c0-0.1 0.1-0.3 0.5-0.3 0.2 0 0.3 0.1 0.3 0.1 0.2 0.1 0.2 0.4 0.2 0.4v0.8c0 0.3 0.2 0.5 0.4 0.5 0.3 0 0.5-0.1 0.5-0.4 0-0.1 0.1-0.2 0.2-0.3 0 0 0.1 0 0.2 0 0.6 0.2 0.7 1.2 0.7 1.5 0-0.1 0-0.1 0 0z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M14.9 0.9c-1.1-1-2.5-1.3-3.1-0.4-0.7 1.1 0.5 1.7-0.3 2.5-0.5 0.6-2-0.8-2-0.8l-0.8-0.8-1.4 1.4c-0.6 0.7-2.1 1.5-2.6 1.1-0.7-0.6 0.1-1.8-0.5-2.6-0.7-1-2.1-0.8-3 0.3-1 1.1-1.4 2.4-0.5 3 1.1 0.7 1.9-0.3 2.7 0.5 0.4 0.4-0.2 1.7-0.5 2.1l-2.3 2.3 6.5 6.5 1.7-1.7c0.7-0.7 1.5-2 1.1-2.4-0.6-0.7-1.7 0.1-2.5-0.4-1-0.7-0.8-2 0.3-3s2.5-1.3 3.1-0.4c0.7 1.1-0.4 1.8 0.4 2.6 0.4 0.4 1.6-0.2 2-0.6l2.1-2.1-1.1-1.1c-0.6-0.6-1.9-2-1.4-2.5 0.6-0.7 1.7 0.2 2.5-0.4 0.9-0.8 0.6-2.1-0.4-3.1z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M10 0h-8v16h12v-12l-4-4zM13 15h-10v-14h6v4h4v10zM10 4v-3l3 3h-3z"></path>
+<path fill="#dddddd" d="M4.7 7.7l-0.7-0.7v3h3l-1.2-1.2c0.4-0.8 1.3-1.3 2.2-1.3 1.4 0 2.5 1.1 2.5 2.5h1.5c0-2.2-1.8-4-4-4-1.3 0-2.5 0.7-3.3 1.7z"></path>
+<path fill="#dddddd" d="M9.8 11.8c-0.5 0.5-1.1 0.8-1.8 0.7-1 0-1.9-0.6-2.3-1.5h-1.6c0.4 1.7 2 3 3.8 3 1.1 0 2.1-0.5 2.8-1.2l1.3 1.2v-3h-3l0.8 0.8z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M7 0h2v3h-2v-3z"></path>
+<path fill="#dddddd" d="M6 4v3h1v9h2v-9h1v-3z"></path>
+<path fill="#dddddd" d="M2 0h2v8h-2v-8z"></path>
+<path fill="#dddddd" d="M1 9v3h1v4h2v-4h1v-3z"></path>
+<path fill="#dddddd" d="M12 0h2v10h-2v-10z"></path>
+<path fill="#dddddd" d="M11 11v3h1v2h2v-2h1v-3z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 15h15v-13h-15v13zM13 3h1v1h-1v-1zM14 14h-13v-4h13v4zM14 9h-13v-4h13v4z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 1v15h16v-15h-16zM5 15h-4v-2h4v2zM5 12h-4v-2h4v2zM5 9h-4v-2h4v2zM5 6h-4v-2h4v2zM10 15h-4v-2h4v2zM10 12h-4v-2h4v2zM10 9h-4v-2h4v2zM10 6h-4v-2h4v2zM15 15h-4v-2h4v2zM15 12h-4v-2h4v2zM15 9h-4v-2h4v2zM15 6h-4v-2h4v2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M6 0h10v4h-10v-4z"></path>
+<path fill="#dddddd" d="M6 6h10v4h-10v-4z"></path>
+<path fill="#dddddd" d="M6 12h10v4h-10v-4z"></path>
+<path fill="#dddddd" d="M3 1v2h-2v-2h2zM4 0h-4v4h4v-4z"></path>
+<path fill="#dddddd" d="M3 13v2h-2v-2h2zM4 12h-4v4h4v-4z"></path>
+<path fill="#dddddd" d="M5.3 5.9l-0.6-0.8-0.9 0.9h-3.8v4h4v-2.8l1.3-1.3zM2.7 7l-0.7 0.7-0.8-0.7h1.5zM1 8.2l0.9 0.8h-0.9v-0.8zM3 9h-0.9l0.9-0.9v0.9z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M8 1l-8 14h16l-8-14zM8 13c-0.6 0-1-0.4-1-1s0.4-1 1-1 1 0.4 1 1c0 0.6-0.4 1-1 1zM7 10v-4h2v4h-2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M10.3 8.2l-0.9 0.9 0.9 0.9-1.2 1.2 4.3 4.3c0.6 0.6 1.5 0.6 2.1 0s0.6-1.5 0-2.1l-5.2-5.2zM14.2 15c-0.4 0-0.8-0.3-0.8-0.8 0-0.4 0.3-0.8 0.8-0.8s0.8 0.3 0.8 0.8c0 0.5-0.3 0.8-0.8 0.8z"></path>
+<path fill="#FFFFFF" d="M3.6 8l0.9-0.6 1.5-1.7 0.9 0.9 0.9-0.9-0.1-0.1c0.2-0.5 0.3-1 0.3-1.6 0-2.2-1.8-4-4-4-0.6 0-1.1 0.1-1.6 0.3l2.9 2.9-2.1 2.1-2.9-2.9c-0.2 0.5-0.3 1-0.3 1.6 0 2.1 1.6 3.7 3.6 4z"></path>
+<path fill="#FFFFFF" d="M8 10.8l0.9-0.8-0.9-0.9 5.7-5.7 1.2-0.4 1.1-2.2-0.7-0.7-2.3 1-0.5 1.2-5.6 5.7-0.9-0.9-0.8 0.9c0 0 0.8 0.6-0.1 1.5-0.5 0.5-1.3-0.1-2.8 1.4-0.5 0.5-2.1 2.1-2.1 2.1s-0.6 1 0.6 2.2 2.2 0.6 2.2 0.6 1.6-1.6 2.1-2.1c1.4-1.4 0.9-2.3 1.3-2.7 0.9-0.9 1.6-0.2 1.6-0.2zM4.9 10.4l0.7 0.7-3.8 3.8-0.7-0.7z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M2 5v1h1v9c0 0 1.1 1 4.5 1s4.5-1 4.5-1v-9h1v-1h-11zM6 14h-1v-7h1v7zM8 14h-1v-7h1v7zM10 14h-1v-7h1v7z"></path>
+<path fill="#dddddd" d="M12 3c0 0 0-0.5-2-0.8v-0.7c0-0.8-0.7-1.5-1.5-1.5h-2c-0.8 0-1.5 0.7-1.5 1.5v0.7c-1.6 0.3-2 0.8-2 0.8h-1v1h11v-1h-1zM6 1.5c0-0.3 0.2-0.5 0.5-0.5h2c0.2 0 0.5 0.2 0.5 0.5v0.6c0-0.1-0.9-0.1-1.5-0.1s-1.1 0-1.5 0.1v-0.6z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#dddddd" d="M0 7.9l6-4.9v3c0 0 1.1 0 2 0 8 0 8 8 8 8s-1-4-7.8-4c-1.1 0-1.8 0-2.2 0v2.9l-6-5z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#ffffff" d="M 10,0 H 2 V 16 H 14 V 4 Z"/>
+<path fill="#444444" d="M10 0h-8v16h12v-12l-4-4zM9 5h4v10h-10v-14h6v4zM10 4v-3l3 3h-3z"/>
+<text x="3" y="12" fill="darkorange" font-stretch="condensed" font-family="mono" font-size="6px" font-weight="bold"></></text>
+</svg>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M15.7 14.3l-4.2-4.2c-0.2-0.2-0.5-0.3-0.8-0.3 0.8-1 1.3-2.4 1.3-3.8 0-3.3-2.7-6-6-6s-6 2.7-6 6 2.7 6 6 6c1.4 0 2.8-0.5 3.8-1.4 0 0.3 0 0.6 0.3 0.8l4.2 4.2c0.2 0.2 0.5 0.3 0.7 0.3s0.5-0.1 0.7-0.3c0.4-0.3 0.4-0.9 0-1.3zM6 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"></path>
+<path fill="#FFFFFF" d="M7 3h-2v2h-2v2h2v2h2v-2h2v-2h-2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generated by IcoMoon.io -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
+<path fill="#FFFFFF" d="M15.7 14.3l-4.2-4.2c-0.2-0.2-0.5-0.3-0.8-0.3 0.8-1 1.3-2.4 1.3-3.8 0-3.3-2.7-6-6-6s-6 2.7-6 6 2.7 6 6 6c1.4 0 2.8-0.5 3.8-1.4 0 0.3 0 0.6 0.3 0.8l4.2 4.2c0.2 0.2 0.5 0.3 0.7 0.3s0.5-0.1 0.7-0.3c0.4-0.3 0.4-0.9 0-1.3zM6 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"></path>
+<path fill="#FFFFFF" d="M3 5h6v2h-6v-2z"></path>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.0" width="128" height="128" id="svg2">
+ <defs id="defs5">
+ <linearGradient id="linearGradient28132">
+ <stop id="stop28134" style="stop-color:#000000;stop-opacity:1" offset="0"/>
+ <stop id="stop28136" style="stop-color:#000000;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient28077">
+ <stop id="stop28079" style="stop-color:#7a7a7a;stop-opacity:1" offset="0"/>
+ <stop id="stop28081" style="stop-color:#000000;stop-opacity:0.4909091" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient28069">
+ <stop id="stop28071" style="stop-color:#868385;stop-opacity:1" offset="0"/>
+ <stop id="stop28073" style="stop-color:#4a4949;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient28059">
+ <stop id="stop28061" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop28063" style="stop-color:#000000;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient28049">
+ <stop id="stop28051" style="stop-color:#000000;stop-opacity:1" offset="0"/>
+ <stop id="stop28053" style="stop-color:#000000;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient27983">
+ <stop id="stop27985" style="stop-color:#000000;stop-opacity:1" offset="0"/>
+ <stop id="stop27987" style="stop-color:#000000;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient27973">
+ <stop id="stop27975" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop27977" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient27933">
+ <stop id="stop27935" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop27937" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient17395">
+ <stop id="stop17397" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop17399" style="stop-color:#ffffff;stop-opacity:0.80000001" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient17383">
+ <stop id="stop17385" style="stop-color:#202020;stop-opacity:1" offset="0"/>
+ <stop id="stop17387" style="stop-color:#202020;stop-opacity:0.76363635" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3275">
+ <stop id="stop3277" style="stop-color:#000000;stop-opacity:1" offset="0"/>
+ <stop id="stop3279" style="stop-color:#000000;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3215">
+ <stop id="stop3217" style="stop-color:#8a8a8a;stop-opacity:1" offset="0"/>
+ <stop id="stop3219" style="stop-color:#c6c6c6;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3136">
+ <stop id="stop3138" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop3140" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3088">
+ <stop id="stop3090" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop3092" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3033">
+ <stop id="stop3035" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop3037" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3706">
+ <stop id="stop3708" style="stop-color:#000000;stop-opacity:1" offset="0"/>
+ <stop id="stop3710" style="stop-color:#000000;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3577">
+ <stop id="stop3579" style="stop-color:#000000;stop-opacity:1" offset="0"/>
+ <stop id="stop3581" style="stop-color:#000000;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3468">
+ <stop id="stop3470" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop3472" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3446">
+ <stop id="stop3448" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop3451" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3111">
+ <stop id="stop3113" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop3603" style="stop-color:#ffffff;stop-opacity:0.69818181" offset="0.5"/>
+ <stop id="stop3115" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3077">
+ <stop id="stop3079" style="stop-color:#d0ced9;stop-opacity:1" offset="0"/>
+ <stop id="stop3087" style="stop-color:#ecf1f9;stop-opacity:1" offset="0.25"/>
+ <stop id="stop3085" style="stop-color:#ffffff;stop-opacity:1" offset="0.5"/>
+ <stop id="stop3081" style="stop-color:#c6d5e3;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3317">
+ <stop id="stop3319" style="stop-color:#000000;stop-opacity:1" offset="0"/>
+ <stop id="stop3321" style="stop-color:#000000;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3174">
+ <stop id="stop3176" style="stop-color:#2e2a2b;stop-opacity:1" offset="0"/>
+ <stop id="stop3182" style="stop-color:#4c494a;stop-opacity:1" offset="0.33497536"/>
+ <stop id="stop3214" style="stop-color:#5b595a;stop-opacity:1" offset="0.66748768"/>
+ <stop id="stop3178" style="stop-color:#6b696a;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient x1="-97.742668" y1="1937.9885" x2="-97.742668" y2="1895.421" id="linearGradient3250" xlink:href="#linearGradient3174" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.5599786,0,0,2.5827101,317.24891,-4887.3657)"/>
+ <filter id="filter3444" height="2.5930088" y="-0.79650438" width="1.1419513" x="-0.070975639">
+ <feGaussianBlur id="feGaussianBlur3446" stdDeviation="2.9868914" inkscape:collect="always"/>
+ </filter>
+ <clipPath id="clipPath3008">
+ <rect width="78.12355" height="55.395592" rx="1.133948" ry="1.133948" x="24.680513" y="-68.245476" id="rect3010" style="opacity:0.265625;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.39999992;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ </clipPath>
+ <radialGradient cx="100.30548" cy="42.449028" r="38" fx="100.30548" fy="42.449028" id="radialGradient3083" xlink:href="#linearGradient3077" gradientUnits="userSpaceOnUse" gradientTransform="matrix(4.5705286,7.2649243e-7,-2.9846211e-7,1.8569392,-416.60853,-84.720552)"/>
+ <filter id="filter3105">
+ <feGaussianBlur id="feGaussianBlur3107" stdDeviation="0.66759571" inkscape:collect="always"/>
+ </filter>
+ <radialGradient cx="64.801826" cy="63.781319" r="34.041004" fx="64.801826" fy="63.781319" id="radialGradient3117" xlink:href="#linearGradient3111" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.1398365,0,0,1.0706638e-2,-9.061664,63.098436)"/>
+ <clipPath id="clipPath3215">
+ <path d="M 11.375,-167.68125 C 8.4215521,-167.68125 8,-167.31718 8,-164.3375 L 8,-163.55625 C 8,-166.53593 8.4215521,-166.86875 11.375,-166.86875 L 116.625,-166.86875 C 119.57845,-166.86875 120,-166.53593 120,-163.55625 L 120,-164.3375 C 120,-167.31718 119.57845,-167.68125 116.625,-167.68125 L 11.375,-167.68125 z" id="path3217" style="opacity:1;fill:url(#linearGradient3219);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
+ </clipPath>
+ <linearGradient x1="-98.926186" y1="1892.9656" x2="-98.926186" y2="1897.0332" id="linearGradient3219" xlink:href="#linearGradient3317" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.5599786,0,0,2.5827101,317.24891,-5063.043)"/>
+ <filter height="1.4537807" y="-0.22689034" width="1.0142819" x="-0.0071409685" id="filter3371">
+ <feGaussianBlur id="feGaussianBlur3373" stdDeviation="0.33324519" inkscape:collect="always"/>
+ </filter>
+ <filter id="filter3417">
+ <feGaussianBlur id="feGaussianBlur3419" stdDeviation="0.11145486" inkscape:collect="always"/>
+ </filter>
+ <linearGradient x1="69.913269" y1="-96.5" x2="70.020454" y2="-67.843079" id="linearGradient3453" xlink:href="#linearGradient3446" gradientUnits="userSpaceOnUse" gradientTransform="translate(5.89968e-2,131.40729)"/>
+ <linearGradient x1="107.06239" y1="-26.262714" x2="107.06239" y2="134.55173" id="linearGradient3474" xlink:href="#linearGradient3468" gradientUnits="userSpaceOnUse" gradientTransform="translate(9.4,0.6)"/>
+ <filter height="1.3748291" y="-0.1874145" width="1.0467155" x="-0.023357728" id="filter3565">
+ <feGaussianBlur id="feGaussianBlur3567" stdDeviation="1.0149838" inkscape:collect="always"/>
+ </filter>
+ <radialGradient cx="28.481363" cy="164.13387" r="52.144646" fx="28.481363" fy="164.13387" id="radialGradient3583" xlink:href="#linearGradient3577" gradientUnits="userSpaceOnUse" gradientTransform="matrix(5.4915792,-0.1150427,2.6103208e-3,0.1246041,-128.35474,104.82482)"/>
+ <filter height="1.2405112" y="-0.12025558" width="1.1380129" x="-0.069006473" id="filter3659">
+ <feGaussianBlur id="feGaussianBlur3661" stdDeviation="1.9228365" inkscape:collect="always"/>
+ </filter>
+ <radialGradient cx="64.801826" cy="63.781319" r="34.041004" fx="64.801826" fy="63.781319" id="radialGradient3692" xlink:href="#linearGradient3111" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0552043,0,0,2.2032141e-2,0.5328457,76.944704)"/>
+ <radialGradient cx="84" cy="91.983192" r="32" fx="84" fy="91.983192" id="radialGradient3704" xlink:href="#linearGradient3468" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,0.6210279,0,37.87587)"/>
+ <linearGradient x1="47.608696" y1="104.35009" x2="47.608696" y2="176.35008" id="linearGradient3712" xlink:href="#linearGradient3706" gradientUnits="userSpaceOnUse"/>
+ <filter height="2.2481999" y="-0.62409997" width="1.0121166" x="-0.0060582431" id="filter3726">
+ <feGaussianBlur id="feGaussianBlur3728" stdDeviation="0.18955201" inkscape:collect="always"/>
+ </filter>
+ <radialGradient cx="118.16644" cy="9.119606" r="1.284445" fx="118.16644" fy="9.119606" id="radialGradient3039" xlink:href="#linearGradient3033" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.2088257,0.9583181,-1.4021168,1.7686352,-11.9962,-120.41039)"/>
+ <filter id="filter3077">
+ <feGaussianBlur id="feGaussianBlur3079" stdDeviation="0.10453397" inkscape:collect="always"/>
+ </filter>
+ <radialGradient cx="118.16644" cy="9.119606" r="1.284445" fx="118.16644" fy="9.119606" id="radialGradient3084" xlink:href="#linearGradient3033" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.2088257,0.9583181,-1.4021168,1.7686352,-11.0962,-120.71039)"/>
+ <radialGradient cx="104.09375" cy="9" r="0.46875" fx="104.09375" fy="9" id="radialGradient3094" xlink:href="#linearGradient3088" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,0.8,-0.4640388,1.9104855)"/>
+ <filter id="filter3120">
+ <feGaussianBlur id="feGaussianBlur3122" stdDeviation="0.025961538" inkscape:collect="always"/>
+ </filter>
+ <radialGradient cx="104.09375" cy="9" r="0.46875" fx="104.09375" fy="9" id="radialGradient3126" xlink:href="#linearGradient3088" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,0.8,-80.464039,1.9104855)"/>
+ <linearGradient x1="-37.195274" y1="42.336197" x2="-12.625" y2="106.7981" id="linearGradient3142" xlink:href="#linearGradient3136" gradientUnits="userSpaceOnUse" gradientTransform="translate(126.8,0)"/>
+ <filter id="filter3192">
+ <feGaussianBlur id="feGaussianBlur3194" stdDeviation="0.0231875" inkscape:collect="always"/>
+ </filter>
+ <clipPath id="clipPath3199">
+ <path d="M 18.189713,132.42089 C 16.770505,132.42089 15.627213,133.56419 15.627213,134.98339 L 15.627213,172.16667 L 87.627215,172.16667 L 87.627215,134.98339 C 87.627215,133.56419 86.483925,132.42089 85.064715,132.42089 L 18.189713,132.42089 z" id="path3201" style="fill:#000000;fill-opacity:0.12831858;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ </clipPath>
+ <linearGradient x1="64" y1="120.0697" x2="56" y2="96.315643" id="linearGradient3221" xlink:href="#linearGradient3215" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,1.0103538,0,-1.3128784)"/>
+ <filter height="1.1857692" y="-0.092884615" width="1.2476923" x="-0.12384615" id="filter3271">
+ <feGaussianBlur id="feGaussianBlur3273" stdDeviation="1.2384615" inkscape:collect="always"/>
+ </filter>
+ <linearGradient x1="68" y1="120" x2="36" y2="84" id="linearGradient3281" xlink:href="#linearGradient3275" gradientUnits="userSpaceOnUse"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient17389" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.04831,98.650809)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient17391" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.86565,81.869097)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient17393" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.65627,76.131701)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient17401" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.35341,75.348463)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient17403" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.98917,83.339266)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient17405" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.98299,64.593236)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient17927" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-169.06714,86.432831)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient17929" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.83916,54.919294)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient17931" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.88342,62.800233)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient17933" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.71623,79.165529)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient17935" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.84517,54.21146)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient17937" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.53241,97.806917)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient17939" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.24534,81.048567)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient17941" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.70361,55.279303)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient17943" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.6284,97.067631)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient17945" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.34854,61.711899)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient17947" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.66265,52.483914)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient17949" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.59014,59.510188)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient17951" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.46624,60.173404)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient17953" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.87629,58.336657)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient17955" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.58009,67.154481)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient17957" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.73496,62.400106)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient17959" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.35161,73.551175)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient17961" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.89594,66.58864)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient17963" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.13384,84.814934)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient17965" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-181.91271,77.941165)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient17967" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.20449,51.17675)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient17969" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.06524,69.064619)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient17971" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.52359,92.856996)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient17973" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.43503,94.662593)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient17975" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.85757,64.997276)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient17977" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.75931,67.251671)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient17979" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.65593,78.369252)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient17981" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.62706,51.493137)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient17983" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.93824,68.322369)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient17985" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.53268,55.235233)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient17987" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.21066,71.47352)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient17989" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.5919,56.467526)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient17991" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.71564,74.930868)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient17993" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.4736,53.559868)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient17995" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.55832,61.067038)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient17997" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.31207,66.681291)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient17999" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.10403,67.750684)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18001" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-181.33468,72.447586)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18003" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.26012,87.91266)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18005" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.40056,82.048109)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18007" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.0213,62.520599)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18009" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.36835,56.244802)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18011" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.08718,57.926553)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18013" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.79114,57.080862)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18015" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.03918,48.584498)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18017" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.6183,63.700535)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18019" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.93757,95.476082)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18021" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-205.02547,77.574321)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18023" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.21364,48.418007)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18025" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.70823,82.23261)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18027" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.15255,92.772183)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18029" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.65169,79.498937)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18031" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.49456,78.16038)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18033" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.67608,84.861682)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18035" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.26899,52.027937)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18037" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.45628,86.592803)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18039" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.00836,90.316584)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18041" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-171.89546,82.204785)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18043" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-181.56485,49.076767)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18045" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.43699,83.788635)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18047" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.40557,82.936981)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18049" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.93802,93.778176)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18051" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.19068,89.201266)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18053" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.13798,52.027419)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18055" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-205.45937,84.129612)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18057" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.56245,48.654412)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18059" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.63529,65.193646)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18061" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.98125,77.181558)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18063" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.69936,101.45983)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18065" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.28009,95.000749)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18067" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.7688,89.934128)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18069" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.73667,49.776232)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18071" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.71492,87.099601)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18073" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.40761,55.73509)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18075" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.59256,76.129457)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18077" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.50428,70.646216)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18079" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.1711,87.719524)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18081" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.57429,74.288249)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18083" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.27965,65.898402)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18085" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.29621,93.400413)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18087" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.27056,70.316108)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18089" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.20777,48.563152)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18091" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.39529,83.572253)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18093" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.81164,57.257035)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18095" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.89446,53.860035)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18097" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.88926,94.901194)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18099" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.34424,94.619712)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18101" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.08388,70.672254)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18103" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.9536,55.272771)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18105" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.64822,51.584368)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18107" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.34619,56.086318)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18109" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.27079,87.813541)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18111" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.02855,64.950753)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18113" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.72777,47.537589)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18115" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.50256,86.101458)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18117" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.31555,49.887473)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18119" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-259.22916,94.031526)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18121" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.47311,67.000704)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18123" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.55203,62.073911)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18125" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.18659,61.00993)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18127" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.54179,61.764079)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18129" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.42695,88.75579)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18131" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.73423,88.006441)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18133" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.64361,58.908237)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18135" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.96634,55.970755)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18137" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.50462,92.061954)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient18139" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.43236,57.658044)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient18141" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.54487,89.80346)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient18143" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.63109,94.239208)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient18145" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.39712,73.965174)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient18147" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.64656,71.246105)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient18149" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.26639,58.537091)"/>
+ <clipPath id="clipPath25065">
+ <path d="M -283.36245,66.003757 C -284.5397,66.003757 -285.48745,66.951507 -285.48745,68.128757 L -285.48745,105.94751 L -230.0812,105.94751 L -230.0812,68.128757 C -230.0812,66.951507 -231.02895,66.003757 -232.2062,66.003757 L -283.36245,66.003757 z M -277.1437,69.347507 L -263.0187,69.347507 C -262.49915,69.347507 -262.0812,69.765457 -262.0812,70.285007 L -262.0812,96.410007 C -262.0812,96.929557 -262.49915,97.347507 -263.0187,97.347507 L -277.1437,97.347507 C -277.66325,97.347507 -278.0812,96.929557 -278.0812,96.410007 L -278.0812,70.285007 C -278.0812,69.76546 -277.66325,69.347507 -277.1437,69.347507 z" id="path25067" style="opacity:1;fill:url(#linearGradient25069);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ </clipPath>
+ <linearGradient x1="52" y1="112" x2="52" y2="80" id="linearGradient25069" xlink:href="#linearGradient3215" gradientUnits="userSpaceOnUse" gradientTransform="translate(-318.0812,-14.652496)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25071" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.38211,96.058611)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25073" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.17339,68.78127)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25075" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.16644,100.32021)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25077" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.0724,74.753533)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25079" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.8528,53.860792)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25081" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.06483,97.785398)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25083" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.80022,50.494008)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25085" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.04164,84.576711)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25087" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.52819,76.538651)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25089" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-205.65959,57.539347)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25091" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.86203,66.719957)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25093" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.8179,50.386062)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25095" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.05855,74.425415)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25097" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.12915,42.23811)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25099" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.66068,93.444381)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25101" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.70143,51.859788)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25103" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.98631,53.268073)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25105" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.37167,89.887836)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25107" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.74685,64.326802)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25109" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.8959,81.54662)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25111" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.29278,47.198913)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25113" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.711,91.667267)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25115" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.69501,98.782896)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25117" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.34776,95.10665)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25119" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.74429,53.915931)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25121" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.55698,53.16276)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25123" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.95662,47.486179)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25125" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.35779,58.642553)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25127" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-177.23431,45.441149)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25129" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.86474,74.954131)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25131" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.10867,97.34097)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25133" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.25958,46.78729)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25135" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-205.81379,94.9744)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25137" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.94383,78.792993)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25139" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.57868,84.007476)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25141" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.90486,92.071216)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25143" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.00999,71.757639)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25145" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.61023,87.451829)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25147" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.28284,81.593319)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25149" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.0861,90.515961)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25151" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.78528,75.738299)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25153" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.05801,67.184614)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25155" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.88883,54.629747)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25157" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.78443,79.523126)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25159" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.08719,80.115126)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25161" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.49501,50.253965)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25163" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.25412,62.696544)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25165" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.45523,79.406263)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25167" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.41942,54.610361)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25169" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-177.5503,80.159362)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25171" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.74779,82.303681)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25173" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.25995,94.08089)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25175" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.0894,95.830634)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25177" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.55239,43.484478)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25179" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.02703,76.389395)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25181" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.01949,89.014582)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25183" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-176.5417,72.608952)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25185" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.02746,79.641932)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25187" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.10405,89.937584)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25189" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.01422,68.861646)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25191" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.34232,64.508541)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25193" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.1797,58.959427)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25195" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.06036,98.049416)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25197" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.04789,60.240488)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25199" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.66368,52.21739)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25201" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.81342,73.677919)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25203" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-258.27374,88.937138)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25205" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.28503,78.626899)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25207" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.77725,94.296605)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25209" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.03812,59.050813)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25211" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.04593,71.103629)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25213" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-177.33961,87.338103)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25215" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.90676,91.613815)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25217" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.58716,82.306123)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25219" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.97587,82.888964)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25221" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.63853,48.592378)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25223" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.17805,82.032511)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25225" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.34891,75.185611)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25227" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.37818,58.417957)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25229" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.67765,55.742352)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25231" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.4097,62.833675)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25233" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.35607,79.408455)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25235" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.7447,68.787837)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25237" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.94661,55.287673)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25239" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.17737,55.539508)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25241" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.80814,74.829959)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25243" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-173.23561,52.533322)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25245" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.80864,97.942226)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25247" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.04119,65.636136)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25249" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.16068,85.874483)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25251" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.2966,78.103089)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25253" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.2253,63.940556)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25255" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.24862,54.096019)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25257" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.54865,65.626587)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25259" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.0947,48.525423)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25261" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.75331,51.284339)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25263" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.13564,72.571239)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25265" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.09768,73.231703)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25267" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.70515,102.75344)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25269" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.38314,101.07037)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25271" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.05661,63.96836)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25273" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.94209,72.979553)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25275" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.86084,73.351613)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25277" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.08696,78.669612)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25279" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.46218,61.658045)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25281" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.01556,70.609094)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25283" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.60137,85.269477)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25285" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.85815,87.158859)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25287" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.93834,73.09266)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25289" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.51219,76.968198)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25291" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.62389,53.714891)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25293" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.81095,65.65574)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25295" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.1174,79.920498)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25297" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.31182,94.22334)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25299" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.82608,79.603251)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25301" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.74465,86.802406)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25303" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.19678,55.049012)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25305" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.27319,62.663747)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25307" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.00246,99.797565)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25309" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.49681,62.469135)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25311" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.01015,67.065542)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25313" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.2218,88.255847)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25315" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.62659,100.49906)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25317" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.88673,89.25093)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25319" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.76579,78.929875)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25321" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.1367,69.744078)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25323" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.16539,96.80496)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25325" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.50604,95.25611)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25327" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.0547,101.92665)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25329" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.95849,84.566088)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25331" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.91109,56.112126)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25333" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.89562,74.202974)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25335" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.53845,92.086584)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25337" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.9649,56.388537)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25339" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.0286,75.756506)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25341" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.89374,87.521709)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25343" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.8761,68.273979)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25345" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-258.26228,47.180868)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25347" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.91805,83.030339)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25349" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.90486,89.074686)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25351" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.74266,61.23647)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25353" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.07618,77.989104)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25355" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.99922,82.379721)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25357" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.25102,78.974994)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25359" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.92593,66.582197)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25361" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.87488,90.973141)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25363" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.14427,53.878791)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25365" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.63365,51.02227)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25367" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.63774,97.263187)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25369" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.66009,78.261234)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25371" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.12648,63.541393)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25373" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.44656,90.883629)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25375" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.10606,66.63253)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25377" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.24541,89.879804)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25379" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.75451,73.741383)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25381" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.04198,85.944877)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25383" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.59922,93.062511)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25385" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.33442,48.916147)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25387" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.42778,87.747819)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25389" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.87795,46.102846)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25391" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.76042,57.778219)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25393" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.28711,55.089283)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25395" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.00493,80.55014)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25397" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.76301,84.467965)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25399" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.09758,65.661454)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25401" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.60272,91.234744)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25403" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.19726,69.665254)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25405" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.48891,52.819633)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25407" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.66919,94.582064)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25409" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-181.80325,85.619929)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25411" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.57968,57.069825)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25413" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.58682,65.503385)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25415" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.14174,48.577251)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25417" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.67014,82.861539)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25419" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.77739,87.621414)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25421" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.58356,90.808782)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25423" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.22748,49.22511)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25425" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.88045,89.331479)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25427" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.08206,73.679835)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25429" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.92333,98.779166)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25431" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-215.80519,81.754991)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25433" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.48779,69.946426)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25435" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.6343,67.002042)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25437" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.36223,86.555487)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25439" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.98491,53.461282)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25441" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.63347,60.740732)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25443" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.49112,93.886238)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25445" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.0295,46.463347)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25447" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.39578,80.802235)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25449" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.25661,74.119006)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25451" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.82125,56.065217)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25453" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.21644,57.806455)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25455" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.1716,43.752105)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25457" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.03293,67.790618)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25459" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.11879,70.91176)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25461" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.04165,79.077835)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25463" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.39124,76.195736)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25465" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.90693,79.587908)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25467" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.22061,47.99961)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25469" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.39882,62.582495)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25471" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.67782,102.12202)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25473" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.47238,73.923449)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25475" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-215.9026,64.745496)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25477" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.81868,77.281724)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25479" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.12565,63.352013)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25481" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.33163,97.086604)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25483" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.76353,85.066104)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25485" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.89508,54.203911)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25487" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.54305,67.199939)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25489" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-258.27681,72.403163)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25491" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.02385,88.069533)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25493" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.76838,88.78592)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25495" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.32961,56.208973)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25497" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.37873,88.863579)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25499" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.97817,91.731797)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25501" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.47633,50.134554)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25503" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.90923,69.227596)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25505" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.88412,67.106252)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25507" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.40947,74.939971)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25509" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.4478,57.634612)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25511" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.51182,92.809539)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25513" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-176.80362,50.410836)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25515" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.02572,65.891626)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25517" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.66411,84.453632)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25519" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.32685,59.734527)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25521" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.87078,59.219945)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25523" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.10721,59.642293)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25525" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.87107,95.50353)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25527" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.33115,96.648737)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25529" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.96561,51.859787)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25531" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.44773,78.310106)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25533" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.55415,72.470695)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25535" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.81771,87.843085)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25537" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.59479,45.717249)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25539" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.54047,71.618169)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25541" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.89265,55.938324)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25543" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.50631,73.919704)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25545" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.76911,49.792033)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25547" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.2194,64.311435)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25549" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.45637,61.709902)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25551" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.49561,43.100523)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25553" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.64006,66.916448)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25555" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-215.83152,80.672031)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25557" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.79432,71.297676)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25559" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.925,100.26332)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25561" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.38018,63.48345)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25563" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.42613,90.671813)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25565" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.09766,43.021663)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25567" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.71879,94.060061)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25569" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.43313,100.4486)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25571" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-176.93287,84.710556)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25573" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.02746,65.316537)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25575" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.81323,83.133066)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25577" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.82007,62.36345)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25579" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.39029,94.105045)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25581" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.13426,58.170705)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25583" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.18474,75.349434)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25585" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.20203,48.845529)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25587" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.03562,55.758101)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25589" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.29811,52.259728)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25591" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-170.6151,77.618141)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25593" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.05919,91.908055)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25595" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.60563,78.470723)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25597" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.903,89.769672)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25599" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.24145,45.861223)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25601" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.53475,43.795964)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25603" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-173.77556,48.95078)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25605" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.2318,87.681518)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25607" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.58276,55.747252)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25609" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.78469,79.944157)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25611" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.86844,50.278288)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25613" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.91709,47.248874)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25615" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-177.95266,76.765426)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25617" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.94025,78.21498)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25619" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.68773,56.303855)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25621" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.42025,72.239281)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25623" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.77142,70.608768)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25625" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.62663,85.751899)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25627" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.42123,91.671771)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25629" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.10816,83.461099)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25631" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.671,50.936341)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25633" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.8437,76.600442)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25635" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.54453,86.838596)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25637" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.60334,44.432277)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25639" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.19863,77.925457)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25641" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.81916,94.114099)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25643" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.90901,62.531869)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25645" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.70763,73.774118)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25647" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.46635,77.168898)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25649" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.52156,69.213722)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25651" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.16458,66.538678)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25653" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.12069,62.394789)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25655" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.52721,90.396189)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25657" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.04492,54.904169)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25659" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.45617,81.829262)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25661" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.64673,71.55417)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25663" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.44925,62.441034)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25665" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.12965,56.246736)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25667" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.92528,53.299937)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25669" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.2057,95.742977)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25671" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.29121,86.984918)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25673" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.07831,65.831275)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25675" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.34249,98.138056)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25677" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.4937,75.046925)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25679" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.1355,90.678068)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25681" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.25941,94.504639)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25683" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.67862,58.096074)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25685" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.17987,88.526706)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25687" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.87076,85.072027)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25689" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.44615,99.129507)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25691" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.03251,52.847877)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25693" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.31058,78.926478)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25695" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.38729,76.478332)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25697" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.77608,48.930248)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25699" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.78137,65.224321)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25701" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.75188,76.831363)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25703" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.11667,99.752269)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25705" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-257.04074,83.076253)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25707" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.40607,61.643761)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25709" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.68623,81.637039)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25711" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.6966,82.312204)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25713" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.87099,85.200996)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25715" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.14815,80.964882)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25717" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-170.25356,56.87887)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25719" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.98002,90.303091)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25721" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.64409,62.66442)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25723" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-170.07904,58.945199)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25725" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.74295,74.927436)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25727" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.72421,60.663158)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25729" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.21981,74.741939)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25731" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.31423,69.448412)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25733" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.84608,68.815406)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25735" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.18009,72.228015)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25737" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.34991,69.38326)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25739" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.3173,94.625498)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25741" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.62702,57.437192)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25743" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-259.44646,93.781072)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25745" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.76175,81.46759)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25747" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.78404,49.42172)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25749" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.81022,99.158159)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25751" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.52567,99.957901)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25753" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.57132,57.231352)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25755" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.75051,83.271844)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25757" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.11784,89.955784)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25759" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.2487,58.800202)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25761" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.694,60.709343)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25763" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.11199,96.768099)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25765" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-173.40943,62.401395)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25767" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.45206,78.631553)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25769" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.26711,66.539263)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25771" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.70911,70.352217)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25773" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-205.40295,95.35491)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25775" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.94716,50.093518)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25777" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.64272,72.150133)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25779" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.62647,81.143023)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25781" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.14228,54.86069)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25783" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.29509,58.719807)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25785" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.30549,66.017408)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25787" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-176.31534,83.536696)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25789" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.74634,54.54358)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25791" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.81598,71.036429)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25793" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.37822,50.882072)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25795" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.54397,95.704671)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25797" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-215.10988,80.137108)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25799" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.12294,94.958668)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25801" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.14566,48.90426)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25803" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.47119,69.295949)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25805" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.10648,68.840038)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25807" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.91314,91.117042)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25809" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.0356,46.698952)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25811" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.94624,73.379187)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25813" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.57653,93.149875)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25815" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.55881,53.111903)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25817" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.09461,51.13869)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25819" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.26013,97.389846)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25821" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.54159,74.940044)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25823" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.07562,92.952027)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25825" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.89693,60.272946)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25827" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.98046,78.793425)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25829" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.86916,51.559013)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25831" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.32905,85.452556)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25833" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.54228,90.635746)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25835" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.44461,57.766641)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25837" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.24108,68.261244)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25839" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.16236,61.104509)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25841" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.34105,58.960917)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25843" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.2905,83.175482)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25845" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.15465,75.135647)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25847" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.9938,55.97573)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25849" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-176.90553,96.057791)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25851" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.96328,66.21203)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25853" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.76821,93.599068)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25855" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.95708,55.921228)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25857" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.1816,60.903275)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25859" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.30553,80.478416)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25861" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.10752,50.516123)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25863" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.50403,78.72218)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25865" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.70184,79.141059)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25867" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-177.8086,77.286836)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25869" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.89896,54.508566)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25871" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.13152,96.866027)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25873" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.73149,77.585866)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25875" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.52509,44.701208)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25877" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.61234,70.479666)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25879" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.8115,63.378045)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25881" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.42213,58.729505)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25883" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.04973,100.68876)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25885" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.26572,51.814988)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25887" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.19359,93.559083)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25889" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.29907,41.550704)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25891" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.34885,49.193737)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25893" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.37881,67.984252)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25895" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.28267,59.49831)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25897" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.05311,53.805192)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25899" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.5602,81.313378)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25901" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.9489,83.375827)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25903" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-257.45863,89.337988)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25905" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.30777,89.488645)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25907" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.26991,68.026294)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25909" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.197,44.08644)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25911" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.57626,59.327194)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25913" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.05568,56.498296)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25915" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.83245,75.470348)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25917" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.85895,100.97328)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25919" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.25345,68.350558)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25921" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.79683,55.060749)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25923" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.63195,50.962423)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25925" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.29248,92.765928)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25927" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-181.70545,69.466989)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25929" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-205.15384,88.371961)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25931" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.74113,95.148243)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25933" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.89802,91.894132)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25935" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.17488,61.734911)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25937" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.98542,55.171014)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25939" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.40944,81.128571)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25941" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.77183,67.275714)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25943" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.54992,51.391434)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25945" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.84487,57.530592)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25947" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.32101,72.460262)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25949" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.13057,89.796131)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25951" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.63146,66.984367)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25953" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.47995,98.363352)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25955" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.85622,95.006691)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25957" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-258.62809,70.570403)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25959" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.29674,82.688109)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25961" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.9558,59.196439)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25963" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.90801,84.960554)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25965" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.0659,80.248099)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25967" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.02201,56.40529)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25969" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.47597,59.319721)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25971" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.91338,81.832351)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25973" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.67642,97.511173)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25975" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.77997,66.826761)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25977" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.21696,55.204814)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25979" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.28156,99.194668)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25981" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.16497,91.936968)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25983" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-215.96732,57.902306)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25985" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.66966,94.451773)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25987" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.86723,80.633635)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient25989" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.87851,84.513313)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient25991" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.09357,60.622522)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient25993" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.42322,60.924173)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient25995" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.51572,47.316547)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient25997" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.41057,59.199964)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient25999" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.64963,47.837809)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26001" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.77568,100.63515)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26003" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-177.58237,45.460225)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26005" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-258.36492,92.067389)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26007" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-258.75397,54.890055)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26009" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.15973,82.806109)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26011" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.91485,69.195625)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26013" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.89556,98.504519)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26015" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.19639,89.863388)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26017" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.32418,81.88167)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26019" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.20665,97.838212)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26021" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.94344,90.752694)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26023" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.16996,82.180245)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26025" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.31052,57.231976)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26027" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.94962,51.183241)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26029" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.42874,66.896446)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26031" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-258.65024,96.875921)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26033" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.308,55.386706)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26035" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-168.67373,60.753257)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26037" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.50822,51.075751)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26039" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.52894,58.762284)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26041" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.94959,91.684887)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26043" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.26789,84.877056)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26045" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.05805,94.476969)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26047" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.56355,86.41264)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26049" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.13517,77.175513)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26051" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.02597,58.035693)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26053" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.14971,93.175794)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26055" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.25824,88.410331)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26057" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.79815,59.03502)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26059" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.94424,100.56856)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26061" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.38437,47.090204)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26063" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.70144,67.344287)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26065" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.50104,73.092261)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26067" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.91998,71.783425)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26069" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.65277,74.03124)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26071" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.11602,99.243278)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26073" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.81905,83.115296)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26075" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.53041,58.04325)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26077" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.71379,53.569638)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26079" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.73995,56.014834)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26081" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.52662,45.024141)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26083" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.19677,82.692683)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26085" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.8594,73.102465)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26087" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.59595,65.436866)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26089" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.99607,60.382145)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26091" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.61424,94.167518)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26093" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.99055,58.222766)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26095" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.75284,57.913561)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26097" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.88775,81.060687)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26099" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.3816,64.33263)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26101" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.89851,53.909031)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26103" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.17448,62.102049)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26105" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.73853,57.030866)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26107" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.17331,73.768629)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26109" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.11883,81.414662)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26111" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.68982,64.458518)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26113" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.10479,96.180089)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26115" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.91423,82.147877)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26117" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.78875,74.985805)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26119" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.62906,96.421111)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26121" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.61017,90.04855)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26123" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.21485,44.978928)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26125" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.57813,77.832142)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26127" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.49023,74.683485)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26129" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.73713,47.320861)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26131" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.16616,84.789256)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26133" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.12103,100.13712)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26135" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.46258,85.337301)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26137" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.95687,96.57967)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26139" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.89762,43.598589)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26141" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.00975,52.562994)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26143" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.29583,89.579706)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26145" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.03831,46.741795)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26147" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.03618,89.022991)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26149" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.58455,96.869575)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26151" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.40275,53.81825)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26153" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-181.89983,65.779625)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26155" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.54855,79.720058)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26157" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.66431,70.024915)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26159" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.40935,72.453765)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26161" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.64538,74.917475)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26163" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.72972,48.706565)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26165" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.94438,74.846626)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26167" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-257.21313,101.54873)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26169" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.98842,76.692321)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26171" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.2709,100.69639)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26173" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.9594,72.450047)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26175" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.20383,59.035082)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26177" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.12744,53.794548)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26179" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.98869,53.142207)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26181" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.13628,98.100518)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26183" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.56781,94.919393)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26185" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.12461,95.97926)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26187" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.35399,55.220506)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26189" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.62563,82.907266)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26191" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-169.49627,98.714929)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26193" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.96478,58.525976)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26195" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.45519,97.424779)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26197" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.98701,92.818729)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26199" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.83196,91.179346)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26201" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.12249,56.157795)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26203" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.78724,61.715517)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26205" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.17592,66.548739)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26207" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.60827,71.560403)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26209" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.63961,99.402208)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26211" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.02711,87.232951)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26213" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.98141,75.110907)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26215" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.72915,90.927929)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26217" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.92879,97.252538)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26219" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.72492,56.317052)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26221" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.6908,88.473853)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26223" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.04456,69.276317)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26225" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.42003,78.754986)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26227" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.48178,71.059478)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26229" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.4398,89.404901)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26231" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.08727,100.23941)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26233" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-169.81385,88.623736)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26235" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.35265,81.097498)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26237" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.49542,80.736363)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26239" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.82391,102.62995)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26241" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.68584,69.035616)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26243" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-176.8909,91.25955)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26245" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.51204,43.292758)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26247" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.58826,92.533231)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26249" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.91765,93.825399)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26251" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-257.18391,67.189922)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26253" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.23566,61.001922)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26255" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.59135,67.428878)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26257" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.32576,85.901619)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26259" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.88665,79.910358)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26261" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.29826,52.507608)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26263" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.91739,98.245721)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26265" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.86528,73.586258)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26267" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.69827,64.588411)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26269" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.77836,48.821272)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26271" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.31001,52.850576)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26273" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.32314,53.194791)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26275" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.31448,58.892835)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26277" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.85686,93.462001)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26279" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.9758,86.814968)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26281" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-170.48695,94.50283)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26283" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-205.77448,73.905739)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26285" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.11146,91.445987)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26287" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.43543,88.270935)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26289" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.26511,63.034765)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26291" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.87736,49.880397)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26293" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.32143,91.272568)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26295" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.90065,86.616652)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26297" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.60436,53.461688)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26299" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-176.43582,70.048052)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26301" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.39886,49.361679)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26303" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.75499,81.637997)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26305" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.69395,77.737543)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26307" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.90078,68.517067)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26309" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.238,65.742941)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26311" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.82817,74.89994)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26313" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.96281,90.303768)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26315" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-177.94621,83.816846)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26317" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.09277,92.359799)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26319" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.04693,42.296234)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26321" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.81511,95.382853)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26323" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.35982,68.031212)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26325" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.57305,65.633167)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26327" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.72023,78.376137)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26329" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.71531,95.386817)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26331" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.76606,70.613992)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26333" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.92549,77.294246)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26335" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-258.3949,93.826772)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26337" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.56505,76.919073)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26339" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.36489,89.107953)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26341" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.96918,73.353203)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26343" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.50662,49.932981)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26345" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.85232,43.463212)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26347" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.80296,61.002647)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26349" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.45749,54.539732)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26351" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.19833,61.363868)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26353" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.89152,67.193431)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26355" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.23817,56.717644)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26357" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.69815,65.891141)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26359" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.42673,47.889739)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26361" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.37493,80.774838)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26363" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.5567,71.713477)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26365" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.46176,58.968814)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26367" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-257.09506,75.675963)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26369" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.77836,88.047292)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26371" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.58104,72.677987)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26373" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.40127,56.120337)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26375" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.88109,99.349973)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26377" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.90521,76.321763)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26379" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.77391,73.143969)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26381" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.45078,68.894473)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26383" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.34401,73.508028)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26385" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.01549,98.843449)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26387" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.45871,54.292015)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26389" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.02899,63.064932)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26391" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.96409,49.99785)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26393" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.13609,59.196361)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26395" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.09141,102.17008)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26397" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.26954,70.133057)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26399" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.73524,96.505891)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26401" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.41006,68.527705)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26403" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.60542,60.727199)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26405" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.43104,53.430483)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26407" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-170.32042,92.259938)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26409" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.6568,68.338744)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26411" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.66507,53.368637)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26413" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.15419,84.625236)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26415" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.35996,85.892578)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26417" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.95352,73.071673)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26419" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-171.59911,52.768718)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26421" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.04709,68.472085)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26423" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.73392,95.242565)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26425" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.91053,53.860252)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26427" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.961,94.592686)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26429" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.02644,95.825107)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26431" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.84879,59.021262)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26433" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.29974,64.380676)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26435" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.59404,97.507151)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26437" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.12866,71.287185)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26439" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.69166,91.939584)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26441" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.92339,44.953255)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26443" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.56343,52.22804)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26445" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.63368,48.017753)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26447" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.02668,62.411475)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26449" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-171.42675,58.566706)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26451" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.33318,46.059348)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26453" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.13567,58.757321)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26455" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.57474,100.96913)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26457" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.97263,46.082625)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26459" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.32669,67.279158)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26461" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.76226,59.46013)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26463" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.45756,71.652658)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26465" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.58738,67.526028)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26467" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.47772,96.355565)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26469" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.16172,62.355435)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26471" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-176.98759,49.311847)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26473" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.58199,67.883424)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26475" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.25718,51.466042)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26477" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.80047,42.984038)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26479" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.26636,52.927194)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26481" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.5903,87.902473)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26483" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.57186,74.960311)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26485" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.46051,84.348265)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26487" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.88495,91.390387)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26489" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.04437,49.478819)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26491" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.50689,56.699134)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26493" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.49716,54.758095)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26495" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.2186,63.383976)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26497" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.99597,64.615185)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26499" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.72593,54.306593)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26501" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.6354,82.192618)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26503" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.72677,55.965991)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26505" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.74684,93.348705)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26507" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.11095,98.355157)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26509" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.41642,58.129447)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26511" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.81562,60.402738)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26513" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.48888,67.582417)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26515" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.11081,52.39427)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26517" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.87595,73.453053)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26519" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.74565,94.623539)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26521" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.46457,73.105186)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26523" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.20061,75.219563)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26525" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.39882,83.93047)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26527" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.23296,85.458922)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26529" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.18903,54.684773)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26531" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.29115,65.385264)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26533" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.01924,57.108653)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26535" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.23811,93.415943)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26537" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.82636,92.995696)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26539" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.68705,51.525738)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26541" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.45861,61.014299)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26543" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.82901,51.479338)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26545" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.42642,61.330648)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26547" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.6842,73.453246)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26549" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.58525,66.465893)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26551" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.65937,68.581665)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26553" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.65553,87.989401)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26555" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.63622,51.559167)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26557" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.38301,92.658321)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26559" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.06131,89.702831)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26561" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.07053,52.322113)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26563" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.23187,71.007622)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26565" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.67469,80.249936)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26567" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.02737,96.164018)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26569" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.42304,93.151821)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26571" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.55154,48.490688)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26573" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.11645,54.391145)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26575" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.3394,80.019154)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26577" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.89769,96.314695)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26579" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.88531,49.529028)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26581" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.85806,86.512638)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26583" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.36352,70.500382)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26585" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.76024,70.321758)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26587" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.00964,53.501083)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26589" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.02392,69.637928)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26591" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.42011,62.360143)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26593" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.54394,65.259638)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26595" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.69392,86.017179)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26597" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.56186,64.985879)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26599" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.64496,56.82673)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26601" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.66833,86.746129)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26603" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.78226,85.95013)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26605" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.24824,72.365237)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26607" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.15693,63.896508)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26609" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.30288,80.624838)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26611" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.02397,72.263928)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26613" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.03842,70.252906)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26615" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.67534,93.586753)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26617" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.23822,59.113575)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26619" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.84416,89.554328)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26621" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.00951,84.592508)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26623" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.61788,91.38449)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26625" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.41408,97.937064)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26627" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.74698,97.735057)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26629" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.89324,94.469438)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26631" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.50418,58.701932)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26633" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.8596,44.794286)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26635" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.66711,51.755713)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26637" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.39911,73.751137)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26639" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.57062,50.664985)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26641" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.99916,69.832004)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26643" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.80681,94.021697)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26645" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.11165,94.957536)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26647" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.13101,67.590716)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26649" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.16655,58.136705)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26651" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.66747,82.325226)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26653" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.04692,48.675928)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26655" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.0267,46.756689)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26657" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.44269,56.526845)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26659" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.75759,93.703667)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26661" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.15057,64.973857)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26663" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.12993,47.849245)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26665" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.40412,74.531046)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26667" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-257.29494,77.499106)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26669" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.01155,79.499492)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26671" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.8569,48.353139)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26673" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.29418,60.754963)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26675" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.91676,52.290803)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26677" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.59185,67.100203)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26679" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.50241,48.87804)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26681" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.60132,60.533927)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26683" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.53892,94.433567)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26685" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.09794,48.828103)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26687" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.57013,82.682983)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26689" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.76597,83.949033)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26691" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.41993,88.546402)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26693" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.13572,41.787681)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26695" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.2046,93.907054)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26697" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.39272,97.495864)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26699" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.13122,82.505099)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26701" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.19993,78.552961)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26703" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.72661,92.537514)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26705" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.13729,85.11606)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26707" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-171.9277,84.964934)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26709" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.50066,62.492006)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26711" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.73891,99.746001)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26713" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.2192,85.015978)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26715" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.28973,54.49741)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26717" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.89829,91.53533)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26719" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.52714,88.219852)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26721" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.127,72.901326)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26723" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.7262,77.373646)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26725" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.36687,57.304014)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26727" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.3269,89.768624)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26729" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.96267,95.156223)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26731" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.8186,59.507254)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26733" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.42245,76.670179)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26735" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.3597,74.818794)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26737" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-173.16566,83.292056)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26739" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.41349,62.868961)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26741" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.53911,76.582523)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26743" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.07409,78.455391)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26745" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.44513,72.724965)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26747" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.32481,80.052048)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26749" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-171.17019,93.569393)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26751" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.13774,79.803506)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26753" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.25357,58.474889)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26755" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-173.63833,61.961568)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26757" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-260.13253,96.203313)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26759" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.19565,54.751181)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26761" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.63476,52.889621)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26763" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.37497,62.196116)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26765" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.98695,42.068143)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26767" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.13319,58.588144)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26769" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.82398,98.448223)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26771" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.34805,45.208615)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26773" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.40748,48.825207)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26775" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.32017,48.215713)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26777" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.64056,47.270949)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26779" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.57535,55.331806)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26781" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.82305,83.233524)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26783" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.73142,91.108762)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26785" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.90855,74.865231)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26787" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.05043,84.496449)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26789" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-177.58459,61.751464)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26791" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.14596,54.424693)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26793" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.72812,74.904465)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26795" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.33155,100.14082)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26797" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.97193,89.39845)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26799" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.54809,98.186606)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26801" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.13964,82.361444)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26803" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-176.26848,72.117728)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26805" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.62859,99.526146)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26807" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-181.59623,53.871792)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26809" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.80598,69.166711)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26811" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-215.62474,48.787047)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26813" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.75345,54.240746)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26815" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.98752,67.876902)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26817" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.87876,99.123473)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26819" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.61416,49.531959)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26821" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-169.16456,75.169359)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26823" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.23696,94.313255)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26825" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.84062,82.983714)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26827" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.01685,52.493784)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26829" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.27146,65.60472)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26831" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.88539,78.432125)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26833" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-170.0056,55.437687)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26835" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.09645,96.57678)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26837" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.28814,83.132852)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26839" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.92543,100.63432)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26841" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.75459,93.615295)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26843" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.81267,76.598283)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26845" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.97243,65.554836)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26847" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-215.11098,78.060595)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26849" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.16023,50.367691)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26851" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.09602,47.509494)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26853" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.83567,48.407023)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26855" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.9713,90.760856)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26857" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.79418,74.074289)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26859" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.43577,43.332912)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26861" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.81327,79.099323)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26863" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.00449,94.083539)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26865" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.72126,53.408845)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26867" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.91972,50.59402)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26869" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.55979,61.669974)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26871" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.4726,78.824903)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26873" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.59763,53.619283)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26875" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.49684,51.026235)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26877" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.85444,49.641287)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26879" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.88381,46.625689)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26881" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.59828,48.962924)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26883" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.23879,89.017315)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26885" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.23683,73.082304)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26887" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.78688,97.803018)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26889" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.30024,72.56641)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26891" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.45358,67.925848)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26893" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.11391,49.244629)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26895" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-259.59331,54.91602)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26897" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.98258,93.006514)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26899" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.0406,73.285834)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26901" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.68471,55.729024)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26903" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-176.25009,62.909781)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26905" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-177.96538,51.964452)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26907" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.40219,48.541983)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26909" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.79974,49.135089)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26911" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.42489,55.403287)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26913" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.85561,98.609587)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26915" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.64675,95.536323)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26917" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-171.88588,66.792578)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26919" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.20914,43.457729)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26921" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.7775,59.436448)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26923" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.42544,67.928941)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26925" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.39275,56.094044)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26927" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.32934,47.507026)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26929" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.96646,52.423282)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26931" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.21976,74.8022)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26933" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.88266,41.815936)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26935" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.24918,78.518997)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26937" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.39568,89.980882)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26939" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.42916,94.635184)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26941" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.71388,88.271429)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26943" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.32837,88.617969)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26945" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.36292,61.565947)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26947" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.03473,80.857534)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26949" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.02853,59.90518)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26951" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.85935,46.662372)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26953" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.90877,86.371204)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26955" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.34812,58.661015)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26957" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.15893,64.234779)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26959" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.59054,92.636764)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26961" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.40673,81.751939)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26963" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.53017,98.088555)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26965" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.48704,62.034599)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26967" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.83137,51.828938)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26969" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.006,73.061615)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26971" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.07541,75.576698)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26973" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.65465,58.645614)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26975" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.86415,95.785422)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26977" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.88074,52.043047)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26979" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.30588,68.913181)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26981" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.2829,73.774293)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26983" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.80454,68.145279)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26985" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.17494,67.113967)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26987" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.66985,54.392166)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient26989" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.88847,93.637588)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient26991" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.03066,73.675414)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient26993" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.06557,55.925664)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient26995" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.5447,83.559618)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient26997" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.71731,50.554901)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient26999" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.07803,65.559852)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27001" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-176.45447,90.161169)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27003" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.7531,48.033577)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27005" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.16031,47.967923)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27007" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.53537,53.997638)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27009" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.47562,89.229685)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27011" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.26156,83.952679)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27013" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.68998,56.521744)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27015" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.86286,69.171286)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27017" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-215.54466,89.382028)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27019" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.08195,46.87524)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27021" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.0621,87.935662)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27023" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.3626,52.442573)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27025" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.42473,76.507755)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27027" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.53228,72.686821)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27029" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.29684,96.025376)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27031" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-168.88852,72.260417)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27033" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.49294,81.663317)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27035" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.70952,82.014123)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27037" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.67126,94.803721)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27039" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.63545,67.542586)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27041" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.92638,95.414083)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27043" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.70623,91.7262)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27045" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.37697,79.695679)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27047" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.20392,93.233867)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27049" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.71903,60.287723)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27051" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.02161,76.867306)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27053" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.42568,55.353147)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27055" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.92188,63.576552)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27057" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.9187,92.942361)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27059" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.39752,51.243918)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27061" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.69192,59.804687)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27063" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.51508,65.169586)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27065" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.25668,71.859799)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27067" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.18018,47.753546)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27069" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.48528,86.274435)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27071" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.60975,90.283974)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27073" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.0405,47.926017)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27075" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.33325,65.496812)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27077" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.81389,56.478834)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27079" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.49509,92.598888)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27081" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.13202,75.764768)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27083" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.65004,53.119399)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27085" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-168.30515,71.365268)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27087" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.84295,96.176021)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27089" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.09341,43.681222)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27091" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.76605,102.45759)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27093" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.26758,59.881431)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27095" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.13229,99.369038)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27097" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.98228,83.05717)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27099" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.51677,73.080526)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27101" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-205.83872,53.045346)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27103" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.76763,93.592923)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27105" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-181.85753,47.641127)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27107" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.58626,50.668684)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27109" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.4069,81.262723)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27111" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.24921,79.5565)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27113" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.24494,71.067549)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27115" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.75189,50.231633)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27117" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.24434,67.14382)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27119" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.39405,69.786388)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27121" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.87732,88.400952)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27123" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.01247,45.337134)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27125" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.39061,93.604926)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27127" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.48454,50.217383)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27129" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.39395,51.765841)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27131" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.25533,56.205039)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27133" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.47816,62.048213)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27135" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.50064,52.310424)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27137" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.06861,81.446812)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27139" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.44734,90.179264)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27141" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.19114,56.493832)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27143" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.63145,73.571373)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27145" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.76286,73.427755)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27147" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.35129,69.495692)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27149" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-205.69785,71.126726)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27151" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.1162,78.513566)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27153" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.80517,67.452178)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27155" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.05264,98.221228)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27157" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.33798,52.073688)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27159" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.4885,49.09578)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27161" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.91622,66.613438)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27163" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.55953,62.212819)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27165" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.40228,58.703143)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27167" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.44557,61.922664)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27169" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.75543,55.062425)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27171" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.79794,56.817966)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27173" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.80249,46.383038)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27175" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.45649,79.39155)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27177" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.65817,98.525973)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27179" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.49252,86.65376)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27181" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.03005,63.616941)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27183" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.60675,86.836585)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27185" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.46391,61.275552)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27187" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.40339,103.07046)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27189" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.53363,47.761835)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27191" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.0782,91.999649)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27193" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.75617,57.089151)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27195" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.69444,79.661631)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27197" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.30338,49.239175)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27199" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.8518,65.758393)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27201" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-259.25918,65.382044)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27203" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.32333,56.70231)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27205" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.91028,75.726513)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27207" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.59383,70.351584)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27209" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.1034,54.435877)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27211" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.51601,95.192673)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27213" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.43965,80.028121)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27215" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.59322,76.343647)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27217" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-259.18344,47.610142)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27219" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.39095,43.639795)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27221" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.92671,68.771652)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27223" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.21166,92.648675)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27225" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.17735,71.794053)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27227" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.63236,47.52766)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27229" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.16081,44.41662)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27231" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.00261,90.128253)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27233" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.92227,43.55991)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27235" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.32533,49.972242)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27237" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.10997,89.14704)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27239" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.30227,60.285538)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27241" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.76842,77.390421)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27243" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.6665,62.558809)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27245" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.38184,82.872731)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27247" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.61765,96.52765)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27249" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.72541,51.47113)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27251" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.54138,53.545465)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27253" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.86173,52.774178)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27255" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.71077,43.880661)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27257" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.09393,89.496547)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27259" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.06203,66.59722)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27261" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.48757,91.970496)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27263" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.06744,64.277019)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27265" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.99988,52.392496)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27267" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.04893,50.604921)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27269" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.65616,73.939693)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27271" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.01359,69.767063)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27273" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-257.78541,97.601017)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27275" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.97623,59.497332)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27277" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.62014,72.269821)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27279" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.66247,76.179903)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27281" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.49072,44.982129)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27283" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.04212,91.48411)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27285" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.30554,82.579974)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27287" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.03744,54.986725)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27289" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.36851,70.543028)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27291" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.97446,50.204559)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27293" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.93491,65.972144)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27295" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-171.37111,77.804346)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27297" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-259.81671,69.086974)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27299" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.38225,78.498775)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27301" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.91362,60.616454)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27303" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.66797,46.953719)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27305" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.55395,70.518223)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27307" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.07622,83.963307)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27309" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.87336,58.408898)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27311" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.1624,69.371136)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27313" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.19766,61.537071)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27315" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.24193,92.054032)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27317" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.57792,85.804146)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27319" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.91185,72.680429)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27321" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.21114,54.390718)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27323" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-215.425,58.312746)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27325" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.75555,54.81788)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27327" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.02179,89.657359)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27329" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.34862,76.778873)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27331" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-169.69843,96.395674)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27333" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.41247,98.459073)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27335" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-205.64167,99.407929)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27337" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.55057,71.155806)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27339" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.99484,42.637907)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27341" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.28505,55.87091)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27343" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.59065,90.220947)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27345" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-258.80267,84.26335)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27347" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.0481,69.504368)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27349" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.70248,70.584924)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27351" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.60597,71.929613)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27353" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.26451,61.650553)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27355" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.07096,61.27863)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27357" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.51102,59.166309)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27359" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.7622,71.153328)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27361" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.03042,69.238498)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27363" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.0127,72.966632)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27365" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.16327,93.601756)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27367" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.65317,86.450568)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27369" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.63188,88.665087)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27371" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.79384,53.28071)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27373" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-172.74532,63.571401)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27375" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.36995,98.386192)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27377" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-181.87674,71.675146)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27379" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-177.63154,56.464275)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27381" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-226.30959,100.32155)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27383" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.89624,76.824878)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27385" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.89333,59.036414)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27387" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.15441,79.028562)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27389" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.17175,82.356747)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27391" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.40338,71.852443)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27393" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.32571,78.574712)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27395" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.27469,82.10326)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27397" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.74472,92.858382)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27399" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.39287,43.722363)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27401" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.91341,58.102918)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27403" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.0014,102.05417)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27405" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.70591,86.082562)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27407" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.67988,73.064213)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27409" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.69945,93.694066)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27411" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.81662,92.427571)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27413" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.6518,97.097598)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27415" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.17079,99.725263)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27417" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.32322,57.339996)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27419" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.08888,90.37825)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27421" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.81039,97.796346)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27423" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.75166,49.166841)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27425" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.59494,76.576066)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27427" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-257.15051,97.084599)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27429" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-259.48403,101.42318)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27431" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.43478,67.779459)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27433" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.22419,53.68767)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27435" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.39505,77.294326)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27437" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.41919,63.575869)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27439" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.78438,100.27467)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27441" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.61177,77.533893)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27443" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-248.64022,70.853269)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27445" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-194.55297,95.290354)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27447" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.07855,79.238468)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27449" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.65079,77.687797)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27451" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.02062,95.590901)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27453" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.96278,49.586168)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27455" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.76927,45.050973)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27457" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.51603,60.583904)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27459" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.6906,62.896975)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27461" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.38112,93.672405)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27463" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.79225,91.745447)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27465" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.44269,51.903418)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27467" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.81928,67.525668)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27469" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.72833,73.448474)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27471" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.40508,60.974073)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27473" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.05455,87.628991)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27475" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-214.93588,99.420661)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27477" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.88648,81.120501)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27479" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.86504,86.770173)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27481" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.13681,93.182029)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27483" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.73521,43.869682)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27485" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.0881,84.61171)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27487" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.46233,54.843602)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27489" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.6321,73.541725)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27491" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.32357,55.670436)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27493" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.91557,46.204655)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27495" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.9719,91.231164)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27497" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.69165,59.134301)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27499" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-204.46456,65.903504)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27501" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.46929,90.501004)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27503" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.24033,81.588013)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27505" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.82874,79.876219)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27507" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.42978,93.090415)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27509" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.61435,90.058372)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27511" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.98492,100.36541)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27513" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.9321,48.867215)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27515" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-221.90345,55.127806)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27517" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-257.50047,56.752685)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27519" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.57486,42.693569)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27521" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.24764,56.266412)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27523" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.66904,75.110959)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27525" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.52155,62.944166)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27527" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.6552,81.070833)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27529" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.68383,61.281742)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27531" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.22425,49.58798)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27533" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.5244,86.671087)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27535" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-257.15446,47.974507)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27537" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-179.76731,79.287042)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27539" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.15219,46.775348)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27541" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-170.08445,95.691504)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27543" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.70082,55.18296)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27545" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-235.3063,79.701222)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27547" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-173.49142,61.200645)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27549" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.76269,63.163291)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27551" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.04973,55.765566)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27553" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.38488,76.892807)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27555" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-192.26932,93.768386)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27557" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-206.22819,47.398248)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27559" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.57728,63.124516)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27561" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.63133,50.924622)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27563" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-181.13129,45.932102)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27565" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.04168,82.928417)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27567" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.8057,74.82315)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27569" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.39228,70.354617)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27571" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.13287,61.835684)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27573" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.60438,69.14573)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27575" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.81305,49.90574)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27577" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.21594,91.217105)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27579" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.19728,84.062432)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27581" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.9291,92.821144)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27583" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-174.03933,58.077371)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27585" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-259.60605,49.964956)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27587" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.38271,65.26114)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27589" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-215.78933,53.963431)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27591" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-222.30792,89.913488)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27593" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.44719,64.11581)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27595" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.51248,92.923726)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27597" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.3718,63.91343)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27599" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.42852,92.383231)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27601" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-197.76597,73.805175)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27603" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.96429,98.739247)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27605" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.5644,67.666933)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27607" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.17004,83.93924)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27609" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.16036,64.890456)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27611" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.18946,50.145956)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27613" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.60101,93.847542)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27615" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.13068,83.539022)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27617" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-237.16829,96.832506)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27619" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.0358,102.55861)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27621" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.50379,92.037363)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27623" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.71694,50.290692)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27625" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.47726,61.12236)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27627" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-220.67564,85.75803)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27629" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.99966,93.434097)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27631" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.09472,77.736566)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27633" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.51741,86.140447)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27635" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-255.83897,90.975822)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27637" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.21035,74.418667)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27639" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.86655,42.609709)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27641" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.6819,88.413202)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27643" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.87855,53.0696)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27645" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.77414,100.67582)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27647" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.3602,81.96574)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27649" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.09159,47.566903)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27651" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-244.68274,79.474551)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27653" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.48495,94.626364)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27655" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-230.37711,46.555566)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27657" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-207.8809,69.086841)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27659" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.6635,60.352803)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27661" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-199.95466,72.099926)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27663" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.21111,88.011876)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27665" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-228.83231,53.316376)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27667" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-251.84369,65.005735)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27669" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-217.9989,84.981571)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27671" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.58639,90.28221)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27673" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.47176,73.80615)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27675" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.75774,91.16306)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27677" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.16251,77.140677)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27679" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.52545,61.924834)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27681" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.0902,47.953693)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27683" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-224.93112,65.923658)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27685" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-182.70327,50.510667)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27687" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-258.52473,96.774009)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27689" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.08273,85.522736)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27691" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-254.53941,71.551229)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27693" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.45404,70.624355)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27695" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-219.9827,86.295303)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27697" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.54892,92.148972)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27699" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.9395,55.93824)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27701" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.46854,45.740705)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27703" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.59022,53.978766)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27705" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.99056,75.23682)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27707" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-195.6356,50.811083)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27709" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.03312,97.129739)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27711" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.53792,97.993185)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27713" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-201.83949,92.077517)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27715" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.1949,48.230903)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27717" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.80275,63.060718)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27719" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-236.97292,71.188488)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27721" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.14657,68.359108)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27723" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-252.42977,50.332265)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27725" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.24824,73.086246)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27727" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.76036,51.632528)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27729" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.27915,51.806225)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27731" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.78673,89.143551)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27733" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-246.85919,71.873986)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27735" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.70566,42.473075)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27737" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-223.34795,53.497344)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27739" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.79936,49.45235)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27741" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.00608,48.228358)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27743" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-180.05346,52.476784)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27745" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-188.12808,54.081591)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27747" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.12163,60.597171)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27749" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.42381,59.130803)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27751" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.10873,63.050103)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27753" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.32857,55.884135)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27755" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.70162,54.331071)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27757" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-233.56882,84.0983)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27759" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.36178,46.74517)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27761" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-245.78346,50.453108)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27763" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.92705,87.02696)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27765" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.25513,53.96114)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27767" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.08563,91.112785)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27769" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-250.58453,74.274969)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27771" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.62858,65.665589)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27773" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.65329,79.940039)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27775" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-242.76626,77.12677)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27777" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.29766,67.797527)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27779" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.80633,45.766603)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27781" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.01509,96.010002)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27783" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-256.83557,56.520808)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27785" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.34907,95.535144)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27787" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-234.79617,96.412337)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27789" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-243.46954,66.478543)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27791" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-239.44943,89.33075)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27793" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-210.67063,68.294369)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27795" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-196.01207,61.20943)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27797" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-183.73846,87.445554)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27799" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-198.91904,70.247864)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27801" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-253.48082,99.563156)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27803" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.4407,45.611464)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27805" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-175.85378,66.384985)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27807" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.52721,46.698474)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27809" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-231.80022,47.896807)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27811" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-258.80727,102.88663)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27813" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-193.76038,73.863831)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27815" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.93098,47.204356)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27817" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.6804,65.256119)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27819" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-200.22945,55.767241)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27821" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-187.54617,48.169583)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27823" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-184.51632,77.705709)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27825" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.52519,80.579242)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27827" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.0888,93.519977)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27829" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-227.76835,93.562585)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27831" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-189.36747,60.812258)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27833" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-240.29986,51.075908)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27835" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.85083,56.279579)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27837" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.33677,64.543745)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27839" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.11549,62.724424)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27841" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-171.11813,68.243802)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27843" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-229.9637,81.829271)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27845" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.71646,80.73381)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27847" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.97031,59.434907)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27849" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-215.03427,47.761811)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27851" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.2947,83.727191)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27853" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-218.08309,98.542115)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27855" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.91882,68.097545)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27857" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.72297,62.6757)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27859" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-257.77392,49.448992)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27861" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-202.44367,88.139277)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27863" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-247.07915,68.960728)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27865" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.11148,71.847331)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27867" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-211.72353,74.3722)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27869" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-209.20403,73.58001)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27871" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-241.05235,102.50404)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27873" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-212.43746,85.588314)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27875" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.6801,69.436624)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27877" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-238.46415,55.915574)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27879" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.24972,91.450947)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27881" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-232.67721,79.344433)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27883" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-169.30184,50.246818)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27885" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-190.80369,91.46636)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27887" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-191.87594,52.952389)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27889" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-178.79273,64.86767)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27891" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-186.33654,86.19453)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27893" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-249.07836,54.07525)"/>
+ <linearGradient x1="-287.55518" y1="52.066509" x2="-224.06104" y2="52.066509" id="linearGradient27895" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-216.99045,71.632159)"/>
+ <linearGradient x1="-281.29733" y1="56.950672" x2="-165.60368" y2="56.950672" id="linearGradient27897" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-213.6111,98.159425)"/>
+ <linearGradient x1="-303.8866" y1="63.208508" x2="-188.19296" y2="63.208508" id="linearGradient27899" xlink:href="#linearGradient17383" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-185.45905,77.759546)"/>
+ <linearGradient x1="-287.55518" y1="71.908424" x2="-224.06104" y2="71.908424" id="linearGradient27901" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-203.7514,72.150342)"/>
+ <linearGradient x1="-281.29733" y1="76.792587" x2="-165.60368" y2="76.792587" id="linearGradient27903" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-208.73003,67.384443)"/>
+ <linearGradient x1="-303.8866" y1="83.050423" x2="-188.19296" y2="83.050423" id="linearGradient27905" xlink:href="#linearGradient17395" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0.1674014,0,0,0.1674014,-225.42247,74.315027)"/>
+ <filter id="filter27927">
+ <feGaussianBlur id="feGaussianBlur27929" stdDeviation="0.071512502" inkscape:collect="always"/>
+ </filter>
+ <radialGradient cx="59.983643" cy="120.82638" r="29.457615" fx="59.983643" fy="120.82638" id="radialGradient27939" xlink:href="#linearGradient27933" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.8793038,-5.0037745e-7,5.9254638e-8,0.2083586,-52.74385,95.651194)"/>
+ <filter height="2.1329556" y="-0.56647772" width="1.1115345" x="-0.055767238" id="filter27965">
+ <feGaussianBlur id="feGaussianBlur27967" stdDeviation="1.3689748" inkscape:collect="always"/>
+ </filter>
+ <linearGradient x1="-80.095642" y1="78.43882" x2="-89.987785" y2="115.78114" id="linearGradient27979" xlink:href="#linearGradient27973" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,1.0103538,0,-1.3128784)"/>
+ <linearGradient x1="86.693916" y1="100.83184" x2="90.051781" y2="100.83184" id="linearGradient27989" xlink:href="#linearGradient27983" gradientUnits="userSpaceOnUse" gradientTransform="translate(1,0)"/>
+ <filter height="1.0452234" y="-0.022611663" width="1.5097902" x="-0.25489509" id="filter28003">
+ <feGaussianBlur id="feGaussianBlur28005" stdDeviation="0.35662617" inkscape:collect="always"/>
+ </filter>
+ <filter height="1.203077" y="-0.10153846" width="1.2933333" x="-0.14666668" id="filter28031">
+ <feGaussianBlur id="feGaussianBlur28033" stdDeviation="0.55" inkscape:collect="always"/>
+ </filter>
+ <clipPath id="clipPath28041">
+ <rect width="8" height="12" rx="1.079258" ry="1.079258" x="12" y="12" id="rect28043" style="opacity:0.18359375;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ </clipPath>
+ <clipPath id="clipPath28045">
+ <rect width="8" height="12" rx="1.079258" ry="1.079258" x="12" y="12" id="rect28047" style="opacity:0.18359375;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ </clipPath>
+ <filter id="filter28101">
+ <feGaussianBlur id="feGaussianBlur28103" stdDeviation="0.04177847" inkscape:collect="always"/>
+ </filter>
+ <radialGradient cx="16" cy="18" r="4" fx="16" fy="18" id="radialGradient28110" xlink:href="#linearGradient28077" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,1.5,0,-9)"/>
+ <linearGradient x1="16" y1="1.5952783" x2="16" y2="18.75548" id="linearGradient28112" xlink:href="#linearGradient28049" gradientUnits="userSpaceOnUse"/>
+ <radialGradient cx="14" cy="19.699831" r="2.1500001" fx="14" fy="18.836424" id="radialGradient28114" xlink:href="#linearGradient28069" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.1062878,0,0,1.1062878,0.547091,-2.2994329)"/>
+ <linearGradient x1="11.917725" y1="17.560907" x2="11.917725" y2="20.038458" id="linearGradient28116" xlink:href="#linearGradient28059" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.1062878,0,0,1.1062878,0.547091,-2.2994329)"/>
+ <linearGradient x1="60.25" y1="122.00736" x2="60.25" y2="118.5" id="linearGradient28138" xlink:href="#linearGradient28132" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,1.0103538,0,-1.3128784)"/>
+ <linearGradient id="linearGradient3207">
+ <stop id="stop3209" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop3211" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient5433">
+ <stop id="stop5435" style="stop-color:#ea3838;stop-opacity:1" offset="0"/>
+ <stop id="stop5437" style="stop-color:#c40000;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient2922">
+ <stop id="stop2924" style="stop-color:#000000;stop-opacity:1" offset="0"/>
+ <stop id="stop2926" style="stop-color:#515151;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3325">
+ <stop id="stop3327" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop3329" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3623">
+ <stop id="stop3625" style="stop-color:#ffffff;stop-opacity:0.68345326" offset="0"/>
+ <stop id="stop3627" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient5826">
+ <stop id="stop5828" style="stop-color:#980000;stop-opacity:1" offset="0"/>
+ <stop id="stop5830" style="stop-color:#db5c5c;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3058">
+ <stop id="stop3060" style="stop-color:#9a7600;stop-opacity:1" offset="0"/>
+ <stop id="stop3066" style="stop-color:#e3ad00;stop-opacity:1" offset="0.09292036"/>
+ <stop id="stop3070" style="stop-color:#ffcd2c;stop-opacity:1" offset="0.5043171"/>
+ <stop id="stop3068" style="stop-color:#e3ad00;stop-opacity:1" offset="0.91571385"/>
+ <stop id="stop3062" style="stop-color:#b98d00;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient7364">
+ <stop id="stop7366" style="stop-color:#d4a100;stop-opacity:0.97647059" offset="0"/>
+ <stop id="stop7368" style="stop-color:#ffc712;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient2598">
+ <stop id="stop2600" style="stop-color:#252525;stop-opacity:1" offset="0"/>
+ <stop id="stop2606" style="stop-color:#252525;stop-opacity:1" offset="0.29354507"/>
+ <stop id="stop2608" style="stop-color:#252525;stop-opacity:1" offset="0.45366704"/>
+ <stop id="stop2602" style="stop-color:#000000;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient2257">
+ <stop id="stop2259" style="stop-color:#b4942a;stop-opacity:1" offset="0"/>
+ <stop id="stop2261" style="stop-color:#e4dcc9;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <radialGradient cx="305.02731" cy="-349" r="34.178398" id="path2489_1_" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.1658,0,0,-1,-353.77589,-376.98677)">
+ <stop id="stop44" style="stop-color:#4b73ad;stop-opacity:1" offset="0"/>
+ <stop id="stop46" style="stop-color:#80b3ff;stop-opacity:1" offset="1"/>
+ </radialGradient>
+ <radialGradient cx="354.85159" cy="-426" r="34.1791" id="path4248_1_" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,-1,-359.20739,-378.98677)">
+ <stop id="stop38" style="stop-color:#538bcf;stop-opacity:1" offset="0"/>
+ <stop id="stop40" style="stop-color:#80b3ff;stop-opacity:1" offset="1"/>
+ </radialGradient>
+ <radialGradient cx="354.85159" cy="-426" r="34.1791" id="path2471_1_" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,-1,-359.20739,-376.98677)">
+ <stop id="stop32" style="stop-color:#538bcf;stop-opacity:1" offset="0"/>
+ <stop id="stop34" style="stop-color:#80b3ff;stop-opacity:1" offset="1"/>
+ </radialGradient>
+ <linearGradient x1="354.68549" y1="-601.27588" x2="354.68549" y2="-503.146" id="front_1_" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,0,0,-0.6522,-359.42609,-340.63827)">
+ <stop id="stop20" style="stop-color:#b3d9ff;stop-opacity:1" offset="0"/>
+ <stop id="stop22" style="stop-color:#71a8f5;stop-opacity:1" offset="0.48629999"/>
+ <stop id="stop24" style="stop-color:#2c72c7;stop-opacity:1" offset="0.79879999"/>
+ <stop id="stop26" style="stop-color:#2c72c7;stop-opacity:1" offset="0.98000002"/>
+ <stop id="stop28" style="stop-color:#deebff;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient x1="63.4995" y1="-79.239304" x2="63.4995" y2="9.3268995" id="XMLID_1_" gradientUnits="userSpaceOnUse" gradientTransform="translate(-68.240592,44.013228)">
+ <stop id="stop6" style="stop-color:#73a3e7;stop-opacity:1" offset="0"/>
+ <stop id="stop8" style="stop-color:#83b1f5;stop-opacity:1" offset="0.13940001"/>
+ <stop id="stop10" style="stop-color:#bcd6fc;stop-opacity:1" offset="0.3689"/>
+ <stop id="stop12" style="stop-color:#659fee;stop-opacity:1" offset="0.5007"/>
+ <stop id="stop14" style="stop-color:#0066ff;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient x1="305.35327" y1="-33.695843" x2="273.56915" y2="122.91273" id="linearGradient3377" xlink:href="#linearGradient3303" gradientUnits="userSpaceOnUse"/>
+ <clipPath id="clipPath3367">
+ <path d="M 240.04888,9 C 237.09544,9 234.6888,11.347166 234.6888,14.32684 L 234.6888,111.25905 L 245.32884,121.91273 L 341.32804,121.91273 C 344.28149,121.91273 346.68786,119.56556 346.68786,116.58615 L 346.68786,14.32684 C 346.68786,11.347166 344.28149,9 341.32804,9 L 240.04888,9 z" id="path3369" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
+ </clipPath>
+ <linearGradient x1="-97.742668" y1="1937.9885" x2="-97.742668" y2="1895.421" id="linearGradient3359" xlink:href="#linearGradient3174" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.5599786,0,0,2.5827101,158.24797,-4821.2784)"/>
+ <linearGradient x1="-44.117901" y1="127.91319" x2="-43.770939" y2="119.03187" id="linearGradient3323" xlink:href="#linearGradient3317" gradientUnits="userSpaceOnUse"/>
+ <linearGradient x1="-44.802357" y1="71.894066" x2="-44.802357" y2="130.6806" id="linearGradient3309" xlink:href="#linearGradient3303" gradientUnits="userSpaceOnUse"/>
+ <linearGradient x1="92.574883" y1="122.13094" x2="53.747078" y2="76.315697" id="linearGradient3293" xlink:href="#linearGradient3270" gradientUnits="userSpaceOnUse" gradientTransform="translate(-106.875,0)"/>
+ <clipPath id="clipPath3289">
+ <path d="M -69.78125,80 C -70.381154,80 -70.875,80.470333 -70.875,81.0625 L -70.875,122.9375 C -70.875,123.52967 -70.381154,124 -69.78125,124 L -9.09375,124 C -8.493846,124 -8.000004,123.52967 -8,122.9375 L -8,81.0625 C -8,80.470333 -8.493846,80 -9.09375,80 L -69.78125,80 z" id="path3291" style="opacity:1;fill:url(#linearGradient3293);fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
+ </clipPath>
+ <linearGradient x1="92.574883" y1="122.13094" x2="53.747078" y2="76.315697" id="linearGradient3285" xlink:href="#linearGradient3270" gradientUnits="userSpaceOnUse" gradientTransform="translate(-106.875,0)"/>
+ <linearGradient x1="92.574883" y1="122.13094" x2="53.747078" y2="76.315697" id="linearGradient3276" xlink:href="#linearGradient3270" gradientUnits="userSpaceOnUse"/>
+ <linearGradient x1="-97.742668" y1="1937.9885" x2="-97.742668" y2="1895.421" id="linearGradient5823" xlink:href="#linearGradient3174" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.5599786,0,0,2.5827101,325.24891,-4887.3657)"/>
+ <linearGradient id="linearGradient3163">
+ <stop id="stop3165" style="stop-color:#6b696a;stop-opacity:1" offset="0"/>
+ <stop id="stop3167" style="stop-color:#6b696a;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient5810">
+ <stop id="stop5812" style="stop-color:#2e2a2b;stop-opacity:1" offset="0"/>
+ <stop id="stop5814" style="stop-color:#4c494a;stop-opacity:1" offset="0.33497536"/>
+ <stop id="stop5816" style="stop-color:#5b595a;stop-opacity:1" offset="0.66748768"/>
+ <stop id="stop5818" style="stop-color:#6b696a;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3206">
+ <stop id="stop3208" style="stop-color:#e3e2e6;stop-opacity:1" offset="0"/>
+ <stop id="stop3216" style="stop-color:#000000;stop-opacity:0.5411765" offset="0.5"/>
+ <stop id="stop3210" style="stop-color:#000000;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3270">
+ <stop id="stop3272" style="stop-color:#a0a1a5;stop-opacity:1" offset="0"/>
+ <stop id="stop3274" style="stop-color:#ffffff;stop-opacity:1" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3303">
+ <stop id="stop3305" style="stop-color:#ffffff;stop-opacity:1" offset="0"/>
+ <stop id="stop3307" style="stop-color:#ffffff;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3448">
+ <stop id="stop3450" style="stop-color:#cac7dc;stop-opacity:1" offset="0"/>
+ <stop id="stop3452" style="stop-color:#cac7dc;stop-opacity:0" offset="1"/>
+ </linearGradient>
+ </defs>
+ <rect width="58.91523" height="5.7999449" rx="0.72191608" ry="0.28855881" x="30.526026" y="117.92641" transform="matrix(1,0,0,1.0103538,0,-1.3128784)" id="rect27931" style="opacity:1;fill:url(#radialGradient27939);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1;filter:url(#filter27965)"/>
+ <path d="M 16,121 L 30,121 L 30,120 L 88.2,120 L 88.2,121 L 116,121 L 116,117 L 12.710706,110.00228 L 16,121 z" id="path3507" style="fill:url(#radialGradient3583);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3565)"/>
+ <path d="M 16,121 L 30,121 L 30,120 L 90,120 L 90,121 L 119,121 L 119,117 L 12.710706,116.00228 L 16,121 z" id="path3390" style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3444)"/>
+ <path d="M 11.361024,8 C 9.552302,8 8,9.625443 8.00094,11.32684 L 8.00094,110.25905 L 18.640979,120.91273 L 116.64018,120.91273 C 119.59363,120.91273 120,120.56556 120,117.58615 L 120,11.32684 C 120,9.513864 118.44194,8 116.64018,8 L 11.361024,8 z" id="rect2169" style="opacity:1;fill:url(#linearGradient3250);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
+ <path d="M 24.693828,-69.480939 L 24.693828,-12.824689 L 102.79383,-12.824689 L 102.79383,-69.480939 L 24.693828,-69.480939 z" transform="translate(0.3,76.483371)" clip-path="url(#clipPath3008)" id="rect2379" style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1;filter:url(#filter3105)"/>
+ <rect width="76" height="54" rx="1.2345035" ry="1.2345035" x="26" y="8" id="rect3325" style="opacity:1;fill:url(#radialGradient3083);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
+ <rect width="3.8491483" height="53.921757" rx="0.92457408" ry="0.92457408" x="26.150852" y="8" id="rect3490" style="opacity:0.61328125;fill:#cfdce7;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="3.7944784" height="53.467316" rx="0.89723921" ry="0.92457408" x="98" y="8.5" id="rect3488" style="opacity:0.546875;fill:#cfdce7;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="75.091873" height="0.7289294" x="26.018856" y="63.416855" id="rect3109" style="opacity:1;fill:url(#radialGradient3117);fill-opacity:1;stroke:none;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1;filter:url(#filter3726)"/>
+ <path d="M 12.375,-168.28125 C 9.4215521,-168.28125 8,-167.91718 8,-164.9375 L 8,-164.15625 C 8,-167.13593 9.4215521,-167.46875 12.375,-167.46875 L 115.625,-167.46875 C 118.57845,-167.46875 120,-167.13593 120,-164.15625 L 120,-164.9375 C 120,-167.91718 118.57845,-168.28125 115.625,-168.28125 L 12.375,-168.28125 z" transform="translate(0,176.85148)" clip-path="url(#clipPath3215)" id="path3209" style="opacity:1;fill:#000000;fill-opacity:0.35840705;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1;filter:url(#filter3371)"/>
+ <path d="M 11.375,8.600468 C 9.318588,8.707659 8,9.305748 8,11.912968 L 8,12.506718 C 8,9.527038 9.421552,9.194218 12.375,9.194218 L 115.625,9.194218 C 118.57845,9.194218 120,9.527038 120,12.506718 L 120,11.912968 C 120,8.933288 118.57845,8.600468 115.625,8.600468 L 12.375,8.600468 C 12.005819,8.600468 11.668773,8.585159 11.375,8.600468 z" id="path3381" style="opacity:1;fill:#ffffff;fill-opacity:0.46902651;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1;filter:url(#filter3417)"/>
+ <path d="M 104.309,8.626039 C 104.20787,8.626039 104.12054,8.662959 104.02775,8.688539 C 103.92346,8.717289 103.83617,8.757269 103.7465,8.813539 C 103.66099,8.867209 103.59613,8.926839 103.52775,9.001039 C 103.49917,9.032049 103.45912,9.060729 103.434,9.094789 C 103.4003,9.135389 103.36852,9.175429 103.34025,9.219789 C 103.24682,9.388799 103.184,9.576909 103.184,9.782289 L 103.184,61.157289 L 103.59025,61.157289 L 103.59025,9.782289 C 103.59025,9.570869 103.67915,9.392209 103.77775,9.219789 L 115.68399,9.219789 C 118.63744,9.219789 120.05899,9.552609 120.05899,12.532289 L 120.05899,11.938539 C 120.05899,9.331319 118.74326,8.761729 116.68399,8.657289 L 104.559,8.657289 C 104.61259,8.649219 104.65932,8.626039 104.71525,8.626039 L 104.309,8.626039 z M 11.090247,8.657289 C 9.465055,8.810999 8.128281,9.431649 8.090247,11.532289 C 8.211314,9.472429 9.849731,9.219789 12.433997,9.219789 L 24.433997,9.219789 C 24.540585,9.397089 24.590247,9.593059 24.590247,9.813539 L 24.590247,61.188539 L 24.996497,61.188539 L 24.996497,9.813539 C 24.996497,9.593059 24.946836,9.397089 24.840247,9.219789 C 24.794983,9.144499 24.744424,9.063799 24.683997,9.001039 C 24.59027,8.895459 24.46525,8.810179 24.340247,8.751039 C 24.223908,8.695989 24.105809,8.657289 23.965247,8.657289 L 23.465247,8.657289 L 11.090247,8.657289 z M 8.090247,11.532289 C 8.087808,11.667029 8.058997,11.791209 8.058997,11.938539 L 8.058997,12.532289 C 8.058997,12.159829 8.072952,11.826559 8.090247,11.532289 z" id="path3423" style="opacity:0.26953125;fill:url(#linearGradient3453);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1;filter:url(#filter3417)"/>
+ <path d="M 115.43114,8.6 C 118.38459,8.6 119.20614,8.932826 119.20614,11.9125 L 119.20614,115.19375 C 119.20614,118.17316 116.38459,120.50625 113.43114,120.50625 L 114.14989,120.50625 C 117.10334,120.50625 119.49364,118.17316 119.49364,115.19375 L 119.49364,11.9125 C 119.49364,8.932826 119.10334,8.6 116.14989,8.6 L 115.43114,8.6 z" id="path3455" style="opacity:1;fill:url(#linearGradient3474);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
+ <path d="M 32,16.122507 L 32,20.076133 L 96,20.076133 L 96,16.122507 L 32,16.122507 z" id="path3476" style="opacity:0.56521738;fill:#b2c6d9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
+ <path d="M 32.031703,32.228578 L 32.031703,36.118982 L 96.0317,36.118982 L 96.0317,32.228578 L 32.031703,32.228578 z" id="path3478" style="opacity:0.56521738;fill:#b2c6d9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
+ <path d="M 32,48.202135 L 32,52.202135 L 96,52.202135 L 96,48.202135 L 32,48.202135 z" id="path3480" style="opacity:0.56521738;fill:#b2c6d9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
+ <path d="M 101.42263,8 L 101.42263,61.80625 C 101.60563,61.704641 101.71697,61.555253 101.82888,61.40625 L 101.82888,8 L 101.42263,8 z" id="rect3492" style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <path d="M 26.108963,8 L 26.12263,61.300619 C 26.225712,61.500509 26.375099,61.638659 26.52888,61.770949 L 26.515213,8 L 26.108963,8 z" id="path3497" style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <path d="M 16.78125,130.4375 C 15.2983,130.4375 14.125,131.64205 14.125,133.125 L 14.125,175.15625 C 14.125,176.6392 15.298301,177.8125 16.78125,177.8125 L 16.9375,177.8125 C 16.529729,177.36613 16.25,176.78074 16.25,176.125 L 16.25,136.15625 C 16.25,134.76494 17.362011,133.625 18.75,133.625 L 84.34375,133.625 C 85.731742,133.625 86.84375,134.76494 86.84375,136.15625 L 86.84375,176.125 C 86.843752,176.78074 86.595271,177.36613 86.1875,177.8125 L 86.3125,177.8125 C 87.79545,177.8125 89.000002,176.6392 89,175.15625 L 89,133.125 C 89,131.64205 87.795451,130.4375 86.3125,130.4375 L 16.78125,130.4375 z" transform="translate(16.391305,-52.350088)" clip-path="url(#clipPath3199)" id="rect3626" style="fill:url(#linearGradient3712);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1;filter:url(#filter3659)"/>
+ <path d="M 34.53781,80.00784 C 33.118602,80.00784 31.97531,81.15113 31.97531,82.57034 L 32,119.71658 L 104,119.71658 L 103.97531,82.57034 C 103.97531,81.15113 102.83202,80.00784 101.41281,80.00784 L 34.53781,80.00784 z" id="path3680" style="opacity:1;fill:#000000;fill-opacity:0.12831858;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <path d="M 34.581018,80.0708 C 33.16181,80.0708 32.018518,81.2141 32.018518,82.6333 L 32.018518,119.81658 L 104,119.7 L 104,82.51672 C 104,81.09752 102.85671,79.95422 101.4375,79.95422 L 34.581018,80.0708 z" id="path3694" style="opacity:0.07421875;fill:url(#radialGradient3704);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <path d="M 52.9375,84 C 52.41795,84 52,84.417953 52,84.9375 L 52,108 L 40.9375,108 C 40.41795,108 40,108.41795 40,108.9375 L 40,115.0625 C 40,115.58205 40.417949,116 40.9375,116 L 52.9375,116 L 63.0625,116 C 63.58205,116 64,115.58205 64,115.0625 L 64,108.9375 L 64,84.9375 C 64,84.41795 63.582051,84 63.0625,84 L 52.9375,84 z" transform="matrix(1,0,0,1.0103538,0,-1.3128784)" id="rect3226" style="opacity:1;fill:url(#linearGradient3281);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1;filter:url(#filter3271)"/>
+ <rect width="69.516342" height="1.4999924" x="33.008656" y="77.600006" id="rect3669" style="opacity:0.37771738;fill:url(#radialGradient3692);fill-opacity:1;stroke:none;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <path d="M 103.91096,8.735486 L 103.16096,9.422986 L 104.09846,9.485486 L 103.91096,8.735486 z" id="path3086" style="fill:url(#radialGradient3094);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3120)"/>
+ <path d="M 23.91096,8.7354857 L 23.16096,9.4229857 L 24.09846,9.4854857 L 23.91096,8.7354857 z" transform="matrix(-1,0,0,1,48.05942,0)" id="path3124" style="fill:url(#radialGradient3126);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3120)"/>
+ <path d="M 112.08125,97.375 L 112.08125,104.09375 L 110.8625,104.09375 L 109.83125,104.09375 L 114.175,111.625 L 118.51875,104.09375 L 117.4875,104.09375 L 116.26875,104.09375 L 116.26875,97.375 L 114.175,97.375 L 112.08125,97.375 z" transform="matrix(0.9875769,0,0,1,0.716891,0.2)" id="path3128" style="opacity:0.453125;fill:url(#linearGradient3142);fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3192)"/>
+ <rect width="3.3578629" height="37.852272" x="87.693916" y="81.905701" transform="matrix(1,0,0,1.0103538,0,-1.3128784)" id="rect27981" style="opacity:0.296875;fill:url(#linearGradient27989);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1;filter:url(#filter28003)"/>
+ <path d="M 34.541973,80.321631 C 33.364723,80.321631 32.416973,81.279193 32.416973,82.468632 L 32.59375,120.53579 L 88,120.53579 L 88,82.325479 C 88,81.136039 87.17725,80.321631 86,80.321631 L 34.541973,80.321631 z M 40.9375,88.353886 L 55.0625,88.353886 C 55.582051,88.353886 56,88.776164 56,89.301092 L 56,110.89955 C 56,111.42448 55.58205,111.84676 55.0625,111.84676 L 40.9375,111.84676 C 40.417949,111.84676 40,111.42448 40,110.89955 L 40,89.301092 C 40,88.776166 40.41795,88.353886 40.9375,88.353886 z" id="rect3196" style="opacity:1;fill:url(#linearGradient3221);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <g transform="matrix(1,0,0,1.0103538,313.92339,17.714654)" clip-path="url(#clipPath25065)" id="g23527" style="opacity:0.18359375;filter:url(#filter27927)">
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-290.79343" y="84.707176" id="rect17371" style="opacity:0.1875;fill:url(#linearGradient17393);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-259.9552" y="91.262184" id="rect17373" style="opacity:0.1875;fill:url(#linearGradient17391);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-256.91937" y="109.06592" id="rect17375" style="opacity:0.1875;fill:url(#linearGradient17389);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-288.12012" y="76.49028" id="rect17377" style="opacity:0.46875;fill:url(#linearGradient17405);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-236.07872" y="96.053925" id="rect17379" style="opacity:0.46875;fill:url(#linearGradient17403);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-269.22446" y="89.085144" id="rect17381" style="opacity:0.46875;fill:url(#linearGradient17401);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.40353" y="67.112572" id="rect17407" style="opacity:0.1875;fill:url(#linearGradient18149);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-283.73615" y="80.639206" id="rect17409" style="opacity:0.1875;fill:url(#linearGradient18147);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-255.26816" y="84.380295" id="rect17411" style="opacity:0.1875;fill:url(#linearGradient18145);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-274.76822" y="106.13625" id="rect17413" style="opacity:0.46875;fill:url(#linearGradient18143);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-281.63443" y="102.51813" id="rect17415" style="opacity:0.46875;fill:url(#linearGradient18141);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-235.30339" y="71.39473" id="rect17417" style="opacity:0.46875;fill:url(#linearGradient18139);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-297.64175" y="100.63744" id="rect17419" style="opacity:0.1875;fill:url(#linearGradient18137);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-302.05591" y="65.363846" id="rect17421" style="opacity:0.1875;fill:url(#linearGradient18135);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-267.51465" y="69.323357" id="rect17423" style="opacity:0.1875;fill:url(#linearGradient18133);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-276.87137" y="99.903488" id="rect17425" style="opacity:0.46875;fill:url(#linearGradient18131);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-258.51654" y="101.47046" id="rect17427" style="opacity:0.46875;fill:url(#linearGradient18129);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-226.41283" y="75.500755" id="rect17429" style="opacity:0.46875;fill:url(#linearGradient18127);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-295.32373" y="69.585419" id="rect17431" style="opacity:0.1875;fill:url(#linearGradient18125);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-232.6416" y="71.46701" id="rect17433" style="opacity:0.1875;fill:url(#linearGradient18123);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-231.34415" y="77.415817" id="rect17435" style="opacity:0.1875;fill:url(#linearGradient18121);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-307.36627" y="105.92856" id="rect17437" style="opacity:0.46875;fill:url(#linearGradient18119);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-299.40512" y="62.602127" id="rect17439" style="opacity:0.46875;fill:url(#linearGradient18117);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-226.37361" y="99.838142" id="rect17441" style="opacity:0.46875;fill:url(#linearGradient18115);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-260.8649" y="56.113068" id="rect17443" style="opacity:0.1875;fill:url(#linearGradient18113);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-269.1181" y="74.343849" id="rect17445" style="opacity:0.1875;fill:url(#linearGradient18111);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-244.14183" y="98.228653" id="rect17447" style="opacity:0.1875;fill:url(#linearGradient18109);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-244.48334" y="67.98336" id="rect17449" style="opacity:0.46875;fill:url(#linearGradient18107);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-286.73779" y="64.299034" id="rect17451" style="opacity:0.46875;fill:url(#linearGradient18105);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-263.82462" y="69.00946" id="rect17453" style="opacity:0.46875;fill:url(#linearGradient18103);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-300.22101" y="79.247726" id="rect17455" style="opacity:0.1875;fill:url(#linearGradient18101);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-299.43381" y="104.01281" id="rect17457" style="opacity:0.1875;fill:url(#linearGradient18099);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-244.76028" y="105.31631" id="rect17459" style="opacity:0.1875;fill:url(#linearGradient18097);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-257.03159" y="65.75708" id="rect17461" style="opacity:0.46875;fill:url(#linearGradient18095);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-258.90118" y="69.971687" id="rect17463" style="opacity:0.46875;fill:url(#linearGradient18093);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-305.26633" y="97.308929" id="rect17465" style="opacity:0.46875;fill:url(#linearGradient18091);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-243.34489" y="57.138626" id="rect17467" style="opacity:0.1875;fill:url(#linearGradient18089);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.36011" y="79.709198" id="rect17469" style="opacity:0.1875;fill:url(#linearGradient18087);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-278.16724" y="103.81553" id="rect17471" style="opacity:0.1875;fill:url(#linearGradient18085);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-254.41679" y="77.795441" id="rect17473" style="opacity:0.46875;fill:url(#linearGradient18083);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-227.66385" y="87.002907" id="rect17475" style="opacity:0.46875;fill:url(#linearGradient18081);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-246.04214" y="101.45621" id="rect17477" style="opacity:0.46875;fill:url(#linearGradient18079);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-279.64142" y="79.221695" id="rect17479" style="opacity:0.1875;fill:url(#linearGradient18077);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-240.68213" y="85.522552" id="rect17481" style="opacity:0.1875;fill:url(#linearGradient18075);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-233.27867" y="66.150208" id="rect17483" style="opacity:0.1875;fill:url(#linearGradient18073);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-255.85204" y="98.996635" id="rect17485" style="opacity:0.46875;fill:url(#linearGradient18071);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-231.82623" y="62.490906" id="rect17487" style="opacity:0.46875;fill:url(#linearGradient18069);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-235.63985" y="103.67081" id="rect17489" style="opacity:0.46875;fill:url(#linearGradient18067);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.41724" y="103.57622" id="rect17491" style="opacity:0.1875;fill:url(#linearGradient18065);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-287.78891" y="110.85292" id="rect17493" style="opacity:0.1875;fill:url(#linearGradient18063);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-270.85229" y="87.596672" id="rect17495" style="opacity:0.1875;fill:url(#linearGradient18061);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-279.77243" y="77.090691" id="rect17497" style="opacity:0.46875;fill:url(#linearGradient18059);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-296.65201" y="61.369072" id="rect17499" style="opacity:0.46875;fill:url(#linearGradient18057);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-256.33041" y="97.866295" id="rect17501" style="opacity:0.46875;fill:url(#linearGradient18055);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.27512" y="60.602905" id="rect17503" style="opacity:0.1875;fill:url(#linearGradient18053);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-275.28024" y="98.59436" id="rect17505" style="opacity:0.1875;fill:url(#linearGradient18051);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-268.80908" y="104.19329" id="rect17507" style="opacity:0.1875;fill:url(#linearGradient18049);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-283.54272" y="94.834015" id="rect17509" style="opacity:0.46875;fill:url(#linearGradient18047);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.52655" y="96.503296" id="rect17511" style="opacity:0.46875;fill:url(#linearGradient18045);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-232.43588" y="62.813446" id="rect17513" style="opacity:0.46875;fill:url(#linearGradient18043);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-220.03261" y="90.780258" id="rect17515" style="opacity:0.1875;fill:url(#linearGradient18041);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-271.0979" y="99.709679" id="rect17517" style="opacity:0.1875;fill:url(#linearGradient18039);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-304.3273" y="97.007927" id="rect17519" style="opacity:0.1875;fill:url(#linearGradient18037);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-280.40613" y="63.924969" id="rect17521" style="opacity:0.46875;fill:url(#linearGradient18035);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-284.76562" y="97.57634" id="rect17523" style="opacity:0.46875;fill:url(#linearGradient18033);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-240.3656" y="91.897057" id="rect17525" style="opacity:0.46875;fill:url(#linearGradient18031);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-231.78883" y="88.074402" id="rect17527" style="opacity:0.1875;fill:url(#linearGradient18029);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-251.24213" y="102.16527" id="rect17529" style="opacity:0.1875;fill:url(#linearGradient18027);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-291.57928" y="92.647728" id="rect17531" style="opacity:0.1875;fill:url(#linearGradient18025);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-254.35078" y="60.315037" id="rect17533" style="opacity:0.46875;fill:url(#linearGradient18023);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-252.11502" y="90.288979" id="rect17535" style="opacity:0.46875;fill:url(#linearGradient18021);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-248.80861" y="109.21276" id="rect17537" style="opacity:0.46875;fill:url(#linearGradient18019);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-240.75543" y="72.276009" id="rect17539" style="opacity:0.1875;fill:url(#linearGradient18017);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.12875" y="57.977592" id="rect17541" style="opacity:0.1875;fill:url(#linearGradient18015);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-274.66217" y="67.495979" id="rect17543" style="opacity:0.1875;fill:url(#linearGradient18013);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-239.2243" y="69.823593" id="rect17545" style="opacity:0.46875;fill:url(#linearGradient18011);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-227.45792" y="68.959457" id="rect17547" style="opacity:0.46875;fill:url(#linearGradient18009);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-300.89233" y="76.257271" id="rect17549" style="opacity:0.46875;fill:url(#linearGradient18007);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-284.53769" y="90.623589" id="rect17551" style="opacity:0.1875;fill:url(#linearGradient18005);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-241.34969" y="97.305748" id="rect17553" style="opacity:0.1875;fill:url(#linearGradient18003);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-232.20572" y="82.862694" id="rect17555" style="opacity:0.1875;fill:url(#linearGradient18001);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-227.24118" y="79.64772" id="rect17557" style="opacity:0.46875;fill:url(#linearGradient17999);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-290.40161" y="79.395935" id="rect17559" style="opacity:0.46875;fill:url(#linearGradient17997);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-246.42935" y="74.803711" id="rect17561" style="opacity:0.46875;fill:url(#linearGradient17995);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-227.61072" y="62.135342" id="rect17563" style="opacity:0.1875;fill:url(#linearGradient17993);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-290.80521" y="84.323967" id="rect17565" style="opacity:0.1875;fill:url(#linearGradient17991);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-281.46295" y="66.882637" id="rect17567" style="opacity:0.1875;fill:url(#linearGradient17989);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-266.34781" y="83.370567" id="rect17569" style="opacity:0.46875;fill:url(#linearGradient17987);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-292.62222" y="67.94989" id="rect17571" style="opacity:0.46875;fill:url(#linearGradient17985);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-270.8093" y="82.059044" id="rect17573" style="opacity:0.46875;fill:url(#linearGradient17983);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-283.76419" y="60.068611" id="rect17575" style="opacity:0.1875;fill:url(#linearGradient17981);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-263.74551" y="87.762344" id="rect17577" style="opacity:0.1875;fill:url(#linearGradient17979);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-252.63034" y="77.666779" id="rect17579" style="opacity:0.1875;fill:url(#linearGradient17977);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-277.99472" y="76.894325" id="rect17581" style="opacity:0.46875;fill:url(#linearGradient17975);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-272.5246" y="107.37724" id="rect17583" style="opacity:0.46875;fill:url(#linearGradient17973);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.39462" y="106.59368" id="rect17585" style="opacity:0.46875;fill:url(#linearGradient17971);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-301.20239" y="77.640099" id="rect17587" style="opacity:0.1875;fill:url(#linearGradient17969);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-273.29407" y="60.569847" id="rect17589" style="opacity:0.1875;fill:url(#linearGradient17967);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-232.78375" y="88.356277" id="rect17591" style="opacity:0.1875;fill:url(#linearGradient17965);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-252.27098" y="96.711983" id="rect17593" style="opacity:0.46875;fill:url(#linearGradient17963);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-246.9855" y="79.303299" id="rect17595" style="opacity:0.46875;fill:url(#linearGradient17961);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-284.22263" y="87.287857" id="rect17597" style="opacity:0.46875;fill:url(#linearGradient17959);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-282.8721" y="70.975586" id="rect17599" style="opacity:0.1875;fill:url(#linearGradient17957);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-293.66968" y="76.547577" id="rect17601" style="opacity:0.1875;fill:url(#linearGradient17955);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-225.74731" y="68.751762" id="rect17603" style="opacity:0.1875;fill:url(#linearGradient17953);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.60339" y="72.070457" id="rect17605" style="opacity:0.46875;fill:url(#linearGradient17951);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-295.67972" y="72.224846" id="rect17607" style="opacity:0.46875;fill:url(#linearGradient17949);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-261.53369" y="66.220589" id="rect17609" style="opacity:0.46875;fill:url(#linearGradient17947);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.48569" y="70.287376" id="rect17611" style="opacity:0.1875;fill:url(#linearGradient17945);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-232.71796" y="106.46072" id="rect17613" style="opacity:0.1875;fill:url(#linearGradient17943);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-229.57463" y="65.69442" id="rect17615" style="opacity:0.1875;fill:url(#linearGradient17941);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-248.38248" y="92.94561" id="rect17617" style="opacity:0.46875;fill:url(#linearGradient17939);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-234.62196" y="110.52157" id="rect17619" style="opacity:0.46875;fill:url(#linearGradient17937);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-263.71622" y="67.948135" id="rect17621" style="opacity:0.46875;fill:url(#linearGradient17935);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-304.85336" y="87.741013" id="rect17623" style="opacity:0.1875;fill:url(#linearGradient17933);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-276.97302" y="72.193329" id="rect17625" style="opacity:0.1875;fill:url(#linearGradient17931);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-268.71017" y="65.334404" id="rect17627" style="opacity:0.1875;fill:url(#linearGradient17929);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-217.20427" y="98.32988" id="rect17629" style="opacity:0.46875;fill:url(#linearGradient17927);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-276.47168" y="108.77326" id="rect17631" style="opacity:0.46875;fill:url(#linearGradient25071);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-238.04443" y="82.517944" id="rect17633" style="opacity:0.46875;fill:url(#linearGradient25073);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-244.30357" y="108.89568" id="rect17635" style="opacity:0.1875;fill:url(#linearGradient25075);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-239.16194" y="84.146629" id="rect17637" style="opacity:0.1875;fill:url(#linearGradient25077);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-273.72382" y="64.275902" id="rect17639" style="opacity:0.1875;fill:url(#linearGradient25079);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-228.20195" y="109.68244" id="rect17641" style="opacity:0.46875;fill:url(#linearGradient25081);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-244.8898" y="63.208668" id="rect17643" style="opacity:0.46875;fill:url(#linearGradient25083);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-293.91269" y="98.313393" id="rect17645" style="opacity:0.46875;fill:url(#linearGradient25085);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-273.66534" y="85.114136" id="rect17647" style="opacity:0.1875;fill:url(#linearGradient25087);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-252.74916" y="66.932426" id="rect17649" style="opacity:0.1875;fill:url(#linearGradient25089);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-296.73309" y="77.135086" id="rect17651" style="opacity:0.1875;fill:url(#linearGradient25091);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-267.95505" y="62.283104" id="rect17653" style="opacity:0.46875;fill:url(#linearGradient25093);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-232.14812" y="87.140076" id="rect17655" style="opacity:0.46875;fill:url(#linearGradient25095);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-271.00018" y="55.974785" id="rect17657" style="opacity:0.46875;fill:url(#linearGradient25097);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-297.79782" y="102.01984" id="rect17659" style="opacity:0.1875;fill:url(#linearGradient25099);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-248.791" y="61.252872" id="rect17661" style="opacity:0.1875;fill:url(#linearGradient25101);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.85733" y="63.683193" id="rect17663" style="opacity:0.1875;fill:url(#linearGradient25103);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-303.50882" y="101.78488" id="rect17665" style="opacity:0.46875;fill:url(#linearGradient25105);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-240.83641" y="77.041458" id="rect17667" style="opacity:0.46875;fill:url(#linearGradient25107);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-244.76694" y="95.283287" id="rect17669" style="opacity:0.46875;fill:url(#linearGradient25109);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-252.42992" y="55.774399" id="rect17671" style="opacity:0.1875;fill:url(#linearGradient25111);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-230.80057" y="101.06035" id="rect17673" style="opacity:0.1875;fill:url(#linearGradient25113);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-298.56604" y="109.198" id="rect17675" style="opacity:0.1875;fill:url(#linearGradient25115);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-284.48489" y="107.00368" id="rect17677" style="opacity:0.46875;fill:url(#linearGradient25117);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-273.83386" y="66.630585" id="rect17679" style="opacity:0.46875;fill:url(#linearGradient25119);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-277.42801" y="66.899437" id="rect17681" style="opacity:0.46875;fill:url(#linearGradient25121);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-269.09375" y="56.061657" id="rect17683" style="opacity:0.1875;fill:url(#linearGradient25123);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-294.44736" y="68.035645" id="rect17685" style="opacity:0.1875;fill:url(#linearGradient25125);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-228.10535" y="55.856274" id="rect17687" style="opacity:0.1875;fill:url(#linearGradient25127);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-278.00189" y="86.851196" id="rect17689" style="opacity:0.46875;fill:url(#linearGradient25129);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-256.19824" y="110.05563" id="rect17691" style="opacity:0.46875;fill:url(#linearGradient25131);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-287.13065" y="60.523964" id="rect17693" style="opacity:0.46875;fill:url(#linearGradient25133);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-253.95091" y="103.54987" id="rect17695" style="opacity:0.1875;fill:url(#linearGradient25135);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-235.0334" y="88.186096" id="rect17697" style="opacity:0.1875;fill:url(#linearGradient25137);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-265.44974" y="94.422592" id="rect17699" style="opacity:0.1875;fill:url(#linearGradient25139);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-279.04202" y="103.96825" id="rect17701" style="opacity:0.46875;fill:url(#linearGradient25141);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-285.09955" y="84.472305" id="rect17703" style="opacity:0.46875;fill:url(#linearGradient25143);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-294.48126" y="101.18851" id="rect17705" style="opacity:0.46875;fill:url(#linearGradient25145);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-272.41995" y="90.168793" id="rect17707" style="opacity:0.1875;fill:url(#linearGradient25147);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-226.17566" y="99.90905" id="rect17709" style="opacity:0.1875;fill:url(#linearGradient25149);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-272.65631" y="86.153412" id="rect17711" style="opacity:0.1875;fill:url(#linearGradient25151);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-303.19516" y="79.081665" id="rect17713" style="opacity:0.46875;fill:url(#linearGradient25153);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-260.97839" y="67.344398" id="rect17715" style="opacity:0.46875;fill:url(#linearGradient25155);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-305.65546" y="93.259796" id="rect17717" style="opacity:0.46875;fill:url(#linearGradient25157);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-291.2243" y="88.690613" id="rect17719" style="opacity:0.1875;fill:url(#linearGradient25159);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-300.58456" y="59.647064" id="rect17721" style="opacity:0.1875;fill:url(#linearGradient25161);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-253.12515" y="73.111664" id="rect17723" style="opacity:0.1875;fill:url(#linearGradient25163);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-280.59235" y="91.303307" id="rect17725" style="opacity:0.46875;fill:url(#linearGradient25165);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-246.509" y="67.325012" id="rect17727" style="opacity:0.46875;fill:url(#linearGradient25167);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-228.42133" y="93.896034" id="rect17729" style="opacity:0.46875;fill:url(#linearGradient25169);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-271.88492" y="90.879166" id="rect17731" style="opacity:0.1875;fill:url(#linearGradient25171);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-263.34952" y="103.47399" id="rect17733" style="opacity:0.1875;fill:url(#linearGradient25173);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-272.96045" y="106.24575" id="rect17735" style="opacity:0.1875;fill:url(#linearGradient25175);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-303.68954" y="55.381527" id="rect17737" style="opacity:0.46875;fill:url(#linearGradient25177);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-302.11661" y="89.104057" id="rect17739" style="opacity:0.46875;fill:url(#linearGradient25179);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-295.8905" y="102.75126" id="rect17741" style="opacity:0.46875;fill:url(#linearGradient25181);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-224.67885" y="81.184441" id="rect17743" style="opacity:0.1875;fill:url(#linearGradient25183);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-273.11703" y="89.035004" id="rect17745" style="opacity:0.1875;fill:url(#linearGradient25185);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-295.9751" y="100.35271" id="rect17747" style="opacity:0.1875;fill:url(#linearGradient25187);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-271.15137" y="80.75869" id="rect17749" style="opacity:0.46875;fill:url(#linearGradient25189);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-297.43188" y="77.223198" id="rect17751" style="opacity:0.46875;fill:url(#linearGradient25191);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-289.05075" y="72.696106" id="rect17753" style="opacity:0.46875;fill:url(#linearGradient25193);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.19749" y="106.62489" id="rect17755" style="opacity:0.1875;fill:url(#linearGradient25195);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-276.13745" y="69.633575" id="rect17757" style="opacity:0.1875;fill:url(#linearGradient25197);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-230.53471" y="62.632496" id="rect17759" style="opacity:0.1875;fill:url(#linearGradient25199);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-297.95056" y="85.574959" id="rect17761" style="opacity:0.46875;fill:url(#linearGradient25201);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-305.36328" y="101.6518" id="rect17763" style="opacity:0.46875;fill:url(#linearGradient25203);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-286.15607" y="92.363571" id="rect17765" style="opacity:0.46875;fill:url(#linearGradient25205);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-264.91437" y="102.87209" id="rect17767" style="opacity:0.1875;fill:url(#linearGradient25207);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-299.12769" y="68.443901" id="rect17769" style="opacity:0.1875;fill:url(#linearGradient25209);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-277.91699" y="81.518745" id="rect17771" style="opacity:0.1875;fill:url(#linearGradient25211);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-225.47676" y="99.235146" id="rect17773" style="opacity:0.46875;fill:url(#linearGradient25213);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.99631" y="104.32848" id="rect17775" style="opacity:0.46875;fill:url(#linearGradient25215);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-277.45819" y="96.042809" id="rect17777" style="opacity:0.46875;fill:url(#linearGradient25217);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-298.11304" y="91.464439" id="rect18151" style="opacity:0.1875;fill:url(#linearGradient25219);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-265.72809" y="57.985466" id="rect18153" style="opacity:0.1875;fill:url(#linearGradient25221);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-274.04907" y="92.447624" id="rect18155" style="opacity:0.1875;fill:url(#linearGradient25223);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-292.48605" y="87.082649" id="rect18157" style="opacity:0.46875;fill:url(#linearGradient25225);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-225.46774" y="71.132614" id="rect18159" style="opacity:0.46875;fill:url(#linearGradient25227);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-294.54868" y="69.479034" id="rect18161" style="opacity:0.46875;fill:url(#linearGradient25229);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-235.54684" y="71.409157" id="rect18163" style="opacity:0.1875;fill:url(#linearGradient25231);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-281.44562" y="88.801552" id="rect18165" style="opacity:0.1875;fill:url(#linearGradient25233);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-260.61575" y="79.20295" id="rect18167" style="opacity:0.1875;fill:url(#linearGradient25235);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-244.08376" y="67.184708" id="rect18169" style="opacity:0.46875;fill:url(#linearGradient25237);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-225.26695" y="68.254173" id="rect18171" style="opacity:0.46875;fill:url(#linearGradient25239);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-295.67917" y="88.566643" id="rect18173" style="opacity:0.46875;fill:url(#linearGradient25241);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-221.37273" y="61.108807" id="rect18175" style="opacity:0.1875;fill:url(#linearGradient25243);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-272.89822" y="107.33531" id="rect18177" style="opacity:0.1875;fill:url(#linearGradient25245);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-276.91226" y="76.051247" id="rect18179" style="opacity:0.1875;fill:url(#linearGradient25247);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-262.29782" y="97.771523" id="rect18181" style="opacity:0.46875;fill:url(#linearGradient25249);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-242.38615" y="90.817757" id="rect18183" style="opacity:0.46875;fill:url(#linearGradient25251);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-261.09634" y="77.677231" id="rect18185" style="opacity:0.46875;fill:url(#linearGradient25253);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-296.38574" y="62.671509" id="rect18187" style="opacity:0.1875;fill:url(#linearGradient25255);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-230.63821" y="75.019676" id="rect18189" style="opacity:0.1875;fill:url(#linearGradient25257);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-276.96573" y="58.94054" id="rect18191" style="opacity:0.1875;fill:url(#linearGradient25259);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-290.89044" y="63.18137" id="rect18193" style="opacity:0.46875;fill:url(#linearGradient25261);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.22519" y="85.285896" id="rect18195" style="opacity:0.46875;fill:url(#linearGradient25263);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-277.96872" y="86.968376" id="rect18197" style="opacity:0.46875;fill:url(#linearGradient25265);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-227.8423" y="111.32892" id="rect18199" style="opacity:0.1875;fill:url(#linearGradient25267);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-234.47272" y="110.46347" id="rect18201" style="opacity:0.1875;fill:url(#linearGradient25269);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-261.92764" y="74.383469" id="rect18203" style="opacity:0.1875;fill:url(#linearGradient25271);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-269.07919" y="84.876595" id="rect18205" style="opacity:0.46875;fill:url(#linearGradient25273);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-269.95041" y="86.066269" id="rect18207" style="opacity:0.46875;fill:url(#linearGradient25275);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-270.95801" y="92.406303" id="rect18209" style="opacity:0.46875;fill:url(#linearGradient25277);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-264.59933" y="70.233521" id="rect18211" style="opacity:0.1875;fill:url(#linearGradient25279);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.10513" y="80.002182" id="rect18213" style="opacity:0.1875;fill:url(#linearGradient25281);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-226.47241" y="95.684586" id="rect18215" style="opacity:0.1875;fill:url(#linearGradient25283);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-230.99527" y="99.055901" id="rect18217" style="opacity:0.46875;fill:url(#linearGradient25285);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-271.02789" y="85.807312" id="rect18219" style="opacity:0.46875;fill:url(#linearGradient25287);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-298.38324" y="90.704887" id="rect18221" style="opacity:0.46875;fill:url(#linearGradient25289);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-283.76099" y="62.290359" id="rect18223" style="opacity:0.1875;fill:url(#linearGradient25291);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-234.90051" y="75.048828" id="rect18225" style="opacity:0.1875;fill:url(#linearGradient25293);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-241.98842" y="90.335617" id="rect18227" style="opacity:0.1875;fill:url(#linearGradient25295);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-270.44897" y="106.12038" id="rect18229" style="opacity:0.46875;fill:url(#linearGradient25297);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-259.91562" y="92.317909" id="rect18231" style="opacity:0.46875;fill:url(#linearGradient25299);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-245.61569" y="100.5391" id="rect18233" style="opacity:0.46875;fill:url(#linearGradient25301);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-296.33392" y="63.624489" id="rect18235" style="opacity:0.1875;fill:url(#linearGradient25303);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-229.36273" y="72.056847" id="rect18237" style="opacity:0.1875;fill:url(#linearGradient25305);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-280.8735" y="110.21268" id="rect18239" style="opacity:0.1875;fill:url(#linearGradient25307);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-293.63394" y="74.366173" id="rect18241" style="opacity:0.46875;fill:url(#linearGradient25309);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-265.0997" y="79.780212" id="rect18243" style="opacity:0.46875;fill:url(#linearGradient25311);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-270.09283" y="101.99254" id="rect18245" style="opacity:0.46875;fill:url(#linearGradient25313);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-286.76373" y="109.07452" id="rect18247" style="opacity:0.1875;fill:url(#linearGradient25315);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-268.97629" y="98.64402" id="rect18249" style="opacity:0.1875;fill:url(#linearGradient25317);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-279.63684" y="89.344994" id="rect18251" style="opacity:0.1875;fill:url(#linearGradient25319);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-244.27385" y="81.641121" id="rect18253" style="opacity:0.46875;fill:url(#linearGradient25321);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-276.25494" y="109.51963" id="rect18255" style="opacity:0.46875;fill:url(#linearGradient25323);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-245.37708" y="108.9928" id="rect18257" style="opacity:0.46875;fill:url(#linearGradient25325);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-235.19186" y="110.50214" id="rect18259" style="opacity:0.1875;fill:url(#linearGradient25327);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-297.0481" y="93.95919" id="rect18261" style="opacity:0.1875;fill:url(#linearGradient25329);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-229.78215" y="66.527237" id="rect18263" style="opacity:0.1875;fill:url(#linearGradient25331);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-284.03275" y="86.100006" id="rect18265" style="opacity:0.46875;fill:url(#linearGradient25333);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.62799" y="104.80125" id="rect18267" style="opacity:0.46875;fill:url(#linearGradient25335);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-251.83594" y="70.125221" id="rect18269" style="opacity:0.46875;fill:url(#linearGradient25337);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-270.16574" y="84.331985" id="rect18271" style="opacity:0.1875;fill:url(#linearGradient25339);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-292.98331" y="96.91481" id="rect18273" style="opacity:0.1875;fill:url(#linearGradient25341);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-231.74715" y="78.689095" id="rect18275" style="opacity:0.1875;fill:url(#linearGradient25343);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-306.39941" y="59.077904" id="rect18277" style="opacity:0.46875;fill:url(#linearGradient25345);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-227.0076" y="95.745003" id="rect18279" style="opacity:0.46875;fill:url(#linearGradient25347);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-304.77591" y="102.81136" id="rect18281" style="opacity:0.46875;fill:url(#linearGradient25349);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-246.87979" y="69.811943" id="rect18283" style="opacity:0.1875;fill:url(#linearGradient25351);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-242.16574" y="87.382187" id="rect18285" style="opacity:0.1875;fill:url(#linearGradient25353);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-270.87027" y="92.79483" id="rect18287" style="opacity:0.1875;fill:url(#linearGradient25355);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-257.38815" y="90.872025" id="rect18289" style="opacity:0.46875;fill:url(#linearGradient25357);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.0155" y="79.296844" id="rect18291" style="opacity:0.46875;fill:url(#linearGradient25359);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-242.74591" y="104.70981" id="rect18293" style="opacity:0.46875;fill:url(#linearGradient25361);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-240.28142" y="62.454266" id="rect18295" style="opacity:0.1875;fill:url(#linearGradient25363);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-285.72321" y="60.415363" id="rect18297" style="opacity:0.1875;fill:url(#linearGradient25365);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-251.50877" y="107.67831" id="rect18299" style="opacity:0.1875;fill:url(#linearGradient25367);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-270.79721" y="90.158287" id="rect18301" style="opacity:0.46875;fill:url(#linearGradient25369);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-290.21603" y="76.256042" id="rect18303" style="opacity:0.46875;fill:url(#linearGradient25371);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-282.3176" y="104.62031" id="rect18305" style="opacity:0.46875;fill:url(#linearGradient25373);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-222.24321" y="75.208" id="rect18307" style="opacity:0.1875;fill:url(#linearGradient25375);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-254.33498" y="99.272896" id="rect18309" style="opacity:0.1875;fill:url(#linearGradient25377);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-270.62555" y="84.156494" id="rect18311" style="opacity:0.1875;fill:url(#linearGradient25379);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-249.17912" y="97.841927" id="rect18313" style="opacity:0.46875;fill:url(#linearGradient25381);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-294.68881" y="105.77716" id="rect18315" style="opacity:0.46875;fill:url(#linearGradient25383);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-290.20544" y="62.652821" id="rect18317" style="opacity:0.46875;fill:url(#linearGradient25385);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-264.56491" y="96.323288" id="rect18319" style="opacity:0.1875;fill:url(#linearGradient25387);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-258.96753" y="55.495941" id="rect18321" style="opacity:0.1875;fill:url(#linearGradient25389);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-292.63147" y="68.193329" id="rect18323" style="opacity:0.1875;fill:url(#linearGradient25391);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-230.42424" y="66.986328" id="rect18325" style="opacity:0.46875;fill:url(#linearGradient25393);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-233.0945" y="93.264801" id="rect18327" style="opacity:0.46875;fill:url(#linearGradient25395);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-301.63403" y="98.204636" id="rect18329" style="opacity:0.46875;fill:url(#linearGradient25397);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-288.23471" y="74.236923" id="rect18331" style="opacity:0.1875;fill:url(#linearGradient25399);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-236.69228" y="100.62784" id="rect18333" style="opacity:0.1875;fill:url(#linearGradient25401);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-230.0683" y="80.08036" id="rect18335" style="opacity:0.1875;fill:url(#linearGradient25403);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-291.62607" y="64.716675" id="rect18337" style="opacity:0.46875;fill:url(#linearGradient25405);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-239.75874" y="107.29673" id="rect18339" style="opacity:0.46875;fill:url(#linearGradient25407);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-232.67427" y="99.356606" id="rect18341" style="opacity:0.46875;fill:url(#linearGradient25409);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-234.71683" y="65.645309" id="rect18343" style="opacity:0.1875;fill:url(#linearGradient25411);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-272.67639" y="74.896492" id="rect18345" style="opacity:0.1875;fill:url(#linearGradient25413);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-253.01279" y="58.992363" id="rect18347" style="opacity:0.1875;fill:url(#linearGradient25415);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-234.80728" y="94.758575" id="rect18349" style="opacity:0.46875;fill:url(#linearGradient25417);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-236.86696" y="100.33606" id="rect18351" style="opacity:0.46875;fill:url(#linearGradient25419);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-245.45459" y="104.54546" id="rect18353" style="opacity:0.46875;fill:url(#linearGradient25421);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-274.36459" y="57.800591" id="rect18355" style="opacity:0.1875;fill:url(#linearGradient25423);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-226.97002" y="98.724579" id="rect18357" style="opacity:0.1875;fill:url(#linearGradient25425);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-250.95309" y="84.094955" id="rect18359" style="opacity:0.1875;fill:url(#linearGradient25427);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-240.06047" y="110.67622" id="rect18361" style="opacity:0.46875;fill:url(#linearGradient25429);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-262.89478" y="94.46965" id="rect18363" style="opacity:0.46875;fill:url(#linearGradient25431);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-237.35883" y="83.683098" id="rect18365" style="opacity:0.46875;fill:url(#linearGradient25433);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-271.77145" y="75.577515" id="rect18367" style="opacity:0.1875;fill:url(#linearGradient25435);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-229.45178" y="95.948578" id="rect18369" style="opacity:0.1875;fill:url(#linearGradient25437);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-245.85594" y="63.876396" id="rect18371" style="opacity:0.1875;fill:url(#linearGradient25439);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-236.77063" y="72.637779" id="rect18373" style="opacity:0.46875;fill:url(#linearGradient25441);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-284.58069" y="106.60091" id="rect18375" style="opacity:0.46875;fill:url(#linearGradient25443);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-268.90054" y="60.200027" id="rect18377" style="opacity:0.46875;fill:url(#linearGradient25445);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-222.53291" y="89.377716" id="rect18379" style="opacity:0.1875;fill:url(#linearGradient25447);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-234.34618" y="83.512108" id="rect18381" style="opacity:0.1875;fill:url(#linearGradient25449);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-295.69232" y="66.480316" id="rect18383" style="opacity:0.1875;fill:url(#linearGradient25451);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-297.35358" y="69.703491" id="rect18385" style="opacity:0.46875;fill:url(#linearGradient25453);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-297.26117" y="56.466759" id="rect18387" style="opacity:0.46875;fill:url(#linearGradient25455);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-242.90395" y="81.527306" id="rect18389" style="opacity:0.46875;fill:url(#linearGradient25457);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-280.25595" y="79.487236" id="rect18391" style="opacity:0.1875;fill:url(#linearGradient25459);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-238.13121" y="88.470932" id="rect18393" style="opacity:0.1875;fill:url(#linearGradient25461);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-250.26227" y="86.610855" id="rect18395" style="opacity:0.1875;fill:url(#linearGradient25463);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-257.04407" y="91.484947" id="rect18397" style="opacity:0.46875;fill:url(#linearGradient25465);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-255.31018" y="60.714272" id="rect18399" style="opacity:0.46875;fill:url(#linearGradient25467);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-250.26987" y="76.319176" id="rect18401" style="opacity:0.46875;fill:url(#linearGradient25469);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-271.81497" y="110.69751" id="rect18403" style="opacity:0.1875;fill:url(#linearGradient25471);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-226.56194" y="83.316528" id="rect18405" style="opacity:0.1875;fill:url(#linearGradient25473);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-266.77362" y="75.160622" id="rect18407" style="opacity:0.1875;fill:url(#linearGradient25475);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-265.95584" y="89.178764" id="rect18409" style="opacity:0.46875;fill:url(#linearGradient25477);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-255.21521" y="76.066673" id="rect18411" style="opacity:0.46875;fill:url(#linearGradient25479);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-299.20267" y="110.82329" id="rect18413" style="opacity:0.46875;fill:url(#linearGradient25481);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-252.90068" y="93.641579" id="rect18415" style="opacity:0.1875;fill:url(#linearGradient25483);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-236.98462" y="63.597" id="rect18417" style="opacity:0.1875;fill:url(#linearGradient25485);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-259.41406" y="77.615059" id="rect18419" style="opacity:0.1875;fill:url(#linearGradient25487);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-306.41394" y="84.300209" id="rect18421" style="opacity:0.46875;fill:url(#linearGradient25489);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-248.11342" y="100.78419" id="rect18423" style="opacity:0.46875;fill:url(#linearGradient25491);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-248.6394" y="102.52259" id="rect18425" style="opacity:0.46875;fill:url(#linearGradient25493);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-223.46675" y="64.784454" id="rect18427" style="opacity:0.1875;fill:url(#linearGradient25495);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-231.46829" y="98.256683" id="rect18429" style="opacity:0.1875;fill:url(#linearGradient25497);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-249.84923" y="102.14691" id="rect18431" style="opacity:0.1875;fill:url(#linearGradient25499);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.61346" y="62.031593" id="rect18433" style="opacity:0.46875;fill:url(#linearGradient25501);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-301.99881" y="81.942253" id="rect18435" style="opacity:0.46875;fill:url(#linearGradient25503);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-233.75516" y="80.842926" id="rect18437" style="opacity:0.46875;fill:url(#linearGradient25505);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-293.5466" y="83.51545" id="rect18439" style="opacity:0.1875;fill:url(#linearGradient25507);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-231.53737" y="67.027702" id="rect18441" style="opacity:0.1875;fill:url(#linearGradient25509);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-233.38284" y="103.22467" id="rect18443" style="opacity:0.1875;fill:url(#linearGradient25511);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-224.94073" y="62.307873" id="rect18445" style="opacity:0.46875;fill:url(#linearGradient25513);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-268.1153" y="78.606285" id="rect18447" style="opacity:0.46875;fill:url(#linearGradient25515);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-272.53516" y="98.190308" id="rect18449" style="opacity:0.46875;fill:url(#linearGradient25517);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-228.46397" y="68.309998" id="rect18451" style="opacity:0.1875;fill:url(#linearGradient25519);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-280.96036" y="68.613037" id="rect18453" style="opacity:0.1875;fill:url(#linearGradient25521);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-233.97824" y="70.057411" id="rect18455" style="opacity:0.1875;fill:url(#linearGradient25523);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-267.00824" y="107.40057" id="rect18457" style="opacity:0.46875;fill:url(#linearGradient25525);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-243.42072" y="109.3634" id="rect18459" style="opacity:0.46875;fill:url(#linearGradient25527);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-292.83664" y="65.596466" id="rect18461" style="opacity:0.46875;fill:url(#linearGradient25529);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-222.58488" y="86.885582" id="rect18463" style="opacity:0.1875;fill:url(#linearGradient25531);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-303.64371" y="81.863777" id="rect18465" style="opacity:0.1875;fill:url(#linearGradient25533);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-301.68872" y="98.258194" id="rect18467" style="opacity:0.1875;fill:url(#linearGradient25535);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-281.73193" y="57.614296" id="rect18469" style="opacity:0.46875;fill:url(#linearGradient25537);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.63004" y="84.332832" id="rect18471" style="opacity:0.46875;fill:url(#linearGradient25539);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-238.7637" y="69.674995" id="rect18473" style="opacity:0.46875;fill:url(#linearGradient25541);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-269.64343" y="82.495186" id="rect18475" style="opacity:0.1875;fill:url(#linearGradient25543);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-267.85864" y="59.185127" id="rect18477" style="opacity:0.1875;fill:url(#linearGradient25545);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-271.09042" y="74.726555" id="rect18479" style="opacity:0.1875;fill:url(#linearGradient25547);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-270.59351" y="73.606941" id="rect18481" style="opacity:0.46875;fill:url(#linearGradient25549);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-298.58517" y="55.815166" id="rect18483" style="opacity:0.46875;fill:url(#linearGradient25551);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-273.51108" y="80.653122" id="rect18485" style="opacity:0.46875;fill:url(#linearGradient25553);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-263.96866" y="89.247513" id="rect18487" style="opacity:0.1875;fill:url(#linearGradient25555);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-266.88388" y="80.690773" id="rect18489" style="opacity:0.1875;fill:url(#linearGradient25557);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-290.79605" y="110.67844" id="rect18491" style="opacity:0.1875;fill:url(#linearGradient25559);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-252.51732" y="75.380501" id="rect18493" style="opacity:0.46875;fill:url(#linearGradient25561);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-226.51567" y="103.38647" id="rect18495" style="opacity:0.46875;fill:url(#linearGradient25563);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.96869" y="56.758343" id="rect18497" style="opacity:0.46875;fill:url(#linearGradient25565);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-250.85594" y="102.63554" id="rect18499" style="opacity:0.1875;fill:url(#linearGradient25567);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-251.52267" y="109.84169" id="rect18501" style="opacity:0.1875;fill:url(#linearGradient25569);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-227.80392" y="95.125671" id="rect18503" style="opacity:0.1875;fill:url(#linearGradient25571);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-259.16461" y="77.213577" id="rect18505" style="opacity:0.46875;fill:url(#linearGradient25573);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-258.90277" y="95.847725" id="rect18507" style="opacity:0.46875;fill:url(#linearGradient25575);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-255.6911" y="76.100128" id="rect18509" style="opacity:0.46875;fill:url(#linearGradient25577);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-249.52742" y="102.68053" id="rect18511" style="opacity:0.1875;fill:url(#linearGradient25579);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-256.22385" y="67.563797" id="rect18513" style="opacity:0.1875;fill:url(#linearGradient25581);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-284.05579" y="85.764542" id="rect18515" style="opacity:0.1875;fill:url(#linearGradient25583);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-293.3392" y="60.742577" id="rect18517" style="opacity:0.46875;fill:url(#linearGradient25585);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-282.12518" y="68.472763" id="rect18519" style="opacity:0.46875;fill:url(#linearGradient25587);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-240.16914" y="65.996407" id="rect18521" style="opacity:0.46875;fill:url(#linearGradient25589);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-218.75221" y="86.193619" id="rect18523" style="opacity:0.1875;fill:url(#linearGradient25591);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-241.14877" y="101.30114" id="rect18525" style="opacity:0.1875;fill:url(#linearGradient25593);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-272.47665" y="88.885841" id="rect18527" style="opacity:0.1875;fill:url(#linearGradient25595);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-241.04015" y="101.66671" id="rect18529" style="opacity:0.46875;fill:url(#linearGradient25597);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-239.33102" y="58.575886" id="rect18531" style="opacity:0.46875;fill:url(#linearGradient25599);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-229.40578" y="57.532642" id="rect18533" style="opacity:0.46875;fill:url(#linearGradient25601);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-221.9127" y="57.526257" id="rect18919" style="opacity:0.1875;fill:url(#linearGradient25603);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-234.32135" y="97.074615" id="rect18921" style="opacity:0.1875;fill:url(#linearGradient25605);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-263.4538" y="66.162369" id="rect18923" style="opacity:0.1875;fill:url(#linearGradient25607);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-255.92183" y="91.841202" id="rect18925" style="opacity:0.46875;fill:url(#linearGradient25609);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.95801" y="62.992939" id="rect18927" style="opacity:0.46875;fill:url(#linearGradient25611);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-247.78813" y="60.985554" id="rect18929" style="opacity:0.46875;fill:url(#linearGradient25613);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-226.08983" y="85.340904" id="rect18931" style="opacity:0.1875;fill:url(#linearGradient25615);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-297.02982" y="87.608078" id="rect18933" style="opacity:0.1875;fill:url(#linearGradient25617);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-254.55878" y="66.718971" id="rect18935" style="opacity:0.1875;fill:url(#linearGradient25619);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-227.55739" y="84.136307" id="rect18937" style="opacity:0.46875;fill:url(#linearGradient25621);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-241.86101" y="83.323425" id="rect18939" style="opacity:0.46875;fill:url(#linearGradient25623);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-278.49765" y="99.488594" id="rect18941" style="opacity:0.46875;fill:url(#linearGradient25625);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-234.55836" y="100.24726" id="rect18943" style="opacity:0.1875;fill:url(#linearGradient25627);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-233.19774" y="92.854179" id="rect18945" style="opacity:0.1875;fill:url(#linearGradient25629);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-276.54205" y="61.351452" id="rect18947" style="opacity:0.1875;fill:url(#linearGradient25631);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-260.98083" y="88.497482" id="rect18949" style="opacity:0.46875;fill:url(#linearGradient25633);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-233.63409" y="99.553261" id="rect18951" style="opacity:0.46875;fill:url(#linearGradient25635);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-295.47437" y="58.168949" id="rect18953" style="opacity:0.46875;fill:url(#linearGradient25637);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-276.33575" y="86.500946" id="rect18955" style="opacity:0.1875;fill:url(#linearGradient25639);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-298.90872" y="103.5072" id="rect18957" style="opacity:0.1875;fill:url(#linearGradient25641);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-245.78004" y="72.946983" id="rect18959" style="opacity:0.1875;fill:url(#linearGradient25643);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-226.84477" y="85.671165" id="rect18961" style="opacity:0.46875;fill:url(#linearGradient25645);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-234.55591" y="89.883553" id="rect18963" style="opacity:0.46875;fill:url(#linearGradient25647);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-291.39258" y="82.950401" id="rect18965" style="opacity:0.46875;fill:url(#linearGradient25649);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.30173" y="75.114151" id="rect18967" style="opacity:0.1875;fill:url(#linearGradient25651);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-283.21027" y="71.787895" id="rect18969" style="opacity:0.1875;fill:url(#linearGradient25653);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-255.39825" y="100.81129" id="rect18971" style="opacity:0.1875;fill:url(#linearGradient25655);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-274.18207" y="66.801216" id="rect18973" style="opacity:0.46875;fill:url(#linearGradient25657);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.54575" y="94.54393" id="rect18975" style="opacity:0.46875;fill:url(#linearGradient25659);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-236.51776" y="85.290855" id="rect18977" style="opacity:0.46875;fill:url(#linearGradient25661);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-298.5864" y="71.016502" id="rect18979" style="opacity:0.1875;fill:url(#linearGradient25663);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-303.21921" y="65.639832" id="rect18981" style="opacity:0.1875;fill:url(#linearGradient25665);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.79636" y="63.71505" id="rect18983" style="opacity:0.1875;fill:url(#linearGradient25667);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-233.34283" y="107.64001" id="rect18985" style="opacity:0.46875;fill:url(#linearGradient25669);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-294.38077" y="99.69957" id="rect18987" style="opacity:0.46875;fill:url(#linearGradient25671);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-264.94934" y="79.567955" id="rect18989" style="opacity:0.46875;fill:url(#linearGradient25673);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-270.47961" y="106.71353" id="rect18991" style="opacity:0.1875;fill:url(#linearGradient25675);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.58325" y="84.44001" id="rect18993" style="opacity:0.1875;fill:url(#linearGradient25677);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-271.00653" y="101.09319" id="rect18995" style="opacity:0.1875;fill:url(#linearGradient25679);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.39656" y="106.40167" id="rect18997" style="opacity:0.46875;fill:url(#linearGradient25681);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-229.76819" y="70.810738" id="rect18999" style="opacity:0.46875;fill:url(#linearGradient25683);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-244.0509" y="102.26338" id="rect19001" style="opacity:0.46875;fill:url(#linearGradient25685);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-244.00787" y="93.647499" id="rect19003" style="opacity:0.1875;fill:url(#linearGradient25687);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-300.53571" y="108.52261" id="rect19005" style="opacity:0.1875;fill:url(#linearGradient25689);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-250.90356" y="63.263" id="rect19007" style="opacity:0.1875;fill:url(#linearGradient25691);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-238.44772" y="90.823517" id="rect19009" style="opacity:0.46875;fill:url(#linearGradient25693);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-271.47687" y="89.193001" id="rect19011" style="opacity:0.46875;fill:url(#linearGradient25695);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-272.64713" y="62.666931" id="rect19013" style="opacity:0.46875;fill:url(#linearGradient25697);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-227.9185" y="73.799789" id="rect19015" style="opacity:0.1875;fill:url(#linearGradient25699);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-288.84146" y="86.224449" id="rect19017" style="opacity:0.1875;fill:url(#linearGradient25701);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-263.98773" y="110.16738" id="rect19019" style="opacity:0.1875;fill:url(#linearGradient25703);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-305.17789" y="94.973297" id="rect19021" style="opacity:0.46875;fill:url(#linearGradient25705);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-227.49565" y="74.358421" id="rect19023" style="opacity:0.46875;fill:url(#linearGradient25707);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-290.55728" y="95.373718" id="rect19025" style="opacity:0.46875;fill:url(#linearGradient25709);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-292.83374" y="90.887688" id="rect19027" style="opacity:0.1875;fill:url(#linearGradient25711);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.96057" y="94.594093" id="rect19029" style="opacity:0.1875;fill:url(#linearGradient25713);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.0192" y="91.37999" id="rect19031" style="opacity:0.1875;fill:url(#linearGradient25715);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-218.39069" y="68.775909" id="rect19033" style="opacity:0.46875;fill:url(#linearGradient25717);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-286.06958" y="103.01775" id="rect19035" style="opacity:0.46875;fill:url(#linearGradient25719);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-303.51514" y="76.4011" id="rect19037" style="opacity:0.46875;fill:url(#linearGradient25721);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-218.21619" y="67.520676" id="rect19039" style="opacity:0.1875;fill:url(#linearGradient25723);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-279.83255" y="84.320534" id="rect19041" style="opacity:0.1875;fill:url(#linearGradient25725);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-273.59525" y="71.078278" id="rect19043" style="opacity:0.1875;fill:url(#linearGradient25727);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-283.35696" y="86.638985" id="rect19045" style="opacity:0.46875;fill:url(#linearGradient25729);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-302.40378" y="82.163078" id="rect19047" style="opacity:0.46875;fill:url(#linearGradient25731);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-264.71713" y="82.552078" id="rect19049" style="opacity:0.46875;fill:url(#linearGradient25733);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-292.31723" y="80.803482" id="rect19051" style="opacity:0.1875;fill:url(#linearGradient25735);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-286.43948" y="78.776352" id="rect19053" style="opacity:0.1875;fill:url(#linearGradient25737);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-286.18832" y="105.04062" id="rect19055" style="opacity:0.1875;fill:url(#linearGradient25739);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-287.76416" y="69.334221" id="rect19057" style="opacity:0.46875;fill:url(#linearGradient25741);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-306.53604" y="106.49574" id="rect19059" style="opacity:0.46875;fill:url(#linearGradient25743);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-250.6328" y="95.204269" id="rect19061" style="opacity:0.46875;fill:url(#linearGradient25745);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-250.92119" y="57.997192" id="rect19063" style="opacity:0.1875;fill:url(#linearGradient25747);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.89978" y="108.55125" id="rect19065" style="opacity:0.1875;fill:url(#linearGradient25749);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-269.3967" y="110.37301" id="rect19067" style="opacity:0.1875;fill:url(#linearGradient25751);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-286.70844" y="69.12841" id="rect19069" style="opacity:0.46875;fill:url(#linearGradient25753);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-294.84006" y="95.986496" id="rect19071" style="opacity:0.46875;fill:url(#linearGradient25755);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-244.98888" y="103.69247" id="rect19073" style="opacity:0.46875;fill:url(#linearGradient25757);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-276.38586" y="67.375679" id="rect19075" style="opacity:0.1875;fill:url(#linearGradient25759);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-284.78357" y="70.102432" id="rect19077" style="opacity:0.1875;fill:url(#linearGradient25761);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-258.98303" y="107.18321" id="rect19079" style="opacity:0.1875;fill:url(#linearGradient25763);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-221.54657" y="74.298431" id="rect19081" style="opacity:0.46875;fill:url(#linearGradient25765);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-290.54166" y="91.346199" id="rect19083" style="opacity:0.46875;fill:url(#linearGradient25767);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-296.13815" y="80.275932" id="rect19085" style="opacity:0.46875;fill:url(#linearGradient25769);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-299.84622" y="78.927689" id="rect19087" style="opacity:0.1875;fill:url(#linearGradient25771);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-252.49251" y="104.74801" id="rect19089" style="opacity:0.1875;fill:url(#linearGradient25773);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-242.81819" y="60.508629" id="rect19091" style="opacity:0.1875;fill:url(#linearGradient25775);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-251.77986" y="84.047173" id="rect19093" style="opacity:0.46875;fill:url(#linearGradient25777);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-292.71603" y="93.857674" id="rect19095" style="opacity:0.46875;fill:url(#linearGradient25779);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-245.01331" y="68.597374" id="rect19097" style="opacity:0.46875;fill:url(#linearGradient25781);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-288.43222" y="67.29528" id="rect19099" style="opacity:0.1875;fill:url(#linearGradient25783);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-246.39505" y="75.4105" id="rect19101" style="opacity:0.1875;fill:url(#linearGradient25785);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-227.18639" y="93.951813" id="rect19103" style="opacity:0.1875;fill:url(#linearGradient25787);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-279.88348" y="66.440628" id="rect19105" style="opacity:0.46875;fill:url(#linearGradient25789);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-236.90556" y="83.751076" id="rect19107" style="opacity:0.46875;fill:url(#linearGradient25791);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-243.24927" y="64.618744" id="rect19109" style="opacity:0.46875;fill:url(#linearGradient25793);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-292.68109" y="104.28016" id="rect19111" style="opacity:0.1875;fill:url(#linearGradient25795);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-262.19943" y="89.530205" id="rect19113" style="opacity:0.1875;fill:url(#linearGradient25797);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-260.99399" y="105.37378" id="rect19115" style="opacity:0.1875;fill:url(#linearGradient25799);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-270.28281" y="60.801304" id="rect19117" style="opacity:0.46875;fill:url(#linearGradient25801);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-289.56076" y="82.010605" id="rect19119" style="opacity:0.46875;fill:url(#linearGradient25803);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-247.97751" y="82.576714" id="rect19121" style="opacity:0.46875;fill:url(#linearGradient25805);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-277.05029" y="99.69252" id="rect19123" style="opacity:0.1875;fill:url(#linearGradient25807);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-298.12518" y="56.092049" id="rect19125" style="opacity:0.1875;fill:url(#linearGradient25809);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-306.81729" y="83.794304" id="rect19127" style="opacity:0.1875;fill:url(#linearGradient25811);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-277.71368" y="105.04692" id="rect19129" style="opacity:0.46875;fill:url(#linearGradient25813);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-269.64838" y="65.826553" id="rect19131" style="opacity:0.46875;fill:url(#linearGradient25815);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-243.96567" y="64.875366" id="rect19133" style="opacity:0.46875;fill:url(#linearGradient25817);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-298.39728" y="105.96532" id="rect19135" style="opacity:0.1875;fill:url(#linearGradient25819);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-259.63116" y="84.33313" id="rect19137" style="opacity:0.1875;fill:url(#linearGradient25821);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-228.94666" y="103.36714" id="rect19139" style="opacity:0.1875;fill:url(#linearGradient25823);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-272.03406" y="72.169991" id="rect19141" style="opacity:0.46875;fill:url(#linearGradient25825);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-226.07004" y="91.508087" id="rect19143" style="opacity:0.46875;fill:url(#linearGradient25827);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-290.74023" y="65.295685" id="rect19145" style="opacity:0.46875;fill:url(#linearGradient25829);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-264.46622" y="94.028046" id="rect19147" style="opacity:0.1875;fill:url(#linearGradient25831);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-299.63184" y="100.02885" id="rect19149" style="opacity:0.1875;fill:url(#linearGradient25833);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.31564" y="68.181747" id="rect19151" style="opacity:0.1875;fill:url(#linearGradient25835);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-281.37823" y="80.158287" id="rect19153" style="opacity:0.46875;fill:url(#linearGradient25837);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-267.25195" y="73.81916" id="rect19155" style="opacity:0.46875;fill:url(#linearGradient25839);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-250.21211" y="72.697601" id="rect19157" style="opacity:0.46875;fill:url(#linearGradient25841);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-298.42764" y="91.750961" id="rect19159" style="opacity:0.1875;fill:url(#linearGradient25843);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-287.2442" y="84.52874" id="rect19161" style="opacity:0.1875;fill:url(#linearGradient25845);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-304.86484" y="66.390846" id="rect19163" style="opacity:0.1875;fill:url(#linearGradient25847);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-225.04269" y="107.95484" id="rect19165" style="opacity:0.46875;fill:url(#linearGradient25849);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-265.05286" y="78.926689" id="rect19167" style="opacity:0.46875;fill:url(#linearGradient25851);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-233.63925" y="107.33574" id="rect19169" style="opacity:0.46875;fill:url(#linearGradient25853);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-275.09424" y="64.496719" id="rect19171" style="opacity:0.1875;fill:url(#linearGradient25855);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-292.27118" y="70.296356" id="rect19173" style="opacity:0.1875;fill:url(#linearGradient25857);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-241.17659" y="90.893532" id="rect19175" style="opacity:0.1875;fill:url(#linearGradient25859);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-232.24466" y="62.413158" id="rect19177" style="opacity:0.46875;fill:url(#linearGradient25861);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-286.59363" y="91.436836" id="rect19179" style="opacity:0.46875;fill:url(#linearGradient25863);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-296.57291" y="92.877731" id="rect19181" style="opacity:0.46875;fill:url(#linearGradient25865);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-225.94574" y="85.862312" id="rect19183" style="opacity:0.1875;fill:url(#linearGradient25867);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-285.98853" y="63.901665" id="rect19185" style="opacity:0.1875;fill:url(#linearGradient25869);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-295.00256" y="107.28114" id="rect19187" style="opacity:0.1875;fill:url(#linearGradient25871);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-297.86865" y="89.48291" id="rect19189" style="opacity:0.46875;fill:url(#linearGradient25873);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-297.61465" y="57.415867" id="rect19191" style="opacity:0.46875;fill:url(#linearGradient25875);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-254.48337" y="84.216339" id="rect19193" style="opacity:0.46875;fill:url(#linearGradient25877);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-258.94864" y="71.953529" id="rect19195" style="opacity:0.1875;fill:url(#linearGradient25879);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-298.51169" y="68.122597" id="rect19197" style="opacity:0.1875;fill:url(#linearGradient25881);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.92078" y="111.10387" id="rect19199" style="opacity:0.1875;fill:url(#linearGradient25883);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-299.40286" y="63.712029" id="rect19201" style="opacity:0.46875;fill:url(#linearGradient25885);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-258.28314" y="106.27374" id="rect19203" style="opacity:0.46875;fill:url(#linearGradient25887);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-263.1701" y="55.287373" id="rect19205" style="opacity:0.46875;fill:url(#linearGradient25889);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-249.48601" y="57.769218" id="rect19207" style="opacity:0.1875;fill:url(#linearGradient25891);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-267.46838" y="77.377342" id="rect19209" style="opacity:0.1875;fill:url(#linearGradient25893);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-293.15372" y="69.913437" id="rect19211" style="opacity:0.1875;fill:url(#linearGradient25895);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-290.19022" y="65.70224" id="rect19213" style="opacity:0.46875;fill:url(#linearGradient25897);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-268.64978" y="94.028038" id="rect19215" style="opacity:0.46875;fill:url(#linearGradient25899);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-230.81993" y="97.112503" id="rect19217" style="opacity:0.46875;fill:url(#linearGradient25901);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-305.59576" y="97.91346" id="rect19219" style="opacity:0.1875;fill:url(#linearGradient25903);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-284.39734" y="98.881744" id="rect19221" style="opacity:0.1875;fill:url(#linearGradient25905);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-292.14093" y="78.441406" id="rect19223" style="opacity:0.1875;fill:url(#linearGradient25907);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-304.33417" y="55.983482" id="rect19225" style="opacity:0.46875;fill:url(#linearGradient25909);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.66583" y="72.041855" id="rect19227" style="opacity:0.46875;fill:url(#linearGradient25911);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-304.92673" y="70.234978" id="rect19229" style="opacity:0.46875;fill:url(#linearGradient25913);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-264.9696" y="84.045815" id="rect19231" style="opacity:0.1875;fill:url(#linearGradient25915);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-246.9485" y="110.36636" id="rect19233" style="opacity:0.1875;fill:url(#linearGradient25917);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-230.12448" y="78.765671" id="rect19235" style="opacity:0.1875;fill:url(#linearGradient25919);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-268.93396" y="66.957794" id="rect19237" style="opacity:0.46875;fill:url(#linearGradient25921);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-261.72153" y="63.677078" id="rect19239" style="opacity:0.46875;fill:url(#linearGradient25923);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-234.16353" y="106.5026" id="rect19241" style="opacity:0.46875;fill:url(#linearGradient25925);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-229.84259" y="78.04248" id="rect19243" style="opacity:0.1875;fill:url(#linearGradient25927);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-252.24341" y="97.765053" id="rect19245" style="opacity:0.1875;fill:url(#linearGradient25929);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-258.61215" y="105.56336" id="rect19247" style="opacity:0.1875;fill:url(#linearGradient25931);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-257.03516" y="103.79118" id="rect19249" style="opacity:0.46875;fill:url(#linearGradient25933);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-246.26445" y="74.449562" id="rect19251" style="opacity:0.46875;fill:url(#linearGradient25935);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-229.85646" y="68.907692" id="rect19253" style="opacity:0.46875;fill:url(#linearGradient25937);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-280.54657" y="89.704041" id="rect19255" style="opacity:0.1875;fill:url(#linearGradient25939);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.86136" y="76.668816" id="rect19257" style="opacity:0.1875;fill:url(#linearGradient25941);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-285.42096" y="61.806561" id="rect19259" style="opacity:0.1875;fill:url(#linearGradient25943);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-243.98203" y="69.427635" id="rect19261" style="opacity:0.46875;fill:url(#linearGradient25945);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-242.41055" y="85.174919" id="rect19263" style="opacity:0.46875;fill:url(#linearGradient25947);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-246.0016" y="103.53281" id="rect19265" style="opacity:0.46875;fill:url(#linearGradient25949);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-243.7686" y="75.559853" id="rect19267" style="opacity:0.1875;fill:url(#linearGradient25951);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-244.5695" y="107.75644" id="rect19269" style="opacity:0.1875;fill:url(#linearGradient25953);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-230.72728" y="105.42181" id="rect19271" style="opacity:0.1875;fill:url(#linearGradient25955);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-306.7652" y="82.467445" id="rect19273" style="opacity:0.46875;fill:url(#linearGradient25957);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-253.38632" y="95.402771" id="rect19275" style="opacity:0.46875;fill:url(#linearGradient25959);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-240.82684" y="72.933113" id="rect19277" style="opacity:0.46875;fill:url(#linearGradient25961);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-299.04517" y="93.536026" id="rect19279" style="opacity:0.1875;fill:url(#linearGradient25963);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-270.15546" y="89.64119" id="rect19281" style="opacity:0.1875;fill:url(#linearGradient25965);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-267.89304" y="66.820396" id="rect19283" style="opacity:0.1875;fill:url(#linearGradient25967);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-301.6131" y="71.216759" id="rect19285" style="opacity:0.46875;fill:url(#linearGradient25969);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-230.00293" y="94.547012" id="rect19287" style="opacity:0.46875;fill:url(#linearGradient25971);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-258.54749" y="111.24785" id="rect19289" style="opacity:0.46875;fill:url(#linearGradient25973);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-246.9171" y="75.402245" id="rect19291" style="opacity:0.1875;fill:url(#linearGradient25975);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.30652" y="64.5979" id="rect19293" style="opacity:0.1875;fill:url(#linearGradient25977);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.15259" y="109.60979" id="rect19295" style="opacity:0.1875;fill:url(#linearGradient25979);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-294.30212" y="103.83401" id="rect19297" style="opacity:0.46875;fill:url(#linearGradient25981);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-263.05688" y="70.616966" id="rect19299" style="opacity:0.46875;fill:url(#linearGradient25983);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-240.5407" y="108.18846" id="rect19301" style="opacity:0.46875;fill:url(#linearGradient25985);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-266.00439" y="89.209114" id="rect19687" style="opacity:0.1875;fill:url(#linearGradient25987);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.96806" y="93.906403" id="rect19689" style="opacity:0.1875;fill:url(#linearGradient25989);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-271.9646" y="71.037643" id="rect19691" style="opacity:0.1875;fill:url(#linearGradient25991);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-234.56036" y="72.821198" id="rect19693" style="opacity:0.46875;fill:url(#linearGradient25993);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-240.60529" y="60.0312" id="rect19695" style="opacity:0.46875;fill:url(#linearGradient25995);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-229.2816" y="72.936653" id="rect19697" style="opacity:0.46875;fill:url(#linearGradient25997);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-285.78677" y="56.41328" id="rect19699" style="opacity:0.1875;fill:url(#linearGradient25999);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-279.86523" y="110.02824" id="rect19701" style="opacity:0.1875;fill:url(#linearGradient26001);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-228.45341" y="55.875343" id="rect19703" style="opacity:0.1875;fill:url(#linearGradient26003);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-306.50208" y="103.96443" id="rect19705" style="opacity:0.46875;fill:url(#linearGradient26005);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-305.84354" y="67.604721" id="rect19707" style="opacity:0.46875;fill:url(#linearGradient26007);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-235.03075" y="96.542793" id="rect19709" style="opacity:0.46875;fill:url(#linearGradient26009);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-305.05197" y="77.771103" id="rect19711" style="opacity:0.1875;fill:url(#linearGradient26011);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-238.98514" y="107.89761" id="rect19713" style="opacity:0.1875;fill:url(#linearGradient26013);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-270.06744" y="100.2785" id="rect19715" style="opacity:0.1875;fill:url(#linearGradient26015);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-281.4613" y="93.778717" id="rect19717" style="opacity:0.46875;fill:url(#linearGradient26017);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-274.2962" y="110.55288" id="rect19719" style="opacity:0.46875;fill:url(#linearGradient26019);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-281.81448" y="104.48936" id="rect19721" style="opacity:0.46875;fill:url(#linearGradient26021);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-282.3071" y="90.755722" id="rect19723" style="opacity:0.1875;fill:url(#linearGradient26023);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-236.40009" y="66.625076" id="rect19725" style="opacity:0.1875;fill:url(#linearGradient26025);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-274.82065" y="61.598354" id="rect19727" style="opacity:0.1875;fill:url(#linearGradient26027);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-241.56587" y="78.79348" id="rect19729" style="opacity:0.46875;fill:url(#linearGradient26029);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-305.73978" y="109.59057" id="rect19731" style="opacity:0.46875;fill:url(#linearGradient26031);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.17905" y="69.12339" id="rect19733" style="opacity:0.46875;fill:url(#linearGradient26033);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-216.81087" y="69.328728" id="rect19735" style="opacity:0.1875;fill:url(#linearGradient26035);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-245.59779" y="60.468842" id="rect19737" style="opacity:0.1875;fill:url(#linearGradient26037);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-292.39996" y="69.177399" id="rect19739" style="opacity:0.1875;fill:url(#linearGradient26039);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-266.0867" y="103.58194" id="rect19741" style="opacity:0.46875;fill:url(#linearGradient26041);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.35747" y="97.591721" id="rect19743" style="opacity:0.46875;fill:url(#linearGradient26043);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-284.92908" y="108.21365" id="rect19745" style="opacity:0.46875;fill:url(#linearGradient26045);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-280.70068" y="94.988106" id="rect19747" style="opacity:0.1875;fill:url(#linearGradient26047);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-243.22475" y="86.568611" id="rect19749" style="opacity:0.1875;fill:url(#linearGradient26049);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-225.897" y="68.450813" id="rect19751" style="opacity:0.1875;fill:url(#linearGradient26051);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.28683" y="105.07285" id="rect19753" style="opacity:0.46875;fill:url(#linearGradient26053);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-300.34781" y="101.12499" id="rect19755" style="opacity:0.46875;fill:url(#linearGradient26055);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-260.66919" y="72.771706" id="rect19757" style="opacity:0.46875;fill:url(#linearGradient26057);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-244.08136" y="109.14403" id="rect19759" style="opacity:0.1875;fill:url(#linearGradient26059);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-266.47391" y="56.483292" id="rect19761" style="opacity:0.1875;fill:url(#linearGradient26061);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-305.57245" y="77.759392" id="rect19763" style="opacity:0.1875;fill:url(#linearGradient26063);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-265.63818" y="84.989304" id="rect19765" style="opacity:0.46875;fill:url(#linearGradient26065);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-295.00952" y="84.498077" id="rect19767" style="opacity:0.46875;fill:url(#linearGradient26067);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-301.5238" y="87.767929" id="rect19769" style="opacity:0.46875;fill:url(#linearGradient26069);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-236.25314" y="107.81876" id="rect19771" style="opacity:0.1875;fill:url(#linearGradient26071);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-258.9086" y="92.5084" id="rect19773" style="opacity:0.1875;fill:url(#linearGradient26073);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-294.40143" y="68.458366" id="rect19775" style="opacity:0.1875;fill:url(#linearGradient26075);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-275.85092" y="65.466675" id="rect19777" style="opacity:0.46875;fill:url(#linearGradient26077);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-256.8295" y="68.729492" id="rect19779" style="opacity:0.46875;fill:url(#linearGradient26079);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-263.39764" y="58.76083" id="rect19781" style="opacity:0.46875;fill:url(#linearGradient26081);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-294.33389" y="91.26815" id="rect19783" style="opacity:0.1875;fill:url(#linearGradient26083);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-235.94896" y="82.49556" id="rect19785" style="opacity:0.1875;fill:url(#linearGradient26085);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-233.46701" y="75.851974" id="rect19787" style="opacity:0.1875;fill:url(#linearGradient26087);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-302.13321" y="72.279182" id="rect19789" style="opacity:0.46875;fill:url(#linearGradient26089);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-242.7038" y="106.88218" id="rect19791" style="opacity:0.46875;fill:url(#linearGradient26091);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-241.86159" y="71.95945" id="rect19793" style="opacity:0.46875;fill:url(#linearGradient26093);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-269.88998" y="66.489037" id="rect19795" style="opacity:0.1875;fill:url(#linearGradient26095);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.97731" y="90.453789" id="rect19797" style="opacity:0.1875;fill:url(#linearGradient26097);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-285.25266" y="74.747742" id="rect19799" style="opacity:0.1875;fill:url(#linearGradient26099);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-237.03563" y="65.806068" id="rect19801" style="opacity:0.46875;fill:url(#linearGradient26101);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-253.26402" y="74.816711" id="rect19803" style="opacity:0.46875;fill:url(#linearGradient26103);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-246.60954" y="70.76754" id="rect19805" style="opacity:0.46875;fill:url(#linearGradient26105);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-267.31042" y="82.344101" id="rect19807" style="opacity:0.1875;fill:url(#linearGradient26107);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-245.2084" y="90.807762" id="rect19809" style="opacity:0.1875;fill:url(#linearGradient26109);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-239.56085" y="74.873642" id="rect19811" style="opacity:0.1875;fill:url(#linearGradient26111);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-296.24194" y="108.07713" id="rect19813" style="opacity:0.46875;fill:url(#linearGradient26113);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-254.00378" y="94.862534" id="rect19815" style="opacity:0.46875;fill:url(#linearGradient26115);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-289.65979" y="88.722481" id="rect19817" style="opacity:0.46875;fill:url(#linearGradient26117);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-235.76619" y="104.99657" id="rect19819" style="opacity:0.1875;fill:url(#linearGradient26119);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-295.69971" y="99.441635" id="rect19821" style="opacity:0.1875;fill:url(#linearGradient26121);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-300.08588" y="55.394043" id="rect19823" style="opacity:0.1875;fill:url(#linearGradient26123);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-233.71527" y="89.729172" id="rect19825" style="opacity:0.46875;fill:url(#linearGradient26125);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-297.57977" y="87.39814" id="rect19827" style="opacity:0.46875;fill:url(#linearGradient26127);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-246.60815" y="61.057537" id="rect19829" style="opacity:0.46875;fill:url(#linearGradient26129);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-243.3033" y="93.364738" id="rect19831" style="opacity:0.1875;fill:url(#linearGradient26131);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-291.2106" y="109.53021" id="rect19833" style="opacity:0.1875;fill:url(#linearGradient26133);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-240.3336" y="95.752419" id="rect19835" style="opacity:0.1875;fill:url(#linearGradient26135);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-260.09399" y="108.47672" id="rect19837" style="opacity:0.46875;fill:url(#linearGradient26137);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-281.98718" y="56.313244" id="rect19839" style="opacity:0.46875;fill:url(#linearGradient26139);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-250.88078" y="66.299667" id="rect19841" style="opacity:0.46875;fill:url(#linearGradient26141);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-233.43297" y="98.155182" id="rect19843" style="opacity:0.1875;fill:url(#linearGradient26143);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-264.12787" y="56.134888" id="rect19845" style="opacity:0.1875;fill:url(#linearGradient26145);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-306.90723" y="99.438095" id="rect19847" style="opacity:0.1875;fill:url(#linearGradient26147);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-245.72171" y="108.76661" id="rect19849" style="opacity:0.46875;fill:url(#linearGradient26149);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-284.49231" y="66.532898" id="rect19851" style="opacity:0.46875;fill:url(#linearGradient26151);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-232.77087" y="79.516312" id="rect19853" style="opacity:0.46875;fill:url(#linearGradient26153);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-236.68567" y="88.295525" id="rect19855" style="opacity:0.1875;fill:url(#linearGradient26155);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-264.75388" y="79.418007" id="rect19857" style="opacity:0.1875;fill:url(#linearGradient26157);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-300.2804" y="82.868881" id="rect19859" style="opacity:0.1875;fill:url(#linearGradient26159);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-257.78253" y="86.814514" id="rect19861" style="opacity:0.46875;fill:url(#linearGradient26161);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-241.81927" y="61.421219" id="rect19863" style="opacity:0.46875;fill:url(#linearGradient26163);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-226.81541" y="88.583298" id="rect19865" style="opacity:0.46875;fill:url(#linearGradient26165);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-305.35025" y="110.12419" id="rect19867" style="opacity:0.1875;fill:url(#linearGradient26167);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-289.07797" y="86.085411" id="rect19869" style="opacity:0.1875;fill:url(#linearGradient26169);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-280.14191" y="111.1115" id="rect19871" style="opacity:0.1875;fill:url(#linearGradient26171);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-236.09656" y="84.347092" id="rect19873" style="opacity:0.46875;fill:url(#linearGradient26173);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-300.2934" y="71.749733" id="rect19875" style="opacity:0.46875;fill:url(#linearGradient26175);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-273.99847" y="67.531227" id="rect19877" style="opacity:0.46875;fill:url(#linearGradient26177);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-251.12584" y="61.71769" id="rect19879" style="opacity:0.1875;fill:url(#linearGradient26179);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-297.22586" y="107.49362" id="rect19881" style="opacity:0.1875;fill:url(#linearGradient26181);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-285.43884" y="105.33451" id="rect19883" style="opacity:0.1875;fill:url(#linearGradient26183);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-279.26175" y="107.8763" id="rect19885" style="opacity:0.46875;fill:url(#linearGradient26185);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-264.44354" y="67.935165" id="rect19887" style="opacity:0.46875;fill:url(#linearGradient26187);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.49667" y="96.643944" id="rect19889" style="opacity:0.46875;fill:url(#linearGradient26189);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-217.63341" y="107.29041" id="rect19891" style="opacity:0.1875;fill:url(#linearGradient26191);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-228.05434" y="67.919067" id="rect19893" style="opacity:0.1875;fill:url(#linearGradient26193);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-261.32623" y="107.8399" id="rect19895" style="opacity:0.1875;fill:url(#linearGradient26195);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-289.12415" y="104.71578" id="rect19897" style="opacity:0.46875;fill:url(#linearGradient26197);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-299.92154" y="103.894" id="rect19899" style="opacity:0.46875;fill:url(#linearGradient26199);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-234.99353" y="69.89447" id="rect19901" style="opacity:0.46875;fill:url(#linearGradient26201);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-292.92441" y="70.290993" id="rect19903" style="opacity:0.1875;fill:url(#linearGradient26203);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-290.26547" y="75.941833" id="rect19905" style="opacity:0.1875;fill:url(#linearGradient26205);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-230.47929" y="81.975525" id="rect19907" style="opacity:0.1875;fill:url(#linearGradient26207);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-227.77673" y="111.29926" id="rect19909" style="opacity:0.46875;fill:url(#linearGradient26209);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-263.11667" y="99.947609" id="rect19911" style="opacity:0.46875;fill:url(#linearGradient26211);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-242.85245" y="88.847588" id="rect19913" style="opacity:0.46875;fill:url(#linearGradient26213);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-249.8663" y="99.503418" id="rect19915" style="opacity:0.1875;fill:url(#linearGradient26215);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-246.01836" y="106.64564" id="rect19917" style="opacity:0.1875;fill:url(#linearGradient26217);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.59598" y="66.732162" id="rect19919" style="opacity:0.1875;fill:url(#linearGradient26219);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-223.82793" y="100.37089" id="rect19921" style="opacity:0.46875;fill:url(#linearGradient26221);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.13416" y="81.990974" id="rect19923" style="opacity:0.46875;fill:url(#linearGradient26223);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-306.29108" y="92.491669" id="rect19925" style="opacity:0.46875;fill:url(#linearGradient26225);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-291.61893" y="79.634949" id="rect19927" style="opacity:0.1875;fill:url(#linearGradient26227);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-255.52936" y="98.797989" id="rect19929" style="opacity:0.1875;fill:url(#linearGradient26229);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-273.95828" y="110.65452" id="rect19931" style="opacity:0.1875;fill:url(#linearGradient26231);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-217.95099" y="100.52077" id="rect19933" style="opacity:0.46875;fill:url(#linearGradient26233);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-288.4422" y="93.812157" id="rect19935" style="opacity:0.46875;fill:url(#linearGradient26235);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-277.36646" y="94.473045" id="rect19937" style="opacity:0.46875;fill:url(#linearGradient26237);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-222.96104" y="111.20544" id="rect19939" style="opacity:0.1875;fill:url(#linearGradient26239);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-275.77539" y="78.428696" id="rect19941" style="opacity:0.1875;fill:url(#linearGradient26241);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-227.76193" y="101.67466" id="rect19943" style="opacity:0.1875;fill:url(#linearGradient26243);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-293.64917" y="55.1898" id="rect19945" style="opacity:0.46875;fill:url(#linearGradient26245);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-281.67783" y="105.24789" id="rect19947" style="opacity:0.46875;fill:url(#linearGradient26247);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-230.7887" y="107.56207" id="rect19949" style="opacity:0.46875;fill:url(#linearGradient26249);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-305.32104" y="75.765396" id="rect19951" style="opacity:0.1875;fill:url(#linearGradient26251);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-302.3252" y="70.395012" id="rect19953" style="opacity:0.1875;fill:url(#linearGradient26253);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-300.4624" y="77.843994" id="rect19955" style="opacity:0.1875;fill:url(#linearGradient26255);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-246.46291" y="97.798653" id="rect19957" style="opacity:0.46875;fill:url(#linearGradient26257);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-236.97621" y="92.625015" id="rect19959" style="opacity:0.46875;fill:url(#linearGradient26259);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-292.16928" y="66.244278" id="rect19961" style="opacity:0.46875;fill:url(#linearGradient26261);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-283.05453" y="106.82121" id="rect19963" style="opacity:0.1875;fill:url(#linearGradient26263);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-255.95485" y="82.979355" id="rect19965" style="opacity:0.1875;fill:url(#linearGradient26265);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-296.56934" y="75.003525" id="rect19967" style="opacity:0.1875;fill:url(#linearGradient26267);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-252.9155" y="60.718307" id="rect19969" style="opacity:0.46875;fill:url(#linearGradient26269);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-296.39957" y="65.565224" id="rect19971" style="opacity:0.46875;fill:url(#linearGradient26271);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-288.19415" y="66.931465" id="rect19973" style="opacity:0.46875;fill:url(#linearGradient26273);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-235.45161" y="67.468315" id="rect19975" style="opacity:0.1875;fill:url(#linearGradient26275);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-251.94643" y="102.85509" id="rect19977" style="opacity:0.1875;fill:url(#linearGradient26277);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-253.84683" y="97.23008" id="rect19979" style="opacity:0.1875;fill:url(#linearGradient26279);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-218.62408" y="106.39987" id="rect19981" style="opacity:0.46875;fill:url(#linearGradient26281);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-252.86404" y="86.620399" id="rect19983" style="opacity:0.46875;fill:url(#linearGradient26283);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-268.98251" y="105.18267" id="rect19985" style="opacity:0.46875;fill:url(#linearGradient26285);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-244.57259" y="96.846413" id="rect19987" style="opacity:0.1875;fill:url(#linearGradient26287);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-241.35466" y="72.427864" id="rect19989" style="opacity:0.1875;fill:url(#linearGradient26289);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-243.7484" y="60.295509" id="rect19991" style="opacity:0.1875;fill:url(#linearGradient26291);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-222.45859" y="103.16962" id="rect19993" style="opacity:0.46875;fill:url(#linearGradient26293);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-246.9902" y="99.331314" id="rect19995" style="opacity:0.46875;fill:url(#linearGradient26295);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-271.4754" y="67.198364" id="rect19997" style="opacity:0.46875;fill:url(#linearGradient26297);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-224.57295" y="78.623528" id="rect19999" style="opacity:0.1875;fill:url(#linearGradient26299);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-300.48843" y="58.754765" id="rect20001" style="opacity:0.1875;fill:url(#linearGradient26301);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-258.62601" y="92.053108" id="rect20003" style="opacity:0.1875;fill:url(#linearGradient26303);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-268.83109" y="89.63459" id="rect20005" style="opacity:0.46875;fill:url(#linearGradient26305);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-275.99036" y="81.23172" id="rect20007" style="opacity:0.46875;fill:url(#linearGradient26307);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-290.10904" y="79.479607" id="rect20009" style="opacity:0.46875;fill:url(#linearGradient26309);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-298.9653" y="83.475426" id="rect20011" style="opacity:0.1875;fill:url(#linearGradient26311);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-257.05237" y="99.696861" id="rect20013" style="opacity:0.1875;fill:url(#linearGradient26313);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-228.81726" y="94.231972" id="rect20015" style="opacity:0.1875;fill:url(#linearGradient26315);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-293.22989" y="104.25684" id="rect20017" style="opacity:0.46875;fill:url(#linearGradient26317);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-261.13651" y="55.010883" id="rect20019" style="opacity:0.46875;fill:url(#linearGradient26319);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-239.68616" y="109.11954" id="rect20021" style="opacity:0.46875;fill:url(#linearGradient26321);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-230.49696" y="76.606689" id="rect20023" style="opacity:0.1875;fill:url(#linearGradient26323);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-260.6626" y="75.026268" id="rect20025" style="opacity:0.1875;fill:url(#linearGradient26325);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-286.59128" y="88.79126" id="rect20027" style="opacity:0.1875;fill:url(#linearGradient26327);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.85246" y="107.28387" id="rect20029" style="opacity:0.46875;fill:url(#linearGradient26329);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-239.85561" y="83.328651" id="rect20031" style="opacity:0.46875;fill:url(#linearGradient26331);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-243.79652" y="91.03093" id="rect20033" style="opacity:0.46875;fill:url(#linearGradient26333);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-306.53204" y="102.40226" id="rect20035" style="opacity:0.1875;fill:url(#linearGradient26335);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-243.65462" y="86.312164" id="rect20037" style="opacity:0.1875;fill:url(#linearGradient26337);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-297.23593" y="99.523064" id="rect20039" style="opacity:0.1875;fill:url(#linearGradient26339);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-270.10629" y="85.250237" id="rect20041" style="opacity:0.46875;fill:url(#linearGradient26341);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-259.59616" y="62.64764" id="rect20043" style="opacity:0.46875;fill:url(#linearGradient26343);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-279.72336" y="57.199894" id="rect20045" style="opacity:0.46875;fill:url(#linearGradient26345);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-237.94009" y="69.578125" id="rect20047" style="opacity:0.1875;fill:url(#linearGradient26347);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.54706" y="63.932827" id="rect20049" style="opacity:0.1875;fill:url(#linearGradient26349);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-234.06938" y="71.778969" id="rect20051" style="opacity:0.1875;fill:url(#linearGradient26351);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-233.02867" y="79.090485" id="rect20053" style="opacity:0.46875;fill:url(#linearGradient26353);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.32771" y="69.432304" id="rect20055" style="opacity:0.46875;fill:url(#linearGradient26355);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-234.56918" y="79.627808" id="rect20057" style="opacity:0.46875;fill:url(#linearGradient26357);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-277.56387" y="56.465225" id="rect20059" style="opacity:0.1875;fill:url(#linearGradient26359);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-283.46451" y="90.167923" id="rect20061" style="opacity:0.1875;fill:url(#linearGradient26361);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-263.4277" y="82.128593" id="rect20063" style="opacity:0.1875;fill:url(#linearGradient26363);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-243.59889" y="70.86586" id="rect20065" style="opacity:0.46875;fill:url(#linearGradient26365);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-304.18463" y="88.390617" id="rect20067" style="opacity:0.46875;fill:url(#linearGradient26367);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-290.64938" y="101.78397" id="rect20069" style="opacity:0.46875;fill:url(#linearGradient26369);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.71817" y="81.253448" id="rect20455" style="opacity:0.1875;fill:url(#linearGradient26371);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-240.49081" y="65.51342" id="rect20457" style="opacity:0.1875;fill:url(#linearGradient26373);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-279.75214" y="109.76508" id="rect20459" style="opacity:0.1875;fill:url(#linearGradient26375);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-267.04233" y="88.218803" id="rect20461" style="opacity:0.46875;fill:url(#linearGradient26377);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-302.86346" y="85.858627" id="rect20463" style="opacity:0.46875;fill:url(#linearGradient26379);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-225.32182" y="82.631157" id="rect20465" style="opacity:0.46875;fill:url(#linearGradient26381);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-298.48117" y="82.083504" id="rect20467" style="opacity:0.1875;fill:url(#linearGradient26383);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-280.10507" y="108.23654" id="rect20469" style="opacity:0.1875;fill:url(#linearGradient26385);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-259.32974" y="64.70713" id="rect20471" style="opacity:0.1875;fill:url(#linearGradient26387);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-284.16614" y="74.961967" id="rect20473" style="opacity:0.46875;fill:url(#linearGradient26389);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-239.05365" y="62.712513" id="rect20475" style="opacity:0.46875;fill:url(#linearGradient26391);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-246.00711" y="72.933044" id="rect20477" style="opacity:0.46875;fill:url(#linearGradient26393);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-287.22855" y="110.74557" id="rect20479" style="opacity:0.1875;fill:url(#linearGradient26395);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-268.3591" y="79.526146" id="rect20481" style="opacity:0.1875;fill:url(#linearGradient26397);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-245.60628" y="106.92101" id="rect20483" style="opacity:0.1875;fill:url(#linearGradient26399);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.54721" y="80.424744" id="rect20485" style="opacity:0.46875;fill:url(#linearGradient26401);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-280.69498" y="73.441864" id="rect20487" style="opacity:0.46875;fill:url(#linearGradient26403);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-286.30206" y="67.167152" id="rect20489" style="opacity:0.46875;fill:url(#linearGradient26405);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-218.45755" y="100.83543" id="rect20491" style="opacity:0.1875;fill:url(#linearGradient26407);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-275.74637" y="77.731842" id="rect20493" style="opacity:0.1875;fill:url(#linearGradient26409);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-260.5361" y="63.783749" id="rect20495" style="opacity:0.1875;fill:url(#linearGradient26411);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-299.29132" y="96.522278" id="rect20497" style="opacity:0.46875;fill:url(#linearGradient26413);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-244.44952" y="98.607231" id="rect20499" style="opacity:0.46875;fill:url(#linearGradient26415);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-274.82455" y="86.80835" id="rect20501" style="opacity:0.46875;fill:url(#linearGradient26417);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-219.73625" y="61.344193" id="rect20503" style="opacity:0.1875;fill:url(#linearGradient26419);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-292.13663" y="77.865173" id="rect20505" style="opacity:0.1875;fill:url(#linearGradient26421);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-287.60495" y="105.65768" id="rect20507" style="opacity:0.1875;fill:url(#linearGradient26423);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-282.04767" y="65.757294" id="rect20509" style="opacity:0.46875;fill:url(#linearGradient26425);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-276.05054" y="107.30734" id="rect20511" style="opacity:0.46875;fill:url(#linearGradient26427);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-302.89746" y="109.56179" id="rect20513" style="opacity:0.46875;fill:url(#linearGradient26429);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.98593" y="67.596725" id="rect20515" style="opacity:0.1875;fill:url(#linearGradient26431);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-246.38931" y="73.773773" id="rect20517" style="opacity:0.1875;fill:url(#linearGradient26433);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-241.46507" y="107.92227" id="rect20519" style="opacity:0.1875;fill:url(#linearGradient26435);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-265.26581" y="83.184235" id="rect20521" style="opacity:0.46875;fill:url(#linearGradient26437);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-285.78122" y="104.65424" id="rect20523" style="opacity:0.46875;fill:url(#linearGradient26439);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.79443" y="58.689938" id="rect20525" style="opacity:0.46875;fill:url(#linearGradient26441);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-233.70056" y="60.803516" id="rect20527" style="opacity:0.1875;fill:url(#linearGradient26443);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-293.72324" y="57.410843" id="rect20529" style="opacity:0.1875;fill:url(#linearGradient26445);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-301.89771" y="72.826591" id="rect20531" style="opacity:0.1875;fill:url(#linearGradient26447);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-219.5639" y="70.463745" id="rect20533" style="opacity:0.46875;fill:url(#linearGradient26449);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-265.42273" y="58.774006" id="rect20535" style="opacity:0.46875;fill:url(#linearGradient26451);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.00671" y="72.494003" id="rect20537" style="opacity:0.46875;fill:url(#linearGradient26453);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-278.71185" y="109.54459" id="rect20539" style="opacity:0.1875;fill:url(#linearGradient26455);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-266.06219" y="55.475723" id="rect20541" style="opacity:0.1875;fill:url(#linearGradient26457);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-236.19772" y="77.694275" id="rect20543" style="opacity:0.1875;fill:url(#linearGradient26459);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-230.89938" y="71.35717" id="rect20545" style="opacity:0.46875;fill:url(#linearGradient26461);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-273.54712" y="84.367325" id="rect20547" style="opacity:0.46875;fill:url(#linearGradient26463);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-289.45844" y="81.262711" id="rect20549" style="opacity:0.46875;fill:url(#linearGradient26465);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-303.61487" y="104.93104" id="rect20551" style="opacity:0.1875;fill:url(#linearGradient26467);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-284.25128" y="71.748528" id="rect20553" style="opacity:0.1875;fill:url(#linearGradient26469);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-227.85863" y="59.726963" id="rect20555" style="opacity:0.1875;fill:url(#linearGradient26471);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-269.71912" y="79.780472" id="rect20557" style="opacity:0.46875;fill:url(#linearGradient26473);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-289.34674" y="64.180695" id="rect20559" style="opacity:0.46875;fill:url(#linearGradient26475);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-237.67152" y="56.720722" id="rect20561" style="opacity:0.46875;fill:url(#linearGradient26477);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-261.4035" y="61.502678" id="rect20563" style="opacity:0.1875;fill:url(#linearGradient26479);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-230.67986" y="97.29557" id="rect20565" style="opacity:0.1875;fill:url(#linearGradient26481);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-297.44293" y="85.375412" id="rect20567" style="opacity:0.1875;fill:url(#linearGradient26483);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-290.59766" y="96.2453" id="rect20569" style="opacity:0.46875;fill:url(#linearGradient26485);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-249.9745" y="104.10505" id="rect20571" style="opacity:0.46875;fill:url(#linearGradient26487);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-264.91541" y="63.215496" id="rect20573" style="opacity:0.46875;fill:url(#linearGradient26489);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-255.64404" y="65.274605" id="rect20575" style="opacity:0.1875;fill:url(#linearGradient26491);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-256.5867" y="64.151192" id="rect20577" style="opacity:0.1875;fill:url(#linearGradient26493);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.08963" y="73.799103" id="rect20579" style="opacity:0.1875;fill:url(#linearGradient26495);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-276.13312" y="76.512222" id="rect20581" style="opacity:0.46875;fill:url(#linearGradient26497);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-235.81549" y="67.021263" id="rect20583" style="opacity:0.46875;fill:url(#linearGradient26499);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-287.50644" y="95.929291" id="rect20585" style="opacity:0.46875;fill:url(#linearGradient26501);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-286.86389" y="64.541458" id="rect20587" style="opacity:0.1875;fill:url(#linearGradient26503);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-234.83641" y="102.7418" id="rect20589" style="opacity:0.1875;fill:url(#linearGradient26505);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-271.98199" y="108.77027" id="rect20591" style="opacity:0.1875;fill:url(#linearGradient26507);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-244.55357" y="70.026482" id="rect20593" style="opacity:0.46875;fill:url(#linearGradient26509);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-235.90517" y="73.117393" id="rect20595" style="opacity:0.46875;fill:url(#linearGradient26511);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-307.35992" y="81.319099" id="rect20597" style="opacity:0.46875;fill:url(#linearGradient26513);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-300.24792" y="60.969742" id="rect20599" style="opacity:0.1875;fill:url(#linearGradient26515);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-282.96555" y="82.846146" id="rect20601" style="opacity:0.1875;fill:url(#linearGradient26517);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-233.6167" y="105.03866" id="rect20603" style="opacity:0.1875;fill:url(#linearGradient26519);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-232.6017" y="85.002228" id="rect20605" style="opacity:0.46875;fill:url(#linearGradient26521);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-227.29018" y="87.934219" id="rect20607" style="opacity:0.46875;fill:url(#linearGradient26523);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-295.26987" y="97.667152" id="rect20609" style="opacity:0.46875;fill:url(#linearGradient26525);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-232.37012" y="94.034401" id="rect20611" style="opacity:0.1875;fill:url(#linearGradient26527);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-233.27859" y="64.077866" id="rect20613" style="opacity:0.1875;fill:url(#linearGradient26529);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-255.16219" y="75.800377" id="rect20615" style="opacity:0.1875;fill:url(#linearGradient26531);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-270.15637" y="69.005692" id="rect20617" style="opacity:0.46875;fill:url(#linearGradient26533);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-291.32767" y="106.1306" id="rect20619" style="opacity:0.46875;fill:url(#linearGradient26535);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-294.69739" y="106.73238" id="rect20621" style="opacity:0.46875;fill:url(#linearGradient26537);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-292.82419" y="60.101208" id="rect20623" style="opacity:0.1875;fill:url(#linearGradient26539);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-225.54817" y="70.407402" id="rect20625" style="opacity:0.1875;fill:url(#linearGradient26541);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.70004" y="61.894451" id="rect20627" style="opacity:0.1875;fill:url(#linearGradient26543);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-231.56357" y="73.227684" id="rect20629" style="opacity:0.46875;fill:url(#linearGradient26545);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-248.77377" y="86.167908" id="rect20631" style="opacity:0.46875;fill:url(#linearGradient26547);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.4563" y="80.202568" id="rect20633" style="opacity:0.46875;fill:url(#linearGradient26549);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-222.79651" y="77.157135" id="rect20635" style="opacity:0.1875;fill:url(#linearGradient26551);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-297.74509" y="97.382492" id="rect20637" style="opacity:0.1875;fill:url(#linearGradient26553);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-280.50726" y="61.974281" id="rect20639" style="opacity:0.1875;fill:url(#linearGradient26555);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-272.52014" y="104.55537" id="rect20641" style="opacity:0.46875;fill:url(#linearGradient26557);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-295.15088" y="102.41749" id="rect20643" style="opacity:0.46875;fill:url(#linearGradient26559);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-303.94156" y="66.058792" id="rect20645" style="opacity:0.46875;fill:url(#linearGradient26561);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-245.36902" y="79.583107" id="rect20647" style="opacity:0.1875;fill:url(#linearGradient26563);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-299.76428" y="89.643036" id="rect20649" style="opacity:0.1875;fill:url(#linearGradient26565);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-228.89841" y="106.57912" id="rect20651" style="opacity:0.1875;fill:url(#linearGradient26567);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-292.56018" y="105.04887" id="rect20653" style="opacity:0.46875;fill:url(#linearGradient26569);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-273.64111" y="61.205338" id="rect20655" style="opacity:0.46875;fill:url(#linearGradient26571);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-233.98749" y="68.127831" id="rect20657" style="opacity:0.46875;fill:url(#linearGradient26573);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-286.47653" y="88.594643" id="rect20659" style="opacity:0.1875;fill:url(#linearGradient26575);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-292.98727" y="105.70779" id="rect20661" style="opacity:0.1875;fill:url(#linearGradient26577);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-226.75633" y="59.944138" id="rect20663" style="opacity:0.1875;fill:url(#linearGradient26579);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-281.99521" y="98.409698" id="rect20665" style="opacity:0.46875;fill:url(#linearGradient26581);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-261.45309" y="83.215034" id="rect20667" style="opacity:0.46875;fill:url(#linearGradient26583);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-259.63129" y="84.058441" id="rect20669" style="opacity:0.46875;fill:url(#linearGradient26585);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-250.14677" y="62.076561" id="rect20671" style="opacity:0.1875;fill:url(#linearGradient26587);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-276.11346" y="79.031021" id="rect20673" style="opacity:0.1875;fill:url(#linearGradient26589);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-304.29114" y="72.775261" id="rect20675" style="opacity:0.1875;fill:url(#linearGradient26591);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-300.68109" y="77.156677" id="rect20677" style="opacity:0.46875;fill:url(#linearGradient26593);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-236.78348" y="98.731834" id="rect20679" style="opacity:0.46875;fill:url(#linearGradient26595);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-225.43291" y="78.722549" id="rect20681" style="opacity:0.46875;fill:url(#linearGradient26597);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-277.78207" y="65.402222" id="rect20683" style="opacity:0.1875;fill:url(#linearGradient26599);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-260.7579" y="96.139221" id="rect20685" style="opacity:0.1875;fill:url(#linearGradient26601);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-260.65329" y="96.36525" id="rect20687" style="opacity:0.1875;fill:url(#linearGradient26603);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-231.38538" y="84.262276" id="rect20689" style="opacity:0.46875;fill:url(#linearGradient26605);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-232.24651" y="76.61116" id="rect20691" style="opacity:0.46875;fill:url(#linearGradient26607);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-298.17392" y="94.361511" id="rect20693" style="opacity:0.46875;fill:url(#linearGradient26609);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-254.1611" y="80.839401" id="rect20695" style="opacity:0.1875;fill:url(#linearGradient26611);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-301.12796" y="79.646004" id="rect20697" style="opacity:0.1875;fill:url(#linearGradient26613);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-300.54639" y="104.00186" id="rect20699" style="opacity:0.1875;fill:url(#linearGradient26615);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-303.37537" y="71.01062" id="rect20701" style="opacity:0.46875;fill:url(#linearGradient26617);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-265.93375" y="102.269" id="rect20703" style="opacity:0.46875;fill:url(#linearGradient26619);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.88052" y="98.329185" id="rect20705" style="opacity:0.46875;fill:url(#linearGradient26621);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-223.75504" y="99.959984" id="rect20707" style="opacity:0.1875;fill:url(#linearGradient26623);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-283.50363" y="107.33015" id="rect20709" style="opacity:0.1875;fill:url(#linearGradient26625);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-303.61804" y="108.15018" id="rect20711" style="opacity:0.1875;fill:url(#linearGradient26627);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-300.03036" y="106.36648" id="rect20713" style="opacity:0.46875;fill:url(#linearGradient26629);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-303.59375" y="71.416595" id="rect20715" style="opacity:0.46875;fill:url(#linearGradient26631);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-300.73062" y="58.53096" id="rect20717" style="opacity:0.46875;fill:url(#linearGradient26633);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-292.80426" y="60.331181" id="rect20719" style="opacity:0.1875;fill:url(#linearGradient26635);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-268.48868" y="83.144234" id="rect20721" style="opacity:0.1875;fill:url(#linearGradient26637);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-307.44165" y="61.080101" id="rect20723" style="opacity:0.1875;fill:url(#linearGradient26639);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-249.13631" y="81.72905" id="rect20725" style="opacity:0.46875;fill:url(#linearGradient26641);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-243.89638" y="106.73634" id="rect20727" style="opacity:0.46875;fill:url(#linearGradient26643);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-304.9827" y="108.69421" id="rect20729" style="opacity:0.46875;fill:url(#linearGradient26645);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-276.26816" y="76.166199" id="rect20731" style="opacity:0.1875;fill:url(#linearGradient26647);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-261.2561" y="67.529793" id="rect20733" style="opacity:0.1875;fill:url(#linearGradient26649);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-306.53851" y="92.740334" id="rect20735" style="opacity:0.1875;fill:url(#linearGradient26651);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-237.18407" y="60.572968" id="rect20737" style="opacity:0.46875;fill:url(#linearGradient26653);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-244.11626" y="59.471355" id="rect20739" style="opacity:0.46875;fill:url(#linearGradient26655);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-238.31374" y="70.263519" id="rect20741" style="opacity:0.46875;fill:url(#linearGradient26657);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-295.89474" y="102.27914" id="rect20743" style="opacity:0.1875;fill:url(#linearGradient26659);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-251.24013" y="74.366951" id="rect20745" style="opacity:0.1875;fill:url(#linearGradient26661);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-303.00098" y="58.264374" id="rect20747" style="opacity:0.1875;fill:url(#linearGradient26663);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.54126" y="86.428101" id="rect20749" style="opacity:0.46875;fill:url(#linearGradient26665);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-304.38449" y="90.213768" id="rect20751" style="opacity:0.46875;fill:url(#linearGradient26667);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-283.8826" y="93.236168" id="rect20753" style="opacity:0.46875;fill:url(#linearGradient26669);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-276.99405" y="56.928612" id="rect20755" style="opacity:0.1875;fill:url(#linearGradient26671);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-283.38376" y="70.148064" id="rect20757" style="opacity:0.1875;fill:url(#linearGradient26673);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-271.78781" y="62.705917" id="rect20759" style="opacity:0.1875;fill:url(#linearGradient26675);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-300.72897" y="78.997246" id="rect20761" style="opacity:0.46875;fill:url(#linearGradient26677);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-253.59196" y="61.592701" id="rect20763" style="opacity:0.46875;fill:url(#linearGradient26679);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-257.47235" y="74.270607" id="rect20765" style="opacity:0.46875;fill:url(#linearGradient26681);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-292.67603" y="103.00905" id="rect20767" style="opacity:0.1875;fill:url(#linearGradient26683);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-271.1875" y="58.221188" id="rect20769" style="opacity:0.1875;fill:url(#linearGradient26685);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-293.44116" y="93.098091" id="rect20771" style="opacity:0.1875;fill:url(#linearGradient26687);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-274.90311" y="95.846085" id="rect20773" style="opacity:0.46875;fill:url(#linearGradient26689);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-290.50949" y="101.26105" id="rect20775" style="opacity:0.46875;fill:url(#linearGradient26691);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-301.00677" y="55.524345" id="rect20777" style="opacity:0.46875;fill:url(#linearGradient26693);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-251.34172" y="102.48254" id="rect20779" style="opacity:0.1875;fill:url(#linearGradient26695);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-258.48227" y="106.88896" id="rect20781" style="opacity:0.1875;fill:url(#linearGradient26697);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-277.00226" y="92.920219" id="rect20783" style="opacity:0.1875;fill:url(#linearGradient26699);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-231.33708" y="90.449989" id="rect20785" style="opacity:0.46875;fill:url(#linearGradient26701);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-227.81618" y="105.25217" id="rect20787" style="opacity:0.46875;fill:url(#linearGradient26703);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-281.00833" y="98.852737" id="rect20789" style="opacity:0.46875;fill:url(#linearGradient26705);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-220.06483" y="93.540413" id="rect20791" style="opacity:0.1875;fill:url(#linearGradient26707);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-233.59024" y="71.885101" id="rect20793" style="opacity:0.1875;fill:url(#linearGradient26709);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-245.60995" y="110.16111" id="rect20795" style="opacity:0.1875;fill:url(#linearGradient26711);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-299.35635" y="96.913025" id="rect20797" style="opacity:0.46875;fill:url(#linearGradient26713);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-231.3793" y="67.212074" id="rect20799" style="opacity:0.46875;fill:url(#linearGradient26715);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-305.76932" y="105.27201" id="rect20801" style="opacity:0.46875;fill:url(#linearGradient26717);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.66428" y="96.795341" id="rect20803" style="opacity:0.1875;fill:url(#linearGradient26719);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-298.21658" y="82.294411" id="rect20805" style="opacity:0.1875;fill:url(#linearGradient26721);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-301.59726" y="87.788773" id="rect20807" style="opacity:0.1875;fill:url(#linearGradient26723);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-228.504" y="69.20105" id="rect20809" style="opacity:0.46875;fill:url(#linearGradient26725);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-276.41647" y="102.48328" id="rect20811" style="opacity:0.46875;fill:url(#linearGradient26727);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-237.83372" y="108.8929" id="rect20813" style="opacity:0.46875;fill:url(#linearGradient26729);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-240.95575" y="68.082726" id="rect20815" style="opacity:0.1875;fill:url(#linearGradient26731);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-289.51202" y="86.063263" id="rect20817" style="opacity:0.1875;fill:url(#linearGradient26733);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-277.23071" y="85.233902" id="rect20819" style="opacity:0.1875;fill:url(#linearGradient26735);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-221.3028" y="95.189102" id="rect20821" style="opacity:0.46875;fill:url(#linearGradient26737);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-290.50308" y="75.583626" id="rect20823" style="opacity:0.46875;fill:url(#linearGradient26739);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-296.41016" y="90.319199" id="rect20825" style="opacity:0.46875;fill:url(#linearGradient26741);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-287.21121" y="87.030853" id="rect20827" style="opacity:0.1875;fill:url(#linearGradient26743);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-229.5347" y="82.118057" id="rect20829" style="opacity:0.1875;fill:url(#linearGradient26745);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-305.19586" y="90.467171" id="rect20831" style="opacity:0.1875;fill:url(#linearGradient26747);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-219.30733" y="105.46643" id="rect20833" style="opacity:0.46875;fill:url(#linearGradient26749);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-293.22729" y="92.518166" id="rect20835" style="opacity:0.46875;fill:url(#linearGradient26751);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-286.12463" y="72.211571" id="rect20837" style="opacity:0.46875;fill:url(#linearGradient26753);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-221.77547" y="70.537048" id="rect20839" style="opacity:0.1875;fill:url(#linearGradient26755);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-307.22208" y="105.5964" id="rect20841" style="opacity:0.1875;fill:url(#linearGradient26757);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-236.0667" y="65.166298" id="rect20843" style="opacity:0.1875;fill:url(#linearGradient26759);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.77191" y="64.786659" id="rect20845" style="opacity:0.46875;fill:url(#linearGradient26761);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-284.46454" y="74.910774" id="rect20847" style="opacity:0.46875;fill:url(#linearGradient26763);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-237.85799" y="55.804825" id="rect20849" style="opacity:0.46875;fill:url(#linearGradient26765);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-283.27036" y="67.163628" id="rect20851" style="opacity:0.1875;fill:url(#linearGradient26767);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-253.91354" y="107.84132" id="rect20853" style="opacity:0.1875;fill:url(#linearGradient26769);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-261.21909" y="55.62373" id="rect20855" style="opacity:0.1875;fill:url(#linearGradient26771);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-241.54463" y="60.722244" id="rect20857" style="opacity:0.46875;fill:url(#linearGradient26773);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-286.40973" y="60.930378" id="rect20859" style="opacity:0.46875;fill:url(#linearGradient26775);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-261.5116" y="61.007633" id="rect20861" style="opacity:0.46875;fill:url(#linearGradient26777);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-256.71246" y="63.907291" id="rect20863" style="opacity:0.1875;fill:url(#linearGradient26779);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-267.91263" y="92.62661" id="rect20865" style="opacity:0.1875;fill:url(#linearGradient26781);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-264.60248" y="101.52387" id="rect20867" style="opacity:0.1875;fill:url(#linearGradient26783);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-275.04568" y="86.762276" id="rect20869" style="opacity:0.46875;fill:url(#linearGradient26785);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-285.13998" y="97.211113" id="rect20871" style="opacity:0.46875;fill:url(#linearGradient26787);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-228.45563" y="75.488144" id="rect20873" style="opacity:0.46875;fill:url(#linearGradient26789);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-237.2831" y="63.000179" id="rect20875" style="opacity:0.1875;fill:url(#linearGradient26791);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-257.81769" y="84.297562" id="rect20877" style="opacity:0.1875;fill:url(#linearGradient26793);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-299.20258" y="110.55594" id="rect20879" style="opacity:0.1875;fill:url(#linearGradient26795);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-255.10905" y="101.29549" id="rect20881" style="opacity:0.46875;fill:url(#linearGradient26797);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-282.63766" y="110.90127" id="rect20883" style="opacity:0.46875;fill:url(#linearGradient26799);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-242.0107" y="96.098122" id="rect20885" style="opacity:0.46875;fill:url(#linearGradient26801);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-224.40564" y="80.693207" id="rect20887" style="opacity:0.1875;fill:url(#linearGradient26803);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-230.71815" y="108.91924" id="rect20889" style="opacity:0.1875;fill:url(#linearGradient26805);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-232.46727" y="64.286911" id="rect20891" style="opacity:0.1875;fill:url(#linearGradient26807);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-301.94312" y="81.063759" id="rect20893" style="opacity:0.46875;fill:url(#linearGradient26809);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-262.71429" y="61.501709" id="rect20895" style="opacity:0.46875;fill:url(#linearGradient26811);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-244.6245" y="67.977432" id="rect20897" style="opacity:0.46875;fill:url(#linearGradient26813);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-305.12466" y="76.452377" id="rect20899" style="opacity:0.1875;fill:url(#linearGradient26815);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-296.96835" y="108.51657" id="rect20901" style="opacity:0.1875;fill:url(#linearGradient26817);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-259.4852" y="59.947071" id="rect20903" style="opacity:0.1875;fill:url(#linearGradient26819);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-217.3017" y="87.066414" id="rect20905" style="opacity:0.46875;fill:url(#linearGradient26821);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-303.32651" y="107.02791" id="rect20907" style="opacity:0.46875;fill:url(#linearGradient26823);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-274.71164" y="96.72039" id="rect20909" style="opacity:0.46875;fill:url(#linearGradient26825);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-239.15398" y="61.069256" id="rect20911" style="opacity:0.1875;fill:url(#linearGradient26827);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-244.36102" y="74.99781" id="rect20913" style="opacity:0.1875;fill:url(#linearGradient26829);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-260.75641" y="88.847244" id="rect20915" style="opacity:0.1875;fill:url(#linearGradient26831);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-218.14275" y="67.334724" id="rect20917" style="opacity:0.46875;fill:url(#linearGradient26833);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.18599" y="109.29144" id="rect20919" style="opacity:0.46875;fill:url(#linearGradient26835);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-230.15916" y="96.86953" id="rect20921" style="opacity:0.46875;fill:url(#linearGradient26837);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-295.06256" y="109.20979" id="rect20923" style="opacity:0.1875;fill:url(#linearGradient26839);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-284.84415" y="103.0084" id="rect20925" style="opacity:0.1875;fill:url(#linearGradient26841);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-252.68372" y="87.013405" id="rect20927" style="opacity:0.1875;fill:url(#linearGradient26843);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-250.10957" y="77.451866" id="rect20929" style="opacity:0.46875;fill:url(#linearGradient26845);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-262.20053" y="90.775269" id="rect20931" style="opacity:0.46875;fill:url(#linearGradient26847);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-303.03128" y="64.104378" id="rect20933" style="opacity:0.46875;fill:url(#linearGradient26849);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-269.23318" y="56.084965" id="rect20935" style="opacity:0.1875;fill:url(#linearGradient26851);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.92523" y="57.800106" id="rect20937" style="opacity:0.1875;fill:url(#linearGradient26853);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-243.84235" y="101.17597" id="rect20939" style="opacity:0.1875;fill:url(#linearGradient26855);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-287.93134" y="85.971329" id="rect20941" style="opacity:0.46875;fill:url(#linearGradient26857);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-288.52533" y="56.047573" id="rect20943" style="opacity:0.46875;fill:url(#linearGradient26859);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-241.68431" y="92.835999" id="rect20945" style="opacity:0.46875;fill:url(#linearGradient26861);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-230.14163" y="102.65902" id="rect20947" style="opacity:0.1875;fill:url(#linearGradient26863);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-242.81085" y="62.801945" id="rect20949" style="opacity:0.1875;fill:url(#linearGradient26865);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-301.79077" y="61.009129" id="rect20951" style="opacity:0.1875;fill:url(#linearGradient26867);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-296.69693" y="73.567009" id="rect20953" style="opacity:0.46875;fill:url(#linearGradient26869);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.56216" y="91.539566" id="rect20955" style="opacity:0.46875;fill:url(#linearGradient26871);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-229.46866" y="67.355965" id="rect20957" style="opacity:0.46875;fill:url(#linearGradient26873);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-243.63399" y="59.601711" id="rect20959" style="opacity:0.1875;fill:url(#linearGradient26875);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.94403" y="59.034389" id="rect20961" style="opacity:0.1875;fill:url(#linearGradient26877);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-273.75485" y="57.040806" id="rect20963" style="opacity:0.1875;fill:url(#linearGradient26879);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-246.73541" y="60.859955" id="rect20965" style="opacity:0.46875;fill:url(#linearGradient26881);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-287.32837" y="101.73196" id="rect20967" style="opacity:0.46875;fill:url(#linearGradient26883);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-288.10788" y="86.818977" id="rect20969" style="opacity:0.46875;fill:url(#linearGradient26885);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-239.92403" y="106.37849" id="rect20971" style="opacity:0.1875;fill:url(#linearGradient26887);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-268.3898" y="81.959496" id="rect20973" style="opacity:0.1875;fill:url(#linearGradient26889);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-245.32462" y="78.340958" id="rect20975" style="opacity:0.1875;fill:url(#linearGradient26891);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-296.25104" y="61.141666" id="rect20977" style="opacity:0.46875;fill:url(#linearGradient26893);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-306.68286" y="67.630676" id="rect20979" style="opacity:0.46875;fill:url(#linearGradient26895);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-238.85361" y="106.74319" id="rect20981" style="opacity:0.46875;fill:url(#linearGradient26897);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-275.17776" y="81.861305" id="rect20983" style="opacity:0.1875;fill:url(#linearGradient26899);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-244.77428" y="65.122116" id="rect20985" style="opacity:0.1875;fill:url(#linearGradient26901);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-227.12112" y="73.324898" id="rect20987" style="opacity:0.1875;fill:url(#linearGradient26903);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-226.10251" y="63.861496" id="rect20989" style="opacity:0.46875;fill:url(#linearGradient26905);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-302.49176" y="61.256626" id="rect20991" style="opacity:0.46875;fill:url(#linearGradient26907);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-274.67081" y="62.871773" id="rect20993" style="opacity:0.46875;fill:url(#linearGradient26909);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-264.56204" y="63.978767" id="rect20995" style="opacity:0.1875;fill:url(#linearGradient26911);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.94516" y="108.00268" id="rect20997" style="opacity:0.1875;fill:url(#linearGradient26913);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-225.51779" y="105.95143" id="rect20999" style="opacity:0.1875;fill:url(#linearGradient26915);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-220.02303" y="78.689621" id="rect21001" style="opacity:0.46875;fill:url(#linearGradient26917);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.29872" y="56.172379" id="rect21003" style="opacity:0.46875;fill:url(#linearGradient26919);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-251.64853" y="73.173126" id="rect21005" style="opacity:0.46875;fill:url(#linearGradient26921);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-298.56259" y="76.504417" id="rect21007" style="opacity:0.1875;fill:url(#linearGradient26923);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-268.48233" y="65.487144" id="rect21009" style="opacity:0.1875;fill:url(#linearGradient26925);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-306.20041" y="57.922138" id="rect21011" style="opacity:0.1875;fill:url(#linearGradient26927);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-282.10361" y="64.32032" id="rect21013" style="opacity:0.46875;fill:url(#linearGradient26929);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-301.30933" y="87.516853" id="rect21015" style="opacity:0.46875;fill:url(#linearGradient26931);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-284.75369" y="55.552612" id="rect21017" style="opacity:0.46875;fill:url(#linearGradient26933);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-223.38631" y="87.094467" id="rect21019" style="opacity:0.1875;fill:url(#linearGradient26935);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-229.48524" y="99.373978" id="rect21021" style="opacity:0.1875;fill:url(#linearGradient26937);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-307.3002" y="105.05029" id="rect21023" style="opacity:0.1875;fill:url(#linearGradient26939);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-245.85101" y="100.16848" id="rect21025" style="opacity:0.46875;fill:url(#linearGradient26941);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-289.41794" y="101.33263" id="rect21027" style="opacity:0.46875;fill:url(#linearGradient26943);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-236.23395" y="75.302628" id="rect21029" style="opacity:0.46875;fill:url(#linearGradient26945);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-256.17188" y="89.433014" id="rect21031" style="opacity:0.1875;fill:url(#linearGradient26947);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-268.1181" y="69.298286" id="rect21033" style="opacity:0.1875;fill:url(#linearGradient26949);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-236.73039" y="57.077488" id="rect21035" style="opacity:0.1875;fill:url(#linearGradient26951);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-288.0459" y="98.268242" id="rect21037" style="opacity:0.46875;fill:url(#linearGradient26953);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-280.43768" y="71.375671" id="rect21039" style="opacity:0.46875;fill:url(#linearGradient26955);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-259.02997" y="77.971458" id="rect21041" style="opacity:0.46875;fill:url(#linearGradient26957);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-258.72766" y="101.21225" id="rect21043" style="opacity:0.1875;fill:url(#linearGradient26959);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-233.49631" y="91.145035" id="rect21045" style="opacity:0.1875;fill:url(#linearGradient26961);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-307.40121" y="108.50367" id="rect21047" style="opacity:0.1875;fill:url(#linearGradient26963);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-268.62418" y="73.931641" id="rect21049" style="opacity:0.46875;fill:url(#linearGradient26965);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-271.92096" y="64.543587" id="rect21051" style="opacity:0.46875;fill:url(#linearGradient26967);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-244.87704" y="86.798286" id="rect21053" style="opacity:0.46875;fill:url(#linearGradient26969);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-276.21255" y="84.152184" id="rect21055" style="opacity:0.1875;fill:url(#linearGradient26971);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-301.7442" y="68.038704" id="rect21057" style="opacity:0.1875;fill:url(#linearGradient26973);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-283.7352" y="106.20054" id="rect21059" style="opacity:0.1875;fill:url(#linearGradient26975);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-248.01788" y="63.94009" id="rect21061" style="opacity:0.46875;fill:url(#linearGradient26977);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-267.39545" y="81.627846" id="rect21063" style="opacity:0.46875;fill:url(#linearGradient26979);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.15396" y="87.510963" id="rect21065" style="opacity:0.46875;fill:url(#linearGradient26981);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-301.94168" y="76.720764" id="rect21067" style="opacity:0.1875;fill:url(#linearGradient26983);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-229.2645" y="76.507072" id="rect21069" style="opacity:0.1875;fill:url(#linearGradient26985);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-242.54091" y="64.807266" id="rect21071" style="opacity:0.1875;fill:url(#linearGradient26987);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-244.0256" y="105.53462" id="rect21073" style="opacity:0.46875;fill:url(#linearGradient26989);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.12021" y="86.390068" id="rect21075" style="opacity:0.46875;fill:url(#linearGradient26991);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-257.93661" y="69.662346" id="rect21077" style="opacity:0.46875;fill:url(#linearGradient26993);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-237.68182" y="92.135094" id="rect21079" style="opacity:0.1875;fill:url(#linearGradient26995);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-288.80685" y="59.947994" id="rect21081" style="opacity:0.1875;fill:url(#linearGradient26997);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-246.94907" y="75.974976" id="rect21083" style="opacity:0.1875;fill:url(#linearGradient26999);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-224.59161" y="102.0582" id="rect21085" style="opacity:0.46875;fill:url(#linearGradient27001);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-226.84268" y="60.748241" id="rect21087" style="opacity:0.46875;fill:url(#linearGradient27003);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-247.03136" y="61.704609" id="rect21089" style="opacity:0.46875;fill:url(#linearGradient27005);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-271.67252" y="62.573116" id="rect21091" style="opacity:0.1875;fill:url(#linearGradient27007);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-229.56517" y="98.622765" id="rect21093" style="opacity:0.1875;fill:url(#linearGradient27009);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-272.1326" y="94.367805" id="rect21095" style="opacity:0.1875;fill:url(#linearGradient27011);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.82713" y="68.418785" id="rect21097" style="opacity:0.46875;fill:url(#linearGradient27013);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-257.95242" y="81.885948" id="rect21099" style="opacity:0.46875;fill:url(#linearGradient27015);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-266.41571" y="103.11871" id="rect21101" style="opacity:0.46875;fill:url(#linearGradient27017);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-297.21912" y="55.450714" id="rect21103" style="opacity:0.1875;fill:url(#linearGradient27019);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-293.15164" y="97.328751" id="rect21105" style="opacity:0.1875;fill:url(#linearGradient27021);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-287.23364" y="62.857697" id="rect21107" style="opacity:0.1875;fill:url(#linearGradient27023);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-262.56189" y="88.4048" id="rect21109" style="opacity:0.46875;fill:url(#linearGradient27025);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-261.62183" y="85.401474" id="rect21111" style="opacity:0.46875;fill:url(#linearGradient27027);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-235.16788" y="109.76205" id="rect21113" style="opacity:0.46875;fill:url(#linearGradient27029);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-217.02565" y="80.835899" id="rect21115" style="opacity:0.1875;fill:url(#linearGradient27031);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-231.5825" y="91.056412" id="rect21117" style="opacity:0.1875;fill:url(#linearGradient27033);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-229.58057" y="92.429237" id="rect21119" style="opacity:0.1875;fill:url(#linearGradient27035);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-255.8084" y="106.70076" id="rect21121" style="opacity:0.46875;fill:url(#linearGradient27037);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-276.72501" y="80.25724" id="rect21123" style="opacity:0.46875;fill:url(#linearGradient27039);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-251.79741" y="109.15076" id="rect21125" style="opacity:0.46875;fill:url(#linearGradient27041);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-262.84338" y="100.30168" id="rect21127" style="opacity:0.1875;fill:url(#linearGradient27043);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-263.46655" y="89.088768" id="rect21129" style="opacity:0.1875;fill:url(#linearGradient27045);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-279.07495" y="103.64899" id="rect21131" style="opacity:0.1875;fill:url(#linearGradient27047);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-246.85617" y="72.184769" id="rect21133" style="opacity:0.46875;fill:url(#linearGradient27049);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.11118" y="89.581963" id="rect21135" style="opacity:0.46875;fill:url(#linearGradient27051);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-271.29672" y="69.089821" id="rect21137" style="opacity:0.46875;fill:url(#linearGradient27053);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-245.05901" y="72.152023" id="rect21139" style="opacity:0.1875;fill:url(#linearGradient27055);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-286.00827" y="102.33545" id="rect21141" style="opacity:0.1875;fill:url(#linearGradient27057);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-307.26855" y="61.659031" id="rect21143" style="opacity:0.1875;fill:url(#linearGradient27059);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-295.82904" y="71.701729" id="rect21145" style="opacity:0.46875;fill:url(#linearGradient27061);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-238.60464" y="77.884239" id="rect21147" style="opacity:0.46875;fill:url(#linearGradient27063);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-251.12772" y="85.596474" id="rect21149" style="opacity:0.46875;fill:url(#linearGradient27065);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-227.31731" y="56.329018" id="rect21151" style="opacity:0.1875;fill:url(#linearGradient27067);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-303.57483" y="95.667526" id="rect21153" style="opacity:0.1875;fill:url(#linearGradient27069);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-265.48077" y="100.69909" id="rect21155" style="opacity:0.1875;fill:url(#linearGradient27071);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-228.17764" y="59.823067" id="rect21157" style="opacity:0.46875;fill:url(#linearGradient27073);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-229.42281" y="78.211479" id="rect21159" style="opacity:0.46875;fill:url(#linearGradient27075);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-301.68494" y="70.215508" id="rect21161" style="opacity:0.46875;fill:url(#linearGradient27077);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-288.6322" y="101.17437" id="rect21163" style="opacity:0.1875;fill:url(#linearGradient27079);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-285.22156" y="85.157867" id="rect21165" style="opacity:0.1875;fill:url(#linearGradient27081);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-301.52106" y="63.534519" id="rect21167" style="opacity:0.1875;fill:url(#linearGradient27083);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-216.44229" y="83.262306" id="rect21169" style="opacity:0.46875;fill:url(#linearGradient27085);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-287.93253" y="108.89066" id="rect21171" style="opacity:0.46875;fill:url(#linearGradient27087);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-293.96442" y="57.4179" id="rect21173" style="opacity:0.46875;fill:url(#linearGradient27089);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-292.90317" y="111.03307" id="rect21175" style="opacity:0.1875;fill:url(#linearGradient27091);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-256.35715" y="69.274529" id="rect21177" style="opacity:0.1875;fill:url(#linearGradient27093);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-260.00333" y="109.78416" id="rect21179" style="opacity:0.1875;fill:url(#linearGradient27095);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-283.11942" y="94.954216" id="rect21181" style="opacity:0.46875;fill:url(#linearGradient27097);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-296.60632" y="85.795189" id="rect21183" style="opacity:0.46875;fill:url(#linearGradient27099);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-256.70975" y="66.782021" id="rect21185" style="opacity:0.46875;fill:url(#linearGradient27101);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-299.90479" y="102.16841" id="rect21187" style="opacity:0.1875;fill:url(#linearGradient27103);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-228.94711" y="57.03421" id="rect21189" style="opacity:0.1875;fill:url(#linearGradient27105);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-264.45731" y="61.083805" id="rect21191" style="opacity:0.1875;fill:url(#linearGradient27107);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-239.54405" y="93.159767" id="rect21193" style="opacity:0.46875;fill:url(#linearGradient27109);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-260.33878" y="92.271156" id="rect21195" style="opacity:0.46875;fill:url(#linearGradient27111);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-280.116" y="84.80423" id="rect21197" style="opacity:0.46875;fill:url(#linearGradient27113);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-250.88902" y="58.80711" id="rect21199" style="opacity:0.1875;fill:url(#linearGradient27115);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-294.33392" y="76.536911" id="rect21201" style="opacity:0.1875;fill:url(#linearGradient27117);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-306.26511" y="80.201492" id="rect21203" style="opacity:0.1875;fill:url(#linearGradient27119);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-301.01447" y="100.298" id="rect21205" style="opacity:0.46875;fill:url(#linearGradient27121);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-253.10202" y="58.051792" id="rect21207" style="opacity:0.46875;fill:url(#linearGradient27123);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-252.26166" y="107.3416" id="rect21209" style="opacity:0.46875;fill:url(#linearGradient27125);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-245.62167" y="58.792862" id="rect21211" style="opacity:0.1875;fill:url(#linearGradient27127);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-261.48352" y="61.158932" id="rect21213" style="opacity:0.1875;fill:url(#linearGradient27129);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-283.12637" y="66.620155" id="rect21215" style="opacity:0.1875;fill:url(#linearGradient27131);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-288.6153" y="73.945251" id="rect21217" style="opacity:0.46875;fill:url(#linearGradient27133);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.59021" y="65.025085" id="rect21219" style="opacity:0.46875;fill:url(#linearGradient27135);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.93964" y="95.183495" id="rect21221" style="opacity:0.46875;fill:url(#linearGradient27137);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.58449" y="98.754738" id="rect21223" style="opacity:0.1875;fill:url(#linearGradient27139);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-275.2807" y="65.886925" id="rect21225" style="opacity:0.1875;fill:url(#linearGradient27141);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-280.5025" y="83.986488" id="rect21227" style="opacity:0.1875;fill:url(#linearGradient27143);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-269.90002" y="85.324791" id="rect21229" style="opacity:0.46875;fill:url(#linearGradient27145);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-302.44086" y="82.210342" id="rect21231" style="opacity:0.46875;fill:url(#linearGradient27147);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-256.56891" y="84.863411" id="rect21233" style="opacity:0.46875;fill:url(#linearGradient27149);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-297.25336" y="87.089043" id="rect21235" style="opacity:0.1875;fill:url(#linearGradient27151);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-273.89474" y="76.845276" id="rect21237" style="opacity:0.1875;fill:url(#linearGradient27153);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-266.92368" y="108.63635" id="rect21239" style="opacity:0.1875;fill:url(#linearGradient27155);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-234.47511" y="63.970722" id="rect21241" style="opacity:0.46875;fill:url(#linearGradient27157);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-299.57806" y="61.810444" id="rect21243" style="opacity:0.46875;fill:url(#linearGradient27159);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-237.78726" y="80.350128" id="rect21245" style="opacity:0.46875;fill:url(#linearGradient27161);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-246.69666" y="70.788307" id="rect21247" style="opacity:0.1875;fill:url(#linearGradient27163);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-232.49185" y="68.09623" id="rect21249" style="opacity:0.1875;fill:url(#linearGradient27165);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-230.31662" y="72.337776" id="rect21251" style="opacity:0.1875;fill:url(#linearGradient27167);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-294.89255" y="66.959465" id="rect21253" style="opacity:0.46875;fill:url(#linearGradient27169);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-244.88751" y="69.532631" id="rect21255" style="opacity:0.46875;fill:url(#linearGradient27171);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-274.67349" y="60.119705" id="rect21257" style="opacity:0.46875;fill:url(#linearGradient27173);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-251.59361" y="87.967026" id="rect21259" style="opacity:0.1875;fill:url(#linearGradient27175);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.74771" y="107.91908" id="rect21261" style="opacity:0.1875;fill:url(#linearGradient27177);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-231.36357" y="97.068886" id="rect21263" style="opacity:0.1875;fill:url(#linearGradient27179);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-238.16719" y="75.513985" id="rect21265" style="opacity:0.46875;fill:url(#linearGradient27181);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-271.69632" y="99.551247" id="rect21267" style="opacity:0.46875;fill:url(#linearGradient27183);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-251.33495" y="75.012238" id="rect21269" style="opacity:0.46875;fill:url(#linearGradient27185);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-256.54056" y="111.64594" id="rect21271" style="opacity:0.1875;fill:url(#linearGradient27187);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.6232" y="57.15493" id="rect21273" style="opacity:0.1875;fill:url(#linearGradient27189);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-228.94926" y="102.41476" id="rect21275" style="opacity:0.1875;fill:url(#linearGradient27191);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-271.89328" y="68.986198" id="rect21277" style="opacity:0.46875;fill:url(#linearGradient27193);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-233.78401" y="92.376289" id="rect21279" style="opacity:0.46875;fill:url(#linearGradient27195);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-248.17442" y="62.975868" id="rect21281" style="opacity:0.46875;fill:url(#linearGradient27197);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-234.98894" y="74.333855" id="rect21283" style="opacity:0.1875;fill:url(#linearGradient27199);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-306.34875" y="74.775146" id="rect21285" style="opacity:0.1875;fill:url(#linearGradient27201);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-258.19437" y="67.117424" id="rect21287" style="opacity:0.1875;fill:url(#linearGradient27203);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-283.04742" y="87.623558" id="rect21289" style="opacity:0.46875;fill:url(#linearGradient27205);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-292.68338" y="83.066238" id="rect21291" style="opacity:0.46875;fill:url(#linearGradient27207);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-256.97443" y="68.172554" id="rect21293" style="opacity:0.46875;fill:url(#linearGradient27209);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-259.65314" y="103.76814" id="rect21295" style="opacity:0.1875;fill:url(#linearGradient27211);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-284.52921" y="89.421211" id="rect21297" style="opacity:0.1875;fill:url(#linearGradient27213);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-255.46428" y="86.758759" id="rect21299" style="opacity:0.1875;fill:url(#linearGradient27215);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-307.32059" y="59.507183" id="rect21301" style="opacity:0.46875;fill:url(#linearGradient27217);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-268.4805" y="56.354454" id="rect21303" style="opacity:0.46875;fill:url(#linearGradient27219);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-253.79776" y="82.508331" id="rect21305" style="opacity:0.46875;fill:url(#linearGradient27221);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-250.34879" y="101.22415" id="rect21307" style="opacity:0.1875;fill:url(#linearGradient27223);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-286.26691" y="81.187157" id="rect21309" style="opacity:0.1875;fill:url(#linearGradient27225);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-245.5034" y="57.942776" id="rect21311" style="opacity:0.1875;fill:url(#linearGradient27227);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-279.29797" y="56.313656" id="rect21313" style="opacity:0.46875;fill:url(#linearGradient27229);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-239.09218" y="102.84291" id="rect21315" style="opacity:0.46875;fill:url(#linearGradient27231);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-300.79333" y="57.296597" id="rect21317" style="opacity:0.46875;fill:url(#linearGradient27233);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-230.46246" y="58.547722" id="rect21319" style="opacity:0.1875;fill:url(#linearGradient27235);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-290.19955" y="98.540131" id="rect21321" style="opacity:0.1875;fill:url(#linearGradient27237);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-246.17332" y="70.700653" id="rect21323" style="opacity:0.1875;fill:url(#linearGradient27239);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-281.90558" y="89.287468" id="rect21325" style="opacity:0.46875;fill:url(#linearGradient27241);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-267.75607" y="75.273468" id="rect21327" style="opacity:0.46875;fill:url(#linearGradient27243);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-285.25287" y="96.609406" id="rect21329" style="opacity:0.46875;fill:url(#linearGradient27245);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-251.75479" y="105.10313" id="rect21331" style="opacity:0.1875;fill:url(#linearGradient27247);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-236.81497" y="60.864231" id="rect21333" style="opacity:0.1875;fill:url(#linearGradient27249);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-261.41241" y="63.960575" id="rect21335" style="opacity:0.1875;fill:url(#linearGradient27251);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-250.99886" y="64.671219" id="rect21337" style="opacity:0.46875;fill:url(#linearGradient27253);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-236.80031" y="56.595322" id="rect21339" style="opacity:0.46875;fill:url(#linearGradient27255);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-246.96497" y="103.23323" id="rect21341" style="opacity:0.46875;fill:url(#linearGradient27257);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-260.19916" y="75.172691" id="rect21343" style="opacity:0.1875;fill:url(#linearGradient27259);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-293.57715" y="101.3636" id="rect21345" style="opacity:0.1875;fill:url(#linearGradient27261);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-235.93849" y="74.692139" id="rect21347" style="opacity:0.1875;fill:url(#linearGradient27263);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-293.13702" y="64.289536" id="rect21349" style="opacity:0.46875;fill:url(#linearGradient27265);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-231.13849" y="63.319588" id="rect21351" style="opacity:0.46875;fill:url(#linearGradient27267);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-233.52722" y="87.676361" id="rect21353" style="opacity:0.46875;fill:url(#linearGradient27269);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-249.15074" y="78.342529" id="rect21355" style="opacity:0.1875;fill:url(#linearGradient27271);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-304.875" y="106.99411" id="rect21357" style="opacity:0.1875;fill:url(#linearGradient27273);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-243.84726" y="69.912445" id="rect21359" style="opacity:0.1875;fill:url(#linearGradient27275);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-245.75728" y="84.166862" id="rect21361" style="opacity:0.46875;fill:url(#linearGradient27277);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-296.75204" y="88.894562" id="rect21363" style="opacity:0.46875;fill:url(#linearGradient27279);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-267.36176" y="58.718811" id="rect21365" style="opacity:0.46875;fill:url(#linearGradient27281);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-223.17926" y="100.05959" id="rect21367" style="opacity:0.1875;fill:url(#linearGradient27283);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-291.39511" y="91.973068" id="rect21369" style="opacity:0.1875;fill:url(#linearGradient27285);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-234.90848" y="65.40184" id="rect21371" style="opacity:0.1875;fill:url(#linearGradient27287);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-276.50565" y="82.440086" id="rect21373" style="opacity:0.46875;fill:url(#linearGradient27289);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-282.06406" y="62.919212" id="rect21375" style="opacity:0.46875;fill:url(#linearGradient27291);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-294.80597" y="79.708824" id="rect21377" style="opacity:0.46875;fill:url(#linearGradient27293);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-219.50827" y="86.379814" id="rect21379" style="opacity:0.1875;fill:url(#linearGradient27295);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-306.90628" y="78.480072" id="rect21381" style="opacity:0.1875;fill:url(#linearGradient27297);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-239.25328" y="88.913887" id="rect21383" style="opacity:0.1875;fill:url(#linearGradient27299);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-283.05078" y="72.513489" id="rect21385" style="opacity:0.46875;fill:url(#linearGradient27301);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-243.75754" y="59.668365" id="rect21387" style="opacity:0.46875;fill:url(#linearGradient27303);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-251.42499" y="84.254898" id="rect21389" style="opacity:0.46875;fill:url(#linearGradient27305);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-230.21336" y="92.538765" id="rect21391" style="opacity:0.1875;fill:url(#linearGradient27307);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-274.96292" y="67.801994" id="rect21393" style="opacity:0.1875;fill:url(#linearGradient27309);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-259.03345" y="79.786247" id="rect21395" style="opacity:0.1875;fill:url(#linearGradient27311);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-222.33481" y="73.434113" id="rect21397" style="opacity:0.46875;fill:url(#linearGradient27313);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.33148" y="104.76869" id="rect21399" style="opacity:0.46875;fill:url(#linearGradient27315);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-233.44894" y="99.540825" id="rect21401" style="opacity:0.46875;fill:url(#linearGradient27317);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-256.04898" y="81.255905" id="rect21403" style="opacity:0.1875;fill:url(#linearGradient27319);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-298.30069" y="63.783806" id="rect21405" style="opacity:0.1875;fill:url(#linearGradient27321);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-266.29605" y="68.727859" id="rect21407" style="opacity:0.1875;fill:url(#linearGradient27323);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-222.89272" y="66.714928" id="rect21409" style="opacity:0.46875;fill:url(#linearGradient27325);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-302.11136" y="102.37201" id="rect21411" style="opacity:0.46875;fill:url(#linearGradient27327);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-255.21965" y="90.515549" id="rect21413" style="opacity:0.46875;fill:url(#linearGradient27329);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-217.83557" y="104.97116" id="rect21415" style="opacity:0.1875;fill:url(#linearGradient27331);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.50201" y="107.85217" id="rect21417" style="opacity:0.1875;fill:url(#linearGradient27333);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-256.51273" y="109.82304" id="rect21419" style="opacity:0.1875;fill:url(#linearGradient27335);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-296.68771" y="83.052849" id="rect21421" style="opacity:0.46875;fill:url(#linearGradient27337);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-234.08441" y="55.352558" id="rect21423" style="opacity:0.46875;fill:url(#linearGradient27339);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-307.1561" y="69.60759" id="rect21425" style="opacity:0.46875;fill:url(#linearGradient27341);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-248.7278" y="98.796432" id="rect21427" style="opacity:0.1875;fill:url(#linearGradient27343);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-305.89224" y="93.656448" id="rect21429" style="opacity:0.1875;fill:url(#linearGradient27345);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-230.91916" y="79.919479" id="rect21431" style="opacity:0.1875;fill:url(#linearGradient27347);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-275.83963" y="82.481972" id="rect21433" style="opacity:0.46875;fill:url(#linearGradient27349);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-294.69556" y="84.644272" id="rect21435" style="opacity:0.46875;fill:url(#linearGradient27351);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-296.13559" y="75.38723" id="rect21437" style="opacity:0.46875;fill:url(#linearGradient27353);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-245.20813" y="69.854103" id="rect21439" style="opacity:0.1875;fill:url(#linearGradient27355);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-280.60059" y="68.559395" id="rect21441" style="opacity:0.1875;fill:url(#linearGradient27357);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-283.63321" y="81.568436" id="rect21443" style="opacity:0.1875;fill:url(#linearGradient27359);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-257.16757" y="81.135536" id="rect21445" style="opacity:0.46875;fill:url(#linearGradient27361);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-296.10229" y="85.68129" id="rect21447" style="opacity:0.46875;fill:url(#linearGradient27363);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-229.03432" y="107.33843" id="rect21449" style="opacity:0.46875;fill:url(#linearGradient27365);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-234.79033" y="95.026062" id="rect21451" style="opacity:0.1875;fill:url(#linearGradient27367);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-247.72145" y="98.058182" id="rect21453" style="opacity:0.1875;fill:url(#linearGradient27369);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-233.6649" y="63.695808" id="rect21455" style="opacity:0.1875;fill:url(#linearGradient27371);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-220.88246" y="75.468437" id="rect21457" style="opacity:0.46875;fill:url(#linearGradient27373);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-275.45953" y="111.10085" id="rect21459" style="opacity:0.46875;fill:url(#linearGradient27375);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-232.74779" y="85.411835" id="rect21461" style="opacity:0.46875;fill:url(#linearGradient27377);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-225.76868" y="65.039749" id="rect21463" style="opacity:0.1875;fill:url(#linearGradient27379);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-273.39914" y="109.71464" id="rect21465" style="opacity:0.1875;fill:url(#linearGradient27381);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-287.76727" y="87.23999" id="rect21467" style="opacity:0.1875;fill:url(#linearGradient27383);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-235.03047" y="70.933456" id="rect21469" style="opacity:0.46875;fill:url(#linearGradient27385);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-261.24399" y="91.743217" id="rect21471" style="opacity:0.46875;fill:url(#linearGradient27387);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-268.04282" y="96.093422" id="rect21473" style="opacity:0.46875;fill:url(#linearGradient27389);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-303.54053" y="80.427925" id="rect21475" style="opacity:0.1875;fill:url(#linearGradient27391);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-294.41525" y="87.967781" id="rect21477" style="opacity:0.1875;fill:url(#linearGradient27393);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-287.14575" y="92.518379" id="rect21479" style="opacity:0.1875;fill:url(#linearGradient27395);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-267.88187" y="104.75542" id="rect21481" style="opacity:0.46875;fill:url(#linearGradient27397);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-225.48245" y="56.437023" id="rect21483" style="opacity:0.46875;fill:url(#linearGradient27399);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-291.78445" y="71.8396" id="rect21485" style="opacity:0.46875;fill:url(#linearGradient27401);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-271.13855" y="110.62964" id="rect21487" style="opacity:0.1875;fill:url(#linearGradient27403);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-265.79547" y="95.475662" id="rect21489" style="opacity:0.1875;fill:url(#linearGradient27405);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-260.55093" y="83.479332" id="rect21491" style="opacity:0.1875;fill:url(#linearGradient27407);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-264.83661" y="105.59111" id="rect21493" style="opacity:0.46875;fill:url(#linearGradient27409);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-283.90616" y="105.14223" id="rect21495" style="opacity:0.46875;fill:url(#linearGradient27411);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-247.52286" y="110.83428" id="rect21497" style="opacity:0.46875;fill:url(#linearGradient27413);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-233.30792" y="108.30075" id="rect21499" style="opacity:0.1875;fill:url(#linearGradient27415);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-238.4128" y="66.733093" id="rect21501" style="opacity:0.1875;fill:url(#linearGradient27417);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-236.95995" y="100.79337" id="rect21503" style="opacity:0.1875;fill:url(#linearGradient27419);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-248.94753" y="109.69339" id="rect21505" style="opacity:0.46875;fill:url(#linearGradient27421);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-285.84122" y="61.881496" id="rect21507" style="opacity:0.46875;fill:url(#linearGradient27423);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-263.46597" y="90.312744" id="rect21509" style="opacity:0.46875;fill:url(#linearGradient27425);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-305.28766" y="105.66008" id="rect21511" style="opacity:0.1875;fill:url(#linearGradient27427);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-306.57361" y="110.81626" id="rect21513" style="opacity:0.1875;fill:url(#linearGradient27429);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-273.30582" y="78.19458" id="rect21515" style="opacity:0.1875;fill:url(#linearGradient27431);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-245.36133" y="65.584717" id="rect21517" style="opacity:0.46875;fill:url(#linearGradient27433);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-247.48462" y="90.008995" id="rect21519" style="opacity:0.46875;fill:url(#linearGradient27435);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-293.29022" y="77.312546" id="rect21521" style="opacity:0.46875;fill:url(#linearGradient27437);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-290.92154" y="108.85014" id="rect21523" style="opacity:0.1875;fill:url(#linearGradient27439);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-235.70132" y="86.926987" id="rect21525" style="opacity:0.1875;fill:url(#linearGradient27441);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-299.51126" y="81.268387" id="rect21527" style="opacity:0.1875;fill:url(#linearGradient27443);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-242.69012" y="107.18739" id="rect21529" style="opacity:0.46875;fill:url(#linearGradient27445);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-296.16809" y="91.953133" id="rect21531" style="opacity:0.46875;fill:url(#linearGradient27447);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-303.52182" y="91.424484" id="rect21533" style="opacity:0.46875;fill:url(#linearGradient27449);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-265.15775" y="104.16637" id="rect21535" style="opacity:0.1875;fill:url(#linearGradient27451);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-302.05234" y="58.979252" id="rect21537" style="opacity:0.1875;fill:url(#linearGradient27453);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-261.64029" y="55.466087" id="rect21539" style="opacity:0.1875;fill:url(#linearGradient27455);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-259.65317" y="72.480949" id="rect21541" style="opacity:0.46875;fill:url(#linearGradient27457);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-234.7802" y="75.611626" id="rect21543" style="opacity:0.46875;fill:url(#linearGradient27459);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-305.25217" y="107.40909" id="rect21545" style="opacity:0.46875;fill:url(#linearGradient27461);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-236.92938" y="100.32093" id="rect21547" style="opacity:0.1875;fill:url(#linearGradient27463);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.53226" y="61.29652" id="rect21549" style="opacity:0.1875;fill:url(#linearGradient27465);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-292.69031" y="77.940781" id="rect21551" style="opacity:0.1875;fill:url(#linearGradient27467);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-281.86548" y="85.345512" id="rect21553" style="opacity:0.46875;fill:url(#linearGradient27469);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.49466" y="73.688721" id="rect21555" style="opacity:0.46875;fill:url(#linearGradient27471);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-232.92558" y="101.36566" id="rect21557" style="opacity:0.46875;fill:url(#linearGradient27473);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-263.073" y="107.99613" id="rect21559" style="opacity:0.1875;fill:url(#linearGradient27475);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-293.97604" y="90.513596" id="rect21561" style="opacity:0.1875;fill:url(#linearGradient27477);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-238.73608" y="97.185303" id="rect21563" style="opacity:0.1875;fill:url(#linearGradient27479);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.27396" y="105.07907" id="rect21565" style="opacity:0.46875;fill:url(#linearGradient27481);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-229.82477" y="56.584343" id="rect21567" style="opacity:0.46875;fill:url(#linearGradient27483);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-286.95914" y="98.348389" id="rect21569" style="opacity:0.46875;fill:url(#linearGradient27485);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-251.59947" y="63.419086" id="rect21571" style="opacity:0.1875;fill:url(#linearGradient27487);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.72168" y="82.934814" id="rect21573" style="opacity:0.1875;fill:url(#linearGradient27489);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-279.19464" y="66.085556" id="rect21575" style="opacity:0.1875;fill:url(#linearGradient27491);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-284.0527" y="58.101696" id="rect21577" style="opacity:0.46875;fill:url(#linearGradient27493);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-280.06149" y="103.94582" id="rect21579" style="opacity:0.46875;fill:url(#linearGradient27495);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-235.56268" y="72.870979" id="rect21581" style="opacity:0.46875;fill:url(#linearGradient27497);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-252.6017" y="74.478989" id="rect21583" style="opacity:0.1875;fill:url(#linearGradient27499);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.55887" y="99.894096" id="rect21585" style="opacity:0.1875;fill:url(#linearGradient27501);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-248.11136" y="92.003113" id="rect21587" style="opacity:0.1875;fill:url(#linearGradient27503);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-258.96588" y="91.77327" id="rect21589" style="opacity:0.46875;fill:url(#linearGradient27505);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-227.51933" y="105.80508" id="rect21591" style="opacity:0.46875;fill:url(#linearGradient27507);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-242.48543" y="103.79506" id="rect21593" style="opacity:0.46875;fill:url(#linearGradient27509);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.12206" y="108.9409" id="rect21595" style="opacity:0.1875;fill:url(#linearGradient27511);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-293.02167" y="58.260303" id="rect21597" style="opacity:0.1875;fill:url(#linearGradient27513);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-272.77448" y="65.542923" id="rect21599" style="opacity:0.1875;fill:url(#linearGradient27515);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-305.63763" y="68.649734" id="rect21601" style="opacity:0.46875;fill:url(#linearGradient27517);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.66443" y="55.40823" id="rect21603" style="opacity:0.46875;fill:url(#linearGradient27519);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-281.11868" y="70.003098" id="rect21605" style="opacity:0.46875;fill:url(#linearGradient27521);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-281.80618" y="83.68644" id="rect21607" style="opacity:0.1875;fill:url(#linearGradient27523);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-276.61108" y="72.337257" id="rect21609" style="opacity:0.1875;fill:url(#linearGradient27525);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-281.52625" y="91.485954" id="rect21611" style="opacity:0.1875;fill:url(#linearGradient27527);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-302.82098" y="73.17878" id="rect21613" style="opacity:0.46875;fill:url(#linearGradient27529);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-244.31381" y="62.302635" id="rect21615" style="opacity:0.46875;fill:url(#linearGradient27531);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.39542" y="100.40778" id="rect21617" style="opacity:0.46875;fill:url(#linearGradient27533);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-305.2916" y="56.54998" id="rect21619" style="opacity:0.1875;fill:url(#linearGradient27535);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-226.85687" y="88.680138" id="rect21621" style="opacity:0.1875;fill:url(#linearGradient27537);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-290.02325" y="57.190468" id="rect21623" style="opacity:0.1875;fill:url(#linearGradient27539);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-218.22159" y="107.58854" id="rect21625" style="opacity:0.46875;fill:url(#linearGradient27541);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-296.79041" y="67.897629" id="rect21627" style="opacity:0.46875;fill:url(#linearGradient27543);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-286.17734" y="93.437904" id="rect21629" style="opacity:0.46875;fill:url(#linearGradient27545);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-221.62856" y="69.776123" id="rect21631" style="opacity:0.1875;fill:url(#linearGradient27547);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-292.85226" y="72.556374" id="rect21633" style="opacity:0.1875;fill:url(#linearGradient27549);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-236.26521" y="65.97863" id="rect21829" style="opacity:0.46875;fill:url(#linearGradient27745);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-234.92079" y="66.180679" id="rect21635" style="opacity:0.1875;fill:url(#linearGradient27551);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-273.52203" y="88.789848" id="rect21637" style="opacity:0.46875;fill:url(#linearGradient27553);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-239.35887" y="106.48306" id="rect21639" style="opacity:0.46875;fill:url(#linearGradient27555);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-257.09924" y="61.134922" id="rect21641" style="opacity:0.46875;fill:url(#linearGradient27557);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-293.71439" y="71.699997" id="rect21643" style="opacity:0.1875;fill:url(#linearGradient27559);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.7209" y="60.317715" id="rect21645" style="opacity:0.1875;fill:url(#linearGradient27561);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-232.00232" y="56.347214" id="rect21647" style="opacity:0.1875;fill:url(#linearGradient27563);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-230.17883" y="94.825455" id="rect21649" style="opacity:0.46875;fill:url(#linearGradient27565);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-271.89526" y="87.537811" id="rect21651" style="opacity:0.46875;fill:url(#linearGradient27567);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-261.26334" y="84.091301" id="rect21653" style="opacity:0.46875;fill:url(#linearGradient27569);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-300.27002" y="70.411156" id="rect21655" style="opacity:0.1875;fill:url(#linearGradient27571);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-259.69394" y="78.538818" id="rect21657" style="opacity:0.1875;fill:url(#linearGradient27573);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-273.68408" y="60.320854" id="rect21659" style="opacity:0.1875;fill:url(#linearGradient27575);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-251.35306" y="103.11416" id="rect21661" style="opacity:0.46875;fill:url(#linearGradient27577);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-244.28685" y="96.777092" id="rect21663" style="opacity:0.46875;fill:url(#linearGradient27579);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-238.80014" y="106.55783" id="rect21665" style="opacity:0.46875;fill:url(#linearGradient27581);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-222.17648" y="66.65284" id="rect21667" style="opacity:0.1875;fill:url(#linearGradient27583);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-306.69562" y="59.358051" id="rect21669" style="opacity:0.1875;fill:url(#linearGradient27585);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-267.25375" y="75.676254" id="rect21671" style="opacity:0.1875;fill:url(#linearGradient27587);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-263.92645" y="65.860481" id="rect21673" style="opacity:0.46875;fill:url(#linearGradient27589);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-269.39749" y="102.62814" id="rect21675" style="opacity:0.46875;fill:url(#linearGradient27591);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.31821" y="77.852493" id="rect21677" style="opacity:0.46875;fill:url(#linearGradient27593);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-243.6496" y="101.4992" id="rect21679" style="opacity:0.1875;fill:url(#linearGradient27595);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-243.46136" y="73.306519" id="rect21681" style="opacity:0.1875;fill:url(#linearGradient27597);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-305.29956" y="102.79834" id="rect21683" style="opacity:0.1875;fill:url(#linearGradient27599);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-245.90312" y="85.702217" id="rect21685" style="opacity:0.46875;fill:url(#linearGradient27601);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-303.05383" y="111.4539" id="rect21687" style="opacity:0.46875;fill:url(#linearGradient27603);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-268.43542" y="81.403618" id="rect21689" style="opacity:0.46875;fill:url(#linearGradient27605);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-267.30719" y="92.514725" id="rect21691" style="opacity:0.1875;fill:url(#linearGradient27607);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-300.24991" y="74.283562" id="rect21693" style="opacity:0.1875;fill:url(#linearGradient27609);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-282.06049" y="60.561077" id="rect21695" style="opacity:0.1875;fill:url(#linearGradient27611);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-239.73814" y="105.74458" id="rect21697" style="opacity:0.46875;fill:url(#linearGradient27613);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.22021" y="96.253685" id="rect21699" style="opacity:0.46875;fill:url(#linearGradient27615);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-288.03934" y="110.5692" id="rect21701" style="opacity:0.46875;fill:url(#linearGradient27617);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-257.17294" y="111.13409" id="rect21703" style="opacity:0.1875;fill:url(#linearGradient27619);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-234.59334" y="101.43046" id="rect21705" style="opacity:0.1875;fill:url(#linearGradient27621);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.58798" y="60.705799" id="rect21707" style="opacity:0.1875;fill:url(#linearGradient27623);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-272.61441" y="73.019402" id="rect21709" style="opacity:0.46875;fill:url(#linearGradient27625);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-267.7652" y="98.472694" id="rect21711" style="opacity:0.46875;fill:url(#linearGradient27627);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-276.8707" y="107.17078" id="rect21713" style="opacity:0.46875;fill:url(#linearGradient27629);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-238.23187" y="86.312042" id="rect21715" style="opacity:0.1875;fill:url(#linearGradient27631);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-232.60698" y="95.533546" id="rect21717" style="opacity:0.1875;fill:url(#linearGradient27633);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-306.71002" y="101.39093" id="rect21719" style="opacity:0.1875;fill:url(#linearGradient27635);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-272.34747" y="86.315704" id="rect21721" style="opacity:0.46875;fill:url(#linearGradient27637);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-291.95612" y="55.324371" id="rect21723" style="opacity:0.46875;fill:url(#linearGradient27639);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-304.55295" y="102.14988" id="rect21725" style="opacity:0.46875;fill:url(#linearGradient27641);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-267.01569" y="61.645065" id="rect21727" style="opacity:0.1875;fill:url(#linearGradient27643);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-256.86374" y="110.06892" id="rect21729" style="opacity:0.1875;fill:url(#linearGradient27645);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-297.23123" y="92.380867" id="rect21731" style="opacity:0.1875;fill:url(#linearGradient27647);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-276.22873" y="59.463947" id="rect21733" style="opacity:0.46875;fill:url(#linearGradient27649);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-291.77228" y="92.189217" id="rect21735" style="opacity:0.46875;fill:url(#linearGradient27651);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-285.35599" y="108.36303" id="rect21737" style="opacity:0.46875;fill:url(#linearGradient27653);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-278.51425" y="55.131035" id="rect21739" style="opacity:0.1875;fill:url(#linearGradient27655);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-254.97046" y="78.479927" id="rect21741" style="opacity:0.1875;fill:url(#linearGradient27657);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-290.53455" y="70.767914" id="rect21743" style="opacity:0.1875;fill:url(#linearGradient27659);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-248.0918" y="83.996956" id="rect21745" style="opacity:0.46875;fill:url(#linearGradient27661);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-280.30066" y="100.72653" id="rect21747" style="opacity:0.46875;fill:url(#linearGradient27663);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-279.70331" y="67.053055" id="rect21749" style="opacity:0.46875;fill:url(#linearGradient27665);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-299.98083" y="73.581207" id="rect21751" style="opacity:0.1875;fill:url(#linearGradient27667);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-265.08847" y="94.374672" id="rect21753" style="opacity:0.1875;fill:url(#linearGradient27669);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-254.45741" y="100.69733" id="rect21755" style="opacity:0.1875;fill:url(#linearGradient27671);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-231.60889" y="85.703201" id="rect21757" style="opacity:0.46875;fill:url(#linearGradient27673);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-274.84732" y="103.87772" id="rect21759" style="opacity:0.46875;fill:url(#linearGradient27675);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-289.03357" y="90.877365" id="rect21761" style="opacity:0.46875;fill:url(#linearGradient27677);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-275.6626" y="70.500305" id="rect21763" style="opacity:0.1875;fill:url(#linearGradient27679);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-225.17976" y="57.346786" id="rect21765" style="opacity:0.1875;fill:url(#linearGradient27681);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-275.80215" y="76.338768" id="rect21767" style="opacity:0.1875;fill:url(#linearGradient27683);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-230.84044" y="62.407707" id="rect21769" style="opacity:0.46875;fill:url(#linearGradient27685);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-305.61429" y="109.48866" id="rect21771" style="opacity:0.46875;fill:url(#linearGradient27687);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-292.95377" y="99.259407" id="rect21773" style="opacity:0.46875;fill:url(#linearGradient27689);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-302.67654" y="80.126701" id="rect21775" style="opacity:0.1875;fill:url(#linearGradient27691);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-232.54361" y="80.017448" id="rect21777" style="opacity:0.1875;fill:url(#linearGradient27693);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-270.85376" y="96.710403" id="rect21779" style="opacity:0.1875;fill:url(#linearGradient27695);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-236.68607" y="104.046" id="rect21781" style="opacity:0.46875;fill:url(#linearGradient27697);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-271.02905" y="68.652893" id="rect21783" style="opacity:0.46875;fill:url(#linearGradient27699);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-294.33957" y="59.477379" id="rect21785" style="opacity:0.46875;fill:url(#linearGradient27701);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-233.72734" y="62.554237" id="rect21787" style="opacity:0.1875;fill:url(#linearGradient27703);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-251.08012" y="84.629906" id="rect21789" style="opacity:0.1875;fill:url(#linearGradient27705);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-246.50664" y="61.226196" id="rect21791" style="opacity:0.1875;fill:url(#linearGradient27707);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-288.17026" y="109.02679" id="rect21793" style="opacity:0.46875;fill:url(#linearGradient27709);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-276.62747" y="110.70783" id="rect21795" style="opacity:0.46875;fill:url(#linearGradient27711);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-252.71053" y="105.81419" id="rect21797" style="opacity:0.46875;fill:url(#linearGradient27713);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-223.33205" y="56.806377" id="rect21799" style="opacity:0.1875;fill:url(#linearGradient27715);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-290.8923" y="72.453812" id="rect21801" style="opacity:0.1875;fill:url(#linearGradient27717);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-287.84396" y="81.6036" id="rect21803" style="opacity:0.1875;fill:url(#linearGradient27719);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-259.28372" y="80.256149" id="rect21805" style="opacity:0.46875;fill:url(#linearGradient27721);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-299.51932" y="63.046921" id="rect21807" style="opacity:0.46875;fill:url(#linearGradient27723);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-229.11929" y="86.822929" id="rect21809" style="opacity:0.46875;fill:url(#linearGradient27725);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-273.89749" y="60.208015" id="rect21811" style="opacity:0.1875;fill:url(#linearGradient27727);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-257.36871" y="61.199322" id="rect21813" style="opacity:0.1875;fill:url(#linearGradient27729);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-297.65778" y="99.558662" id="rect21815" style="opacity:0.1875;fill:url(#linearGradient27731);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-294.99631" y="83.771034" id="rect21817" style="opacity:0.46875;fill:url(#linearGradient27733);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-296.79523" y="55.187725" id="rect21819" style="opacity:0.46875;fill:url(#linearGradient27735);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-274.21899" y="67.234024" id="rect21821" style="opacity:0.46875;fill:url(#linearGradient27737);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-279.93652" y="58.027828" id="rect21823" style="opacity:0.1875;fill:url(#linearGradient27739);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-265.09564" y="57.621449" id="rect21825" style="opacity:0.1875;fill:url(#linearGradient27741);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-230.92448" y="62.891903" id="rect21827" style="opacity:0.1875;fill:url(#linearGradient27743);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-245.2112" y="73.311836" id="rect21831" style="opacity:0.46875;fill:url(#linearGradient27747);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-292.29486" y="72.867485" id="rect21833" style="opacity:0.46875;fill:url(#linearGradient27749);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-293.24588" y="71.625595" id="rect21835" style="opacity:0.1875;fill:url(#linearGradient27751);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-259.41812" y="65.277237" id="rect21837" style="opacity:0.1875;fill:url(#linearGradient27753);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-278.57266" y="64.746178" id="rect21839" style="opacity:0.1875;fill:url(#linearGradient27755);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-281.70593" y="95.995338" id="rect21841" style="opacity:0.46875;fill:url(#linearGradient27757);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-260.45135" y="59.459827" id="rect21843" style="opacity:0.46875;fill:url(#linearGradient27759);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-296.65451" y="64.189789" id="rect21845" style="opacity:0.46875;fill:url(#linearGradient27761);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.06418" y="95.602432" id="rect21847" style="opacity:0.1875;fill:url(#linearGradient27763);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-297.3447" y="63.354229" id="rect21849" style="opacity:0.1875;fill:url(#linearGradient27765);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-288.95663" y="101.5279" id="rect21851" style="opacity:0.1875;fill:url(#linearGradient27767);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-298.72165" y="86.172012" id="rect21853" style="opacity:0.46875;fill:url(#linearGradient27769);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-278.71814" y="78.380249" id="rect21855" style="opacity:0.46875;fill:url(#linearGradient27771);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-229.52434" y="93.67672" id="rect21857" style="opacity:0.46875;fill:url(#linearGradient27773);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-290.90338" y="85.702248" id="rect21859" style="opacity:0.1875;fill:url(#linearGradient27775);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.38721" y="77.190605" id="rect21861" style="opacity:0.1875;fill:url(#linearGradient27777);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-247.67737" y="56.181717" id="rect21863" style="opacity:0.1875;fill:url(#linearGradient27779);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-282.15222" y="107.90704" id="rect21865" style="opacity:0.46875;fill:url(#linearGradient27781);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-303.92514" y="69.235466" id="rect21867" style="opacity:0.46875;fill:url(#linearGradient27783);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-282.22012" y="109.27183" id="rect21869" style="opacity:0.46875;fill:url(#linearGradient27785);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-282.93329" y="104.98781" id="rect21871" style="opacity:0.1875;fill:url(#linearGradient27787);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-290.55911" y="75.871635" id="rect21873" style="opacity:0.1875;fill:url(#linearGradient27789);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-290.32047" y="99.745865" id="rect21875" style="opacity:0.1875;fill:url(#linearGradient27791);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-258.80777" y="80.191414" id="rect21877" style="opacity:0.46875;fill:url(#linearGradient27793);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-243.10162" y="73.924088" id="rect21879" style="opacity:0.46875;fill:url(#linearGradient27795);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-234.60951" y="101.18223" id="rect21881" style="opacity:0.46875;fill:url(#linearGradient27797);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-247.05617" y="78.823349" id="rect21883" style="opacity:0.1875;fill:url(#linearGradient27799);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-300.5704" y="108.95625" id="rect21885" style="opacity:0.1875;fill:url(#linearGradient27801);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-280.31177" y="56.026588" id="rect21887" style="opacity:0.1875;fill:url(#linearGradient27803);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-223.99092" y="78.282021" id="rect21889" style="opacity:0.46875;fill:url(#linearGradient27805);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.61678" y="59.413132" id="rect21891" style="opacity:0.46875;fill:url(#linearGradient27807);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-282.67126" y="61.633476" id="rect21893" style="opacity:0.46875;fill:url(#linearGradient27809);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-306.9444" y="111.4621" id="rect21895" style="opacity:0.1875;fill:url(#linearGradient27811);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-240.84995" y="83.256912" id="rect21897" style="opacity:0.1875;fill:url(#linearGradient27813);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-262.802" y="57.619476" id="rect21899" style="opacity:0.1875;fill:url(#linearGradient27815);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-232.81755" y="77.153168" id="rect21901" style="opacity:0.46875;fill:url(#linearGradient27817);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-247.31902" y="68.481903" id="rect21903" style="opacity:0.46875;fill:url(#linearGradient27819);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-238.41722" y="61.906265" id="rect21905" style="opacity:0.46875;fill:url(#linearGradient27821);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-232.65349" y="86.281181" id="rect21907" style="opacity:0.1875;fill:url(#linearGradient27823);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.61473" y="89.972336" id="rect21909" style="opacity:0.1875;fill:url(#linearGradient27825);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-241.95982" y="103.9351" id="rect21911" style="opacity:0.1875;fill:url(#linearGradient27827);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-275.90552" y="105.45963" id="rect21913" style="opacity:0.46875;fill:url(#linearGradient27829);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-236.45705" y="73.526924" id="rect21915" style="opacity:0.46875;fill:url(#linearGradient27831);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-291.1709" y="64.812592" id="rect21917" style="opacity:0.46875;fill:url(#linearGradient27833);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-273.98798" y="64.855049" id="rect21919" style="opacity:0.1875;fill:url(#linearGradient27835);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-233.42635" y="73.936829" id="rect21921" style="opacity:0.1875;fill:url(#linearGradient27837);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-268.98654" y="73.139526" id="rect21923" style="opacity:0.1875;fill:url(#linearGradient27839);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-219.25526" y="80.140846" id="rect21925" style="opacity:0.46875;fill:url(#linearGradient27841);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-277.05325" y="94.54393" id="rect21927" style="opacity:0.46875;fill:url(#linearGradient27843);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-300.58752" y="94.470482" id="rect21929" style="opacity:0.46875;fill:url(#linearGradient27845);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-265.10745" y="68.010391" id="rect21931" style="opacity:0.1875;fill:url(#linearGradient27847);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-262.12384" y="57.154907" id="rect21933" style="opacity:0.1875;fill:url(#linearGradient27849);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-292.16574" y="94.142303" id="rect21935" style="opacity:0.1875;fill:url(#linearGradient27851);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-266.22025" y="110.43915" id="rect21937" style="opacity:0.46875;fill:url(#linearGradient27853);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-250.00839" y="80.812195" id="rect21939" style="opacity:0.46875;fill:url(#linearGradient27855);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-267.59402" y="76.412384" id="rect21941" style="opacity:0.46875;fill:url(#linearGradient27857);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-305.91107" y="58.024467" id="rect21943" style="opacity:0.1875;fill:url(#linearGradient27859);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-249.53322" y="97.532372" id="rect21945" style="opacity:0.1875;fill:url(#linearGradient27861);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-297.9502" y="79.375854" id="rect21947" style="opacity:0.1875;fill:url(#linearGradient27863);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-297.24863" y="83.744377" id="rect21949" style="opacity:0.46875;fill:url(#linearGradient27865);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-258.81308" y="87.086861" id="rect21951" style="opacity:0.46875;fill:url(#linearGradient27867);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-260.07507" y="87.316689" id="rect21953" style="opacity:0.46875;fill:url(#linearGradient27869);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-289.18948" y="111.07953" id="rect21955" style="opacity:0.1875;fill:url(#linearGradient27871);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-259.52704" y="94.9814" id="rect21957" style="opacity:0.1875;fill:url(#linearGradient27873);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-259.55115" y="79.851738" id="rect21959" style="opacity:0.1875;fill:url(#linearGradient27875);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-286.60129" y="67.812614" id="rect21961" style="opacity:0.46875;fill:url(#linearGradient27877);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-260.33926" y="104.16561" id="rect21963" style="opacity:0.46875;fill:url(#linearGradient27879);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-283.54825" y="93.081116" id="rect21965" style="opacity:0.46875;fill:url(#linearGradient27881);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-217.43896" y="58.822296" id="rect21967" style="opacity:0.1875;fill:url(#linearGradient27883);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-237.89325" y="100.85945" id="rect21969" style="opacity:0.1875;fill:url(#linearGradient27885);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-242.74698" y="63.367489" id="rect21971" style="opacity:0.1875;fill:url(#linearGradient27887);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-226.92989" y="76.764717" id="rect21973" style="opacity:0.46875;fill:url(#linearGradient27889);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-233.42609" y="98.909195" id="rect21975" style="opacity:0.46875;fill:url(#linearGradient27891);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-299.9494" y="67.81192" id="rect21977" style="opacity:0.46875;fill:url(#linearGradient27893);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-265.12759" y="80.207634" id="rect21979" style="opacity:0.1875;fill:url(#linearGradient27895);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-260.70068" y="107.55251" id="rect21981" style="opacity:0.1875;fill:url(#linearGradient27897);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-236.33008" y="88.17466" id="rect21983" style="opacity:0.1875;fill:url(#linearGradient27899);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="10.629006" height="0.28105551" rx="0" ry="0" x="-251.88853" y="84.047386" id="rect21985" style="opacity:0.46875;fill:url(#linearGradient27901);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.28105551" rx="0" ry="0" x="-255.8196" y="80.099098" id="rect21987" style="opacity:0.46875;fill:url(#linearGradient27903);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="19.367277" height="0.33215648" rx="0" ry="0" x="-276.29352" y="88.051704" id="rect21989" style="opacity:0.46875;fill:url(#linearGradient27905);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ </g>
+ <path d="M 34.6875,80.38144 C 33.51024,80.38144 32.5625,81.339002 32.5625,82.528441 L 32.5625,82.717882 C 32.5625,81.528444 33.51024,80.570884 34.6875,80.57088 L 85.84375,80.57088 C 86.87384,80.57088 87.74,81.327313 87.9375,82.307427 C 87.82856,81.22269 86.94705,80.38144 85.84375,80.38144 L 34.6875,80.38144 z M 39.96875,111.10251 L 39.96875,111.29197 C 39.96875,111.81689 40.38669,112.23916 40.90625,112.23916 L 55.03125,112.23916 C 55.5508,112.23916 55.96874,111.81689 55.96875,111.29197 L 55.96875,111.10251 C 55.96874,111.62744 55.5508,112.04971 55.03125,112.04971 L 40.90625,112.04971 C 40.38669,112.04971 39.96875,111.62744 39.96875,111.10251 z" id="path3292" style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <path d="M 34.6875,80.279513 C 33.51024,80.279513 32.5625,81.643 32.5625,82.832439 L 32.5625,83.021881 C 32.5625,81.832441 33.51024,81.474879 34.6875,81.474879 L 85.84375,81.474879 C 86.87384,81.474879 87.54,81.631311 87.7375,82.611424 C 87.62856,81.526688 86.94705,80.380993 85.84375,80.380993 L 34.6875,80.279513 z M 39.96875,111.40651 L 39.96875,111.59595 C 39.96875,112.12088 40.38669,112.54316 40.90625,112.54316 L 55.03125,112.54316 C 55.5508,112.54316 55.96874,112.12088 55.96875,111.59595 L 55.96875,111.40651 C 55.96874,111.93144 55.5508,112.35371 55.03125,112.35371 L 40.90625,112.35371 C 40.38669,112.35371 39.96875,111.93144 39.96875,111.40651 z" id="path3301" style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <rect width="0.25288588" height="38.263451" rx="0" ry="0" x="-87.866302" y="81.923531" transform="scale(-1,1)" id="rect27971" style="opacity:1;fill:url(#linearGradient27979);fill-opacity:1;stroke:none;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <g transform="matrix(1.0884558,0,0,1.1036437,-2.1696646,-3.433884)" id="g28105" style="opacity:0.78515625">
+ <rect width="8" height="12" rx="1.079258" ry="1.079258" x="12" y="12" transform="matrix(0.6942102,0,0,0.6942102,4.8926363,5.5042159)" clip-path="url(#clipPath28045)" id="rect28009" style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1;filter:url(#filter28031)"/>
+ <rect width="8" height="12" rx="1.079258" ry="1.079258" x="12" y="12" transform="matrix(0.6942102,0,0,0.6942102,4.8926363,5.5042159)" clip-path="url(#clipPath28041)" id="rect28039" style="opacity:1;fill:url(#radialGradient28110);fill-opacity:1;stroke:url(#linearGradient28112);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1;filter:url(#filter28031)"/>
+ <rect width="4.3502288" height="3.6759202" rx="0.45226815" ry="0.45226815" x="13.897468" y="18.030909" id="rect28057" style="opacity:1;fill:url(#radialGradient28114);fill-opacity:1;stroke:url(#linearGradient28116);stroke-width:0.33188635;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1;filter:url(#filter28101)"/>
+ </g>
+ <rect width="55.5" height="2.5258846" x="32.5" y="118.41405" id="rect28122" style="opacity:0.546875;fill:url(#linearGradient28138);fill-opacity:1;stroke:none;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:4.15;stroke-opacity:1"/>
+ <path d="M 11.375,8.000469 C 9.318588,8.107658 8,9.705749 8,12.312968 L 8,12.906718 C 8,9.927039 9.421552,8.594219 12.375,8.594219 C 48.895822,8.020377 88.665734,8.321938 116.625,8.594219 C 118.52101,8.594219 120,9.722534 120,11.906718 L 120,11.312968 C 120,9.769599 118.4515,8.000469 116.625,8.000469 L 12.375,8.000469 C 12.005819,8.000469 11.668773,7.9851585 11.375,8.000469 z" id="path3391" style="opacity:1;fill:#343434;fill-opacity:0.82840235;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:1.08779998;stroke-opacity:1"/>
+ <path d="M 118.02054,8.3884687 L 118.13103,9.4933229 L 119.58944,9.493323 C 119.49063,9.021128 119.39101,8.3122317 118.02054,8.3884687 z" transform="matrix(-1.3891392,0,0,1.3891392,175.666,-2.239338)" id="path3081" style="fill:url(#radialGradient3084);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3077)"/>
+ <path d="M 117.12054,8.6884687 L 117.23103,9.793323 L 118.68944,9.793323 C 118.59063,9.321128 118.49101,8.6122317 117.12054,8.6884687 z" transform="matrix(1.2828374,0,0,1.2828374,-33.432312,-2.365499)" id="path3031" style="opacity:0.86141304;fill:url(#radialGradient3039);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3077)"/>
+</svg>
\ No newline at end of file
--- /dev/null
+//
+// HelloCube.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2016 jp
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+using System;
+using System.IO;
+using Crow;
+
+namespace Crow.Coding
+{
+ class CrowIDE : CrowVkWin
+ {
+ static void Main (string [] args)
+ {
+ using (CrowIDE app = new CrowIDE ()) {
+ app.initIde ();
+ app.reloadWinConfigs ();
+ app.Run ();
+ app.saveWinConfigs ();
+ }
+ }
+
+ protected override void onLoad ()
+ {
+
+ }
+ public Command CMDNew, CMDOpen, CMDSave, CMDSaveAs, cmdCloseSolution, CMDQuit,
+ CMDUndo, CMDRedo, CMDCut, CMDCopy, CMDPaste, CMDHelp,
+ CMDAbout, CMDOptions,
+ CMDViewGTExp, CMDViewProps, CMDViewProj, CMDViewProjProps, CMDViewErrors, CMDViewSolution, CMDViewEditor, CMDViewProperties,
+ CMDViewToolbox, CMDViewSchema, CMDViewStyling,CMDViewDesign,
+ CMDCompile;
+
+ void initCommands () {
+ CMDNew = new Command(new Action(() => newFile())) { Caption = "New", Icon = new SvgPicture("#CrowIDE.icons.blank-file.svg"), CanExecute = true};
+ CMDOpen = new Command(new Action(() => openFileDialog())) { Caption = "Open...", Icon = new SvgPicture("#CrowIDE.icons.open.svg") };
+ CMDSave = new Command(new Action(() => saveFileDialog())) { Caption = "Save", Icon = new SvgPicture("#CrowIDE.icons.save.svg"), CanExecute = false};
+ CMDSaveAs = new Command(new Action(() => saveFileDialog())) { Caption = "Save As...", Icon = new SvgPicture("#CrowIDE.icons.save.svg"), CanExecute = false};
+ //CMDQuit = new Command(new Action(() => running = false)) { Caption = "Quit", Icon = new SvgPicture("#CrowIDE.icons.sign-out.svg") };
+ CMDUndo = new Command(new Action(() => undo())) { Caption = "Undo", Icon = new SvgPicture("#CrowIDE.icons.undo.svg"), CanExecute = false};
+ CMDRedo = new Command(new Action(() => redo())) { Caption = "Redo", Icon = new SvgPicture("#CrowIDE.icons.redo.svg"), CanExecute = false};
+ //CMDCut = new Command(new Action(() => Quit (null, null))) { Caption = "Cut", Icon = new SvgPicture("#CrowIDE.icons.scissors.svg"), CanExecute = false};
+ //CMDCopy = new Command(new Action(() => Quit (null, null))) { Caption = "Copy", Icon = new SvgPicture("#CrowIDE.icons.copy-file.svg"), CanExecute = false};
+ //CMDPaste = new Command(new Action(() => Quit (null, null))) { Caption = "Paste", Icon = new SvgPicture("#CrowIDE.icons.paste-on-document.svg"), CanExecute = false};
+ CMDHelp = new Command(new Action(() => System.Diagnostics.Debug.WriteLine("help"))) { Caption = "Help", Icon = new SvgPicture("#CrowIDE.icons.question.svg") };
+ CMDOptions = new Command(new Action(() => loadWindow("#CrowIDE.ui.Options.crow"))) { Caption = "Editor Options", Icon = new SvgPicture("#CrowIDE.icons.tools.svg") };
+
+ cmdCloseSolution = new Command(new Action(() => closeSolution()))
+ { Caption = "Close Solution", Icon = new SvgPicture("#CrowIDE.icons.paste-on-document.svg"), CanExecute = false};
+
+ CMDViewErrors = new Command(new Action(() => loadWindow ("#CrowIDE.ui.DockWindows.winErrors.crow",this)))
+ { Caption = "Errors pane"};
+ CMDViewSolution = new Command(new Action(() => loadWindow ("#CrowIDE.ui.DockWindows.winSolution.crow",this)))
+ { Caption = "Solution Tree", CanExecute = false};
+ CMDViewEditor = new Command(new Action(() => loadWindow ("#CrowIDE.ui.DockWindows.winEditor.crow",this)))
+ { Caption = "Editor Pane"};
+ CMDViewProperties = new Command(new Action(() => loadWindow ("#CrowIDE.ui.DockWindows.winProperties.crow",this)))
+ { Caption = "Properties"};
+ CMDViewDesign = new Command(new Action(() => loadWindow ("#CrowIDE.ui.DockWindows.winDesign.crow",this)))
+ { Caption = "Quick Design", CanExecute = true};
+ CMDViewToolbox = new Command(new Action(() => loadWindow ("#CrowIDE.ui.DockWindows.winToolbox.crow",this)))
+ { Caption = "Toolbox", CanExecute = false};
+ CMDViewSchema = new Command(new Action(() => loadWindow ("#CrowIDE.ui.DockWindows.winSchema.crow",this)))
+ { Caption = "IML Shematic View", CanExecute = true};
+ CMDViewStyling = new Command(new Action(() => loadWindow ("#CrowIDE.ui.DockWindows.winStyleView.crow",this)))
+ { Caption = "Styling Explorer", CanExecute = true};
+
+ CMDViewGTExp = new Command(new Action(() => loadWindow ("#CrowIDE.ui.DockWindows.winGTExplorer.crow",this)))
+ { Caption = "Graphic Tree Explorer", CanExecute = true};
+ CMDCompile = new Command(new Action(() => compileSolution()))
+ { Caption = "Compile", CanExecute = false};
+ CMDViewProjProps = new Command(new Action(loadProjProps))
+ { Caption = "Project Properties", CanExecute = false};
+ }
+
+ void openFileDialog () {
+ crow.AddWidget (instFileDlg.CreateInstance()).DataSource = this;
+ }
+ void openOptionsDialog(){}
+ void newFile() {
+ currentSolution.OpenedItems.AddElement(new ProjectFile());
+ }
+ void saveFileDialog() {}
+ void undo() {}
+ void redo() {}
+ void closeSolution (){
+ if (currentSolution != null)
+ currentSolution.CloseSolution ();
+ CurrentSolution = null;
+ }
+
+ public void saveWinConfigs() {
+ Configuration.Global.Set ("WinConfigs", mainDock.ExportConfig ());
+ Configuration.Global.Save ();
+ }
+ public void reloadWinConfigs() {
+ string conf = Configuration.Global.Get<string>("WinConfigs");
+ if (string.IsNullOrEmpty (conf))
+ return;
+ mainDock.ImportConfig (conf, this);
+ }
+
+
+ static void App_KeyboardKeyDown (object sender, KeyEventArgs e)
+ {
+ Console.WriteLine((byte)e.Key);
+ //#if DEBUG_LOG
+ /*switch (e.Key) {
+ case Key.F2:
+ DebugLog.save (app);
+ break;
+ }*/
+ //#endif
+ }
+
+
+
+ IML.Instantiator instFileDlg;
+ Solution currentSolution;
+ Project currentProject;
+ DockStack mainDock;
+
+ public static Interface MainIFace;
+ public static CrowIDE MainWin;
+
+ void initIde() {
+
+ initCommands ();
+
+ Widget go = crow.Load (@"#CrowIDE.ui.CrowIDE.crow");
+ go.DataSource = this;
+
+ mainDock = go.FindByName ("mainDock") as DockStack;
+ ReopenLastSolution = false;
+ if (ReopenLastSolution && !string.IsNullOrEmpty (LastOpenSolution)) {
+ CurrentSolution = Solution.LoadSolution (LastOpenSolution);
+ //lock(MainIFace.UpdateMutex)
+ CurrentSolution.ReopenItemsSavedInUserConfig ();
+ }
+
+ instFileDlg = IML.Instantiator.CreateFromImlFragment
+ (MainIFace, "<FileDialog Caption='Open File' CurrentDirectory='{²CurrentDirectory}' SearchPattern='*.sln' OkClicked='onFileOpen'/>");
+
+ /*DockWindow dw = loadWindow ("#CrowIDE.ui.DockWindows.winEditor.crow", this) as DockWindow;
+ dw.DockingPosition = Alignment.Center;
+ dw.Dock (mainDock);
+ dw = loadWindow ("#CrowIDE.ui.DockWindows.winSolution.crow", this) as DockWindow;
+ dw.DockingPosition = Alignment.Right;
+ dw.Dock (mainDock);
+ dw = loadWindow ("#CrowIDE.ui.DockWindows.winToolbox.crow", this) as DockWindow;
+ dw.DockingPosition = Alignment.Left;
+ dw.Dock (mainDock);*/
+
+ //Console.WriteLine ();
+ }
+
+ void loadProjProps () {
+ loadWindow ("#CrowIDE.ui.ProjectProperties.crow");
+ }
+ void compileSolution () {
+ //ProjectItem pi = CurrentSolution.SelectedItem;
+ Project p = CurrentSolution?.Projects[1];
+ if (p == null)
+ return;
+ p.Compile ();
+ }
+
+ public string CurrentDirectory {
+ get { return Crow.Configuration.Global.Get<string>("CurrentDirectory");}
+ set {
+ Crow.Configuration.Global.Set ("CurrentDirectory", value);
+ }
+ }
+ public Solution CurrentSolution {
+ get { return currentSolution; }
+ set {
+ if (currentSolution == value)
+ return;
+
+ currentSolution = value;
+
+ CMDCompile.CanExecute = (currentSolution != null);
+ cmdCloseSolution.CanExecute = (currentSolution != null);
+ CMDViewSolution.CanExecute = (currentSolution != null);
+
+ lock (MainIFace) {
+ NotifyValueChanged ("CurrentSolution", currentSolution);
+ }
+ }
+ }
+ public Project CurrentProject {
+ get { return currentProject; }
+ set {
+ if (currentProject == value)
+ return;
+ currentProject = value;
+
+ CMDViewProjProps.CanExecute = (currentProject != null);
+
+ lock (MainIFace) {
+ NotifyValueChanged ("CurrentProject", currentProject);
+ }
+ }
+ }
+
+ public string LastOpenSolution {
+ get { return Crow.Configuration.Global.Get<string>("LastOpenSolution");}
+ set {
+ if (LastOpenSolution == value)
+ return;
+ Crow.Configuration.Global.Set ("LastOpenSolution", value);
+ NotifyValueChanged ("LastOpenSolution", value);
+ }
+ }
+ public bool ReopenLastSolution {
+ get { return Crow.Configuration.Global.Get<bool>("ReopenLastSolution");}
+ set {
+ if (ReopenLastSolution == value)
+ return;
+ Crow.Configuration.Global.Set ("ReopenLastSolution", value);
+ NotifyValueChanged ("ReopenLastSolution", value);
+ }
+ }
+
+ public void onFileOpen (object sender, EventArgs e)
+ {
+ FileDialog fd = sender as FileDialog;
+
+ string filePath = fd.SelectedFileFullPath;
+
+ try {
+ string ext = Path.GetExtension (filePath);
+ if (string.Equals (ext, ".sln", StringComparison.InvariantCultureIgnoreCase)) {
+ CurrentSolution = Solution.LoadSolution (filePath);
+ LastOpenSolution = filePath;
+// }else if (string.Equals (ext, ".csproj", StringComparison.InvariantCultureIgnoreCase)) {
+// currentProject = new Project (filePath);
+ }
+ } catch (Exception ex) {
+ crow.LoadIMLFragment ("<MessageBox Message='"+ ex.Message + "\n" + "' MsgType='Error'/>");
+ }
+ }
+
+ Window loadWindow(string path, object dataSource = null){
+ try {
+ Widget g = MainIFace.FindByName (path);
+ if (g != null)
+ return g as Window;
+ g = MainIFace.Load (path);
+ g.Name = path;
+ g.DataSource = dataSource;
+ return g as Window;
+ } catch (Exception ex) {
+ Console.WriteLine (ex.ToString ());
+ }
+ return null;
+ }
+ void closeWindow (string path){
+ Widget g = MainIFace.FindByName (path);
+ if (g != null)
+ MainIFace.DeleteWidget (g);
+ }
+
+ protected void onCommandSave(object sender, MouseButtonEventArgs e){
+ System.Diagnostics.Debug.WriteLine("save");
+ }
+
+ void actionOpenFile(){
+ System.Diagnostics.Debug.WriteLine ("OpenFile action");
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+//
+// DesignInterface.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Threading;
+using System.Collections.Generic;
+using System.IO;
+
+
+namespace Crow.Coding
+{
+ public class DesignInterface : Interface, IValueChange
+ {
+ #region IValueChange implementation
+ /// <summary>
+ /// Raise to notify that the value of a property has changed, the binding system
+ /// rely mainly on this event. the member name may not be present in the class, this is
+ /// used in **propertyless** bindings, this allow to raise custom named events without needing
+ /// to create an new one in the class or a new property.
+ /// </summary>
+ public event EventHandler<ValueChangeEventArgs> ValueChanged;
+ /// <summary>
+ /// Helper function to raise the value changed event
+ /// </summary>
+ public virtual void NotifyValueChanged(string MemberName, object _value)
+ {
+ //Debug.WriteLine ("Value changed: {0}->{1} = {2}", this, MemberName, _value);
+ ValueChanged.Raise(this, new ValueChangeEventArgs(MemberName, _value));
+ }
+ #endregion
+
+ public DesignInterface (vkvg.Device dev) : base(dev)
+ {
+ }
+
+ public ProjectFile ProjFile;
+
+
+
+ public override Widget CreateInstance (string path)
+ {
+ ProjectFile pi;
+
+ if (ProjFile.Project.solution.GetProjectFileFromPath (path, out pi))
+ return CreateITorFromIMLFragment (pi.Source).CreateInstance();
+
+ return null;
+ }
+ public override Stream GetStreamFromPath (string path)
+ {
+ ProjectFile pi;
+ if (ProjFile.Project.solution.GetProjectFileFromPath (path, out pi)) {
+ return new FileStream (pi.AbsolutePath, FileMode.Open);
+ }
+ throw new Exception ($"In Design File not found: {path}");
+ }
+
+
+ public override bool ProcessMouseMove (int x, int y)
+ {
+ int deltaX = x - Mouse.X;
+ int deltaY = y - Mouse.Y;
+ Mouse.X = x;
+ Mouse.Y = y;
+ MouseMoveEventArgs e = new MouseMoveEventArgs (x, y, deltaX, deltaY);
+ e.Mouse = Mouse;
+
+ if (ActiveWidget != null) {
+ //TODO, ensure object is still in the graphic tree
+ //send move evt even if mouse move outside bounds
+ ActiveWidget.onMouseMove (this, e);
+ if (!ActiveWidget.IsDragged)//if active is dragged, process mouse move as it was not visible.
+ return true;
+ }
+
+ if (HoverWidget != null) {
+
+ //check topmost graphicobject first
+ Widget tmp = HoverWidget;
+ Widget topc = null;
+ while (tmp is Widget) {
+ topc = tmp;
+ tmp = tmp.LogicalParent as Widget;
+ }
+ int idxhw = GraphicTree.IndexOf (topc);
+ if (idxhw != 0) {
+ int i = 0;
+ while (i < idxhw) {
+ if (GraphicTree [i].localLogicalParentIsNull) {
+ if (GraphicTree [i].MouseIsIn (e.Position)) {
+ while (HoverWidget != null) {
+ HoverWidget.onMouseLeave (HoverWidget, e);
+ HoverWidget = HoverWidget.LogicalParent as Widget;
+ }
+
+ GraphicTree [i].checkHoverWidget (e);
+ return true;
+ }
+ }
+ i++;
+ }
+ }
+
+ if (HoverWidget.MouseIsIn (e.Position)) {
+ if (!(HoverWidget is TemplatedControl))
+ HoverWidget.checkHoverWidget (e);
+ return true;
+ } else {
+ HoverWidget.onMouseLeave (HoverWidget, e);
+ //seek upward from last focused graph obj's
+ while (HoverWidget.LogicalParent as Widget != null) {
+ HoverWidget = HoverWidget.LogicalParent as Widget;
+ if (HoverWidget.MouseIsIn (e.Position)) {
+ HoverWidget.checkHoverWidget (e);
+ return true;
+ } else
+ HoverWidget.onMouseLeave (HoverWidget, e);
+ }
+ }
+ }
+
+ //top level graphic obj's parsing
+ lock (GraphicTree) {
+ for (int i = 0; i < GraphicTree.Count; i++) {
+ Widget g = GraphicTree [i];
+ if (g.MouseIsIn (e.Position)) {
+ if (!(HoverWidget is TemplatedControl))
+ g.checkHoverWidget (e);
+ if (g is Window)
+ PutOnTop (g);
+ return true;
+ }
+ }
+ }
+ HoverWidget = null;
+ return false;
+ }
+
+ protected override void processLayouting ()
+ {
+ #if MEASURE_TIME
+ layoutingMeasure.StartCycle();
+ #endif
+
+ if (Monitor.TryEnter (LayoutMutex)) {
+ DiscardQueue = new Queue<LayoutingQueueItem> ();
+ LayoutingQueueItem lqi;
+ while (LayoutingQueue.Count > 0) {
+ lqi = LayoutingQueue.Dequeue ();
+ //Console.WriteLine (lqi.ToString ());
+ #if DEBUG_LAYOUTING
+ currentLQI = lqi;
+ curLQIsTries.Add(currentLQI);
+ #endif
+ lqi.ProcessLayouting ();
+ }
+ LayoutingQueue = DiscardQueue;
+ Monitor.Exit (LayoutMutex);
+ DiscardQueue = null;
+ }
+
+ #if MEASURE_TIME
+ layoutingMeasure.StopCycle();
+ #endif
+ }
+ }
+}
+
--- /dev/null
+//
+// CodeTextBuffer.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2017 jp
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.RegularExpressions;
+using System.Diagnostics;
+using System.Threading;
+
+namespace Crow.Coding
+{
+ /// <summary>
+ /// Code buffer, lines are arranged in a List<string>, new line chars are removed during string.split on '\n...',
+ /// </summary>
+ public class CodeBuffer
+ {
+ public ReaderWriterLockSlim editMutex = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
+
+ //those events are handled in SourceEditor to help keeping sync between textbuffer,parser and editor.
+ //modified lines are marked for reparse
+ #region Events
+ public event EventHandler<CodeBufferEventArgs> LineUpadateEvent;
+ public event EventHandler<CodeBufferEventArgs> LineRemoveEvent;
+ public event EventHandler<CodeBufferEventArgs> LineAdditionEvent;
+ public event EventHandler<CodeBufferEventArgs> FoldingEvent;
+ public event EventHandler BufferCleared;
+ public event EventHandler SelectionChanged;
+ public event EventHandler PositionChanged;
+ #endregion
+
+ string lineBreak = Interface.LineBreak;
+ List<CodeLine> lines = new List<CodeLine>();
+ public int longestLineIdx = 0;
+ public int longestLineCharCount = 0;
+ /// <summary>
+ /// real position in char arrays, tab = 1 char
+ /// </summary>
+ int _currentLine = 0;
+ int _currentCol = 0;
+
+ public int LineCount { get { return lines.Count;}}
+ public int IndexOf (CodeLine cl) {
+ return lines.IndexOf (cl);
+ }
+
+ public CodeLine this[int i]
+ {
+ get { return i < LineCount ? lines[i] : null; }
+ set {
+ if (lines [i] == value)
+ return;
+ editMutex.EnterWriteLock ();
+ lines [i] = value;
+ editMutex.ExitWriteLock ();
+ LineUpadateEvent.Raise (this, new CodeBufferEventArgs (i));
+ }
+ }
+
+ public void RemoveAt(int i){
+ editMutex.EnterWriteLock ();
+ lines.RemoveAt (i);
+ editMutex.ExitWriteLock ();
+ LineRemoveEvent.Raise (this, new CodeBufferEventArgs (i));
+ }
+ public void Insert(int i, string item){
+ editMutex.EnterWriteLock ();
+ lines.Insert (i, item);
+ editMutex.ExitWriteLock ();
+ LineAdditionEvent.Raise (this, new CodeBufferEventArgs (i));
+ }
+ public void Add(CodeLine item){
+ editMutex.EnterWriteLock ();
+ lines.Add (item);
+ editMutex.ExitWriteLock ();
+ LineAdditionEvent.Raise (this, new CodeBufferEventArgs (lines.Count - 1));
+ }
+ public void AddRange (string[] items){
+ int start = lines.Count;
+ editMutex.EnterWriteLock ();
+ for (int i = 0; i < items.Length; i++)
+ lines.Add (items [i]);
+ editMutex.ExitWriteLock ();
+ LineAdditionEvent.Raise (this, new CodeBufferEventArgs (start, items.Length));
+ }
+ public void AddRange (CodeLine[] items){
+ int start = lines.Count;
+ editMutex.EnterWriteLock ();
+ lines.AddRange (items);
+ editMutex.ExitWriteLock ();
+ LineAdditionEvent.Raise (this, new CodeBufferEventArgs (start, items.Length));
+ }
+ public void Clear () {
+ editMutex.EnterWriteLock ();
+ longestLineCharCount = 0;
+ lines.Clear ();
+ editMutex.ExitWriteLock ();
+ BufferCleared.Raise (this, null);
+ }
+ public void UpdateLine(int i, string newContent){
+ editMutex.EnterWriteLock ();
+ this [i].Content = newContent;
+ editMutex.ExitWriteLock ();
+ LineUpadateEvent.Raise (this, new CodeBufferEventArgs (i));
+ }
+ public void AppenedLine(int i, string newContent){
+ editMutex.EnterWriteLock ();
+ this [i].Content += newContent;
+ editMutex.ExitWriteLock ();
+ LineUpadateEvent.Raise (this, new CodeBufferEventArgs (i));
+ }
+ public void RemoveLeadingTab (int l) {
+ if (this [l] [0] == '\t') {
+ UpdateLine (l, this [l].Content.Substring (1));
+ return;
+ }
+ int i = 0;
+ while (i < Interface.TabSize) {
+ if (this [l] [i] != ' ')
+ break;
+ i++;
+ }
+ if (i > 0)
+ UpdateLine (l, this [l].Content.Substring (i));
+ }
+ public void ToogleFolding (int line) {
+ if (!this [line].IsFoldable)
+ return;
+ editMutex.EnterWriteLock ();
+ this [line].IsFolded = !this [line].IsFolded;
+ editMutex.ExitWriteLock ();
+ FoldingEvent.Raise (this, new CodeBufferEventArgs (line));
+ }
+ public void Load(string rawSource, string lineBrkRegex = @"\r\n|\r|\n|\\\n") {
+ this.Clear();
+
+ if (string.IsNullOrEmpty (rawSource))
+ return;
+
+ AddRange (Regex.Split (rawSource, lineBrkRegex));
+
+ lineBreak = detectLineBreakKind (rawSource);
+ }
+
+ /// <summary>
+ /// Finds the longest visual line as printed on screen with tabulation replaced with n spaces
+ /// </summary>
+ public void FindLongestVisualLine(){
+ longestLineCharCount = 0;
+ editMutex.EnterReadLock ();
+ for (int i = 0; i < this.LineCount; i++) {
+ if (lines[i].PrintableLength > longestLineCharCount) {
+ longestLineCharCount = lines[i].PrintableLength;
+ longestLineIdx = i;
+ }
+ }
+ editMutex.ExitReadLock ();
+ //Debug.WriteLine ("Longest line: {0}->{1}", longestLineIdx, longestLineCharCount);
+ }
+ /// <summary> line break could be '\r' or '\n' or '\r\n' </summary>
+ static string detectLineBreakKind(string buffer){
+ string strLB = "";
+
+ if (string.IsNullOrEmpty(buffer))
+ return Interface.LineBreak;
+ int i = 0;
+ while ( i < buffer.Length) {
+ if (buffer [i] == '\r') {
+ strLB += '\r';
+ i++;
+ }
+ if (i < buffer.Length) {
+ if (buffer [i] == '\r')
+ return "\r";
+ if (buffer[i] == '\n')
+ strLB += '\n';
+ }
+ if (!string.IsNullOrEmpty (strLB))
+ return strLB;
+ i++;
+ }
+ return Interface.LineBreak;
+ }
+ /// <summary>
+ /// return all lines with linebreaks
+ /// </summary>
+ public string FullText{
+ get {
+ if (lines.Count == 0)
+ return "";
+ string tmp = "";
+ editMutex.EnterReadLock ();
+ for (int i = 0; i < lines.Count -1; i++)
+ tmp += lines [i].Content + this.lineBreak;
+ tmp += lines [lines.Count - 1].Content;
+ editMutex.ExitReadLock ();
+ return tmp;
+ }
+ }
+
+ /// <summary>
+ /// unfolded and not in folds line count
+ /// </summary>
+ public int UnfoldedLines {
+ get {
+ int i = 0, vl = 0;
+ editMutex.EnterReadLock ();
+ while (i < LineCount) {
+ if (this [i].IsFolded) {
+ i = GetEndNodeIndex (i);
+ if (i < 0) {
+ Console.WriteLine ("error folding");
+ break;
+ }
+ }
+ i++;
+ vl++;
+ }
+ editMutex.ExitReadLock ();
+ //Debug.WriteLine ("unfolded lines: " + vl);
+ return vl;
+ }
+ }
+
+ /// <summary>
+ /// convert visual position to buffer position
+ /// </summary>
+ Point getBuffPos (Point visualPos) {
+ int i = 0;
+ int buffCol = 0;
+ while (i < visualPos.X) {
+ if (this [visualPos.Y] [buffCol] == '\t')
+ i += Interface.TabSize;
+ else
+ i++;
+ buffCol++;
+ }
+ return new Point (buffCol, visualPos.Y);
+ }
+
+ public int GetEndNodeIndex (int line) {
+ return IndexOf (this [line].SyntacticNode.EndLine);
+ }
+
+ int ConverteTabulatedPosOfCurLine (int column) {
+ int tmp = 0;
+ int i = 0;
+ while (i < lines [_currentLine].Content.Length){
+ if (lines [_currentLine].Content [i] == '\t')
+ tmp += 4;
+ else
+ tmp++;
+ if (tmp > column)
+ break;
+ i++;
+ }
+ return i;
+ }
+
+ public int CurrentTabulatedColumn {
+ get {
+ return lines [_currentLine].Content.Substring (0, _currentCol).
+ Replace ("\t", new String (' ', Interface.TabSize)).Length;
+ }
+ }
+ /// <summary>
+ /// Gets visual position computed from actual buffer position
+ /// </summary>
+// public Point TabulatedPosition {
+// get { return new Point (TabulatedColumn, _currentLine); }
+// }
+ /// <summary>
+ /// set buffer current position from visual position
+ /// </summary>
+// public void SetBufferPos(Point tabulatedPosition) {
+// CurrentPosition = getBuffPos(tabulatedPosition);
+// }
+
+ #region Editing and moving cursor
+ Point selStartPos = -1; //selection start (row,column)
+ Point selEndPos = -1; //selection end (row,column)
+
+ public bool SelectionInProgress { get { return selStartPos >= 0; }}
+ public void SetSelStartPos () {
+ selStartPos = selEndPos = CurrentPosition;
+ SelectionChanged.Raise (this, null);
+ }
+ public void SetSelEndPos () {
+ selEndPos = CurrentPosition;
+ SelectionChanged.Raise (this, null);
+ }
+ public void SetSelectionOnFullLines () {
+ if (!SelectionInProgress)
+ return;
+ Point s = new Point (0, SelectionStart.Y);
+ Point e = new Point (this [SelectionEnd.Y].Length, SelectionEnd.Y);
+ selStartPos = s;
+ selEndPos = e;
+ SelectionChanged.Raise (this, null);
+ }
+ /// <summary>
+ /// Set selection in buffer to -1, empty selection
+ /// </summary>
+ public void ResetSelection () {
+ selStartPos = selEndPos = -1;
+ SelectionChanged.Raise (this, null);
+ }
+
+ public string SelectedText {
+ get {
+ if (SelectionIsEmpty)
+ return "";
+ Point selStart = SelectionStart;
+ Point selEnd = SelectionEnd;
+ if (selStart.Y == selEnd.Y)
+ return this [selStart.Y].Content.Substring (selStart.X, selEnd.X - selStart.X);
+ string tmp = "";
+ tmp = this [selStart.Y].Content.Substring (selStart.X);
+ for (int l = selStart.Y + 1; l < selEnd.Y; l++) {
+ tmp += Interface.LineBreak + this [l].Content;
+ }
+ tmp += Interface.LineBreak + this [selEnd.Y].Content.Substring (0, selEnd.X);
+ return tmp;
+ }
+ }
+ /// <summary>
+ /// ordered selection start and end positions in char units
+ /// </summary>
+ public Point SelectionStart {
+ get { return selEndPos < 0 || selStartPos.Y < selEndPos.Y ? selStartPos :
+ selStartPos.Y > selEndPos.Y ? selEndPos :
+ selStartPos.X < selEndPos.X ? selStartPos : selEndPos; }
+ }
+ public Point SelectionEnd {
+ get { return selEndPos < 0 || selStartPos.Y > selEndPos.Y ? selStartPos :
+ selStartPos.Y < selEndPos.Y ? selEndPos :
+ selStartPos.X > selEndPos.X ? selStartPos : selEndPos; }
+ }
+ public bool SelectionIsEmpty
+ { get { return selEndPos == selStartPos; } }
+ int requestedColumn = -1;
+ /// <summary>
+ /// Current column in buffer coordinate, tabulation = 1 char
+ /// </summary>
+ public int CurrentColumn{
+ get { return _currentCol; }
+ set {
+ if (value == _currentCol)
+ return;
+
+ editMutex.EnterReadLock ();
+
+ if (value < 0)
+ _currentCol = 0;
+ else if (value > lines [_currentLine].Length)
+ _currentCol = lines [_currentLine].Length;
+ else
+ _currentCol = value;
+
+ requestedColumn = CurrentTabulatedColumn;
+
+ editMutex.ExitReadLock ();
+
+ PositionChanged.Raise (this, null);
+ }
+ }
+ /// <summary>
+ /// Current row in buffer coordinate, tabulation = 1 char
+ /// </summary>
+ public int CurrentLine{
+ get { return _currentLine; }
+ set {
+ if (value == _currentLine)
+ return;
+
+ editMutex.EnterReadLock ();
+
+ if (LineCount == 0)
+ _currentLine = 0;
+ else if (value >= lines.Count)
+ _currentLine = lines.Count-1;
+ else if (value < 0)
+ _currentLine = 0;
+ else
+ _currentLine = value;
+// if (_currentCol < 0)
+// requestedColumn = tabu _currentCol;
+ int tabulatedRequestedCol = ConverteTabulatedPosOfCurLine(requestedColumn);
+ if (requestedColumn > lines [_currentLine].PrintableLength)
+ _currentCol = lines [_currentLine].Length;
+ else
+ //_currentCol = requestedColumn;
+ _currentCol = tabulatedRequestedCol;
+ //Debug.WriteLine ("buff cur line: " + _currentLine);
+
+ editMutex.ExitReadLock();
+
+ PositionChanged.Raise (this, null);
+ }
+ }
+ public CodeLine CurrentCodeLine {
+ get { return this [_currentLine]; }
+ }
+ /// <summary>
+ /// Current position in buffer coordinate, tabulation = 1 char
+ /// </summary>
+ public Point CurrentPosition {
+ get { return new Point(CurrentColumn, CurrentLine); }
+// set {
+// _currentCol = value.X;
+// _currentLine = value.Y;
+// }
+ }
+ /// <summary>
+ /// get char at current position in buffer
+ /// </summary>
+ protected Char CurrentChar { get { return lines [CurrentLine] [CurrentColumn]; } }
+
+ public void GotoWordStart(){
+ if (this[CurrentLine].Length == 0)
+ return;
+ CurrentColumn--;
+ //skip white spaces
+ while (!char.IsLetterOrDigit (this.CurrentChar) && CurrentColumn > 0)
+ CurrentColumn--;
+ while (char.IsLetterOrDigit (this.CurrentChar) && CurrentColumn > 0)
+ CurrentColumn--;
+ if (!char.IsLetterOrDigit (this.CurrentChar))
+ CurrentColumn++;
+ }
+ public void GotoWordEnd(){
+ //skip white spaces
+ if (CurrentColumn >= this [CurrentLine].Length - 1)
+ return;
+ while (!char.IsLetterOrDigit (this.CurrentChar) && CurrentColumn < this [CurrentLine].Length-1)
+ CurrentColumn++;
+ while (char.IsLetterOrDigit (this.CurrentChar) && CurrentColumn < this [CurrentLine].Length-1)
+ CurrentColumn++;
+ if (char.IsLetterOrDigit (this.CurrentChar))
+ CurrentColumn++;
+ }
+ public void DeleteChar()
+ {
+ editMutex.EnterWriteLock ();
+ if (SelectionIsEmpty) {
+ if (CurrentColumn == 0) {
+ if (CurrentLine == 0) {
+ editMutex.ExitWriteLock ();
+ return;
+ }
+ CurrentLine--;
+ CurrentColumn = this [CurrentLine].Length;
+ AppenedLine (CurrentLine, this [CurrentLine + 1].Content);
+ RemoveAt (CurrentLine + 1);
+ editMutex.ExitWriteLock ();
+ return;
+ }
+ CurrentColumn--;
+ UpdateLine (CurrentLine, this [CurrentLine].Content.Remove (CurrentColumn, 1));
+ } else {
+ int linesToRemove = SelectionEnd.Y - SelectionStart.Y + 1;
+ int l = SelectionStart.Y;
+
+ if (linesToRemove > 0) {
+ UpdateLine (l, this [l].Content.Remove (SelectionStart.X, this [l].Length - SelectionStart.X) +
+ this [SelectionEnd.Y].Content.Substring (SelectionEnd.X, this [SelectionEnd.Y].Length - SelectionEnd.X));
+ l++;
+ for (int c = 0; c < linesToRemove - 1; c++)
+ RemoveAt (l);
+ CurrentLine = SelectionStart.Y;
+ CurrentColumn = SelectionStart.X;
+ } else
+ UpdateLine (l, this [l].Content.Remove (SelectionStart.X, SelectionEnd.X - SelectionStart.X));
+ CurrentColumn = SelectionStart.X;
+ ResetSelection ();
+ }
+ editMutex.ExitWriteLock ();
+ }
+ /// <summary>
+ /// Insert new string at caret position, should be sure no line break is inside.
+ /// </summary>
+ /// <param name="str">String.</param>
+ public void Insert(string str)
+ {
+ if (!SelectionIsEmpty)
+ this.DeleteChar ();
+ string[] strLines = Regex.Split (str, "\r\n|\r|\n|" + @"\\n").ToArray();
+ UpdateLine (CurrentLine, this [CurrentLine].Content.Insert (CurrentColumn, strLines[0]));
+ CurrentColumn += strLines[0].Length;
+ for (int i = 1; i < strLines.Length; i++) {
+ InsertLineBreak ();
+ UpdateLine (CurrentLine, this [CurrentLine].Content.Insert (CurrentColumn, strLines[i]));
+ CurrentColumn += strLines[i].Length;
+ }
+ }
+ /// <summary>
+ /// Insert a line break.
+ /// </summary>
+ public void InsertLineBreak()
+ {
+ if (CurrentColumn > 0) {
+ Insert (CurrentLine + 1, this [CurrentLine].Content.Substring (CurrentColumn));
+ UpdateLine (CurrentLine, this [CurrentLine].Content.Substring (0, CurrentColumn));
+ } else
+ Insert(CurrentLine, "");
+
+ CurrentColumn = 0;
+ CurrentLine++;
+ }
+ #endregion
+ }
+}
+
--- /dev/null
+using System;
+
+namespace Crow.Coding
+{
+ public class CodeBufferEventArgs : EventArgs {
+ public int LineStart;
+ public int LineCount;
+
+ public CodeBufferEventArgs(int lineNumber) {
+ LineStart = lineNumber;
+ LineCount = 1;
+ }
+ public CodeBufferEventArgs(int lineStart, int lineCount) {
+ LineStart = lineStart;
+ LineCount = lineCount;
+ }
+ }
+
+}
+
--- /dev/null
+using System;
+using System.Text;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace Crow.Coding
+{
+ public class CodeLine
+ {
+ public string Content;
+ public List<Token> Tokens;
+ public int EndingState = 0;
+ public Node SyntacticNode;
+ public ParserException exception;
+
+ public CodeLine (string _content){
+ Content = _content;
+ Tokens = null;
+ exception = null;
+ }
+
+ public char this[int i]
+ {
+ get { return Content[i]; }
+ set {
+ if (Content [i] == value)
+ return;
+ StringBuilder sb = new StringBuilder(Content);
+ sb[i] = value;
+ Content = sb.ToString();
+ Tokens = null;
+ //LineUpadateEvent.Raise (this, new CodeBufferEventArgs (i));
+ }
+ }
+ public bool IsFoldable { get { return SyntacticNode == null ? false :
+ SyntacticNode.EndLine != SyntacticNode.StartLine && SyntacticNode.EndLine != null; } }
+ public int FoldingLevel { get { return IsFoldable ? SyntacticNode.Level : 0; } }
+ public bool IsFolded = false;
+ public bool IsParsed {
+ get { return Tokens != null; }
+ }
+ public string PrintableContent {
+ get {
+ return string.IsNullOrEmpty (Content) ? "" : Content.Replace ("\t", new String (' ', Interface.TabSize));
+ }
+ }
+ public int PrintableLength {
+ get {
+ return PrintableContent.Length;
+ }
+ }
+ public int Length {
+ get {
+ return string.IsNullOrEmpty (Content) ? 0 : Content.Length;
+ }
+ }
+ public int FirstNonBlankTokIndex {
+ get { return Tokens == null ? -1 : Tokens.FindIndex (tk=>tk.Type != BufferParser.TokenType.WhiteSpace); }
+ }
+
+ public void SetLineInError (ParserException ex) {
+ Tokens = null;
+ exception = ex;
+ }
+
+// public static implicit operator string(CodeLine sl) {
+// return sl == null ? "" : sl.Content;
+// }
+ public static implicit operator CodeLine(string s) {
+ return new CodeLine(s);
+ }
+ public static bool operator ==(string s1, CodeLine s2)
+ {
+ return string.Equals (s1, s2.Content);
+ }
+ public static bool operator !=(string s1, CodeLine s2)
+ {
+ return !string.Equals (s1, s2.Content);
+ }
+ }
+}
+
--- /dev/null
+using System;
+using System.Collections.Generic;
+
+namespace Crow.Coding
+{
+ public class Node
+ {
+ public Node Parent;
+ public string Name;
+ public string Type;
+ public CodeLine StartLine;
+ public CodeLine EndLine;
+ public Dictionary<string,string> Attributes = new Dictionary<string, string> ();
+
+ public List<Node> Children = new List<Node>();
+
+ public Node ()
+ {
+ }
+
+ public void AddChild (Node child) {
+ child.Parent = this;
+ Children.Add (child);
+ }
+
+ public int Level {
+ get { return Parent == null ? 1 : Parent.Level + 1; }
+ }
+
+ public override string ToString ()
+ {
+ return string.Format ("Name:{0}, Type:{1}\n\tparent:{2}", Name, Type, Parent);
+ }
+ }
+}
+
--- /dev/null
+//
+// CodeTextBuffer.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2017 jp
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.RegularExpressions;
+using System.Diagnostics;
+using System.Threading;
+using System.Text;
+
+namespace Crow.Text
+{
+ /// <summary>
+ /// Code buffer, lines are arranged in a List<string>, new line chars are removed during string.split on '\n...',
+ /// </summary>
+ public class TextBuffer
+ {
+ public ReaderWriterLockSlim editMutex = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
+ static Regex slb = new Regex ("\\n");//single char line break used internaly
+ Regex reghexLineBrk = new Regex(@"\r\n|\r|\n|\\\n");//original text line break regex
+
+ #region Events
+ public event EventHandler<TextBufferEventArgs> LineUpadateEvent;
+ public event EventHandler<TextBufferEventArgs> LineRemoveEvent;
+ public event EventHandler<TextBufferEventArgs> LineAdditionEvent;
+ public event EventHandler BufferCleared;
+ public event EventHandler SelectionChanged;
+ public event EventHandler PositionChanged;
+ #endregion
+
+ StringBuilder buffer = new StringBuilder();
+ string lineBreak = Interface.LineBreak;//detected linebreak kind in original source
+ List<int> lineLength = new List<int>();//line length table
+ /// <summary>
+ /// real position in char arrays, tab = 1 char
+ /// </summary>
+ int _currentLine = 0;
+ int _currentCol = 0;
+
+ /// <summary>
+ /// Gets the total line count.
+ /// </summary>
+ public int LineCount { get { return lineLength.Count;}}
+
+ /// <summary>
+ /// get a substring in the buffer
+ /// </summary>
+ /// <returns>a new string</returns>
+ /// <param name="idx">absolute index in the buffer</param>
+ /// <param name="length">length of the substring</param>
+ public string GetSubString (int idx, int length){
+ return buffer.ToString (idx, length);
+ }
+ /// <summary>
+ /// Gets length of a line.
+ /// </summary>
+ /// <returns>length of line</returns>
+ /// <param name="lineIdx">line nuber</param>
+ public int GetLineLength (int lineIdx) {
+ return lineLength [lineIdx];
+ }
+ /// <summary>
+ /// get a single charactere in the buffer
+ /// </summary>
+ /// <returns>a single char</returns>
+ /// <param name="idx">absolute index in the buffer</param>
+ public char GetCharAt (int idx){
+ return buffer [idx];
+ }
+ /// <summary>
+ /// return full text with original line breaks
+ /// </summary>
+ /// <value>a string containing the full text</value>
+ public string FullText {
+ get { return buffer.Replace("\n", lineBreak).ToString (); }
+ set {
+ Load (value);
+ }
+ }
+ /// <summary>
+ /// Gets the buffer pointer of a line
+ /// </summary>
+ /// <returns>absolute index of the line in the buffer</returns>
+ /// <param name="i">line number</param>
+ public int GetBufferIndexOfLine (int i) {
+ int ptr = 0;
+ editMutex.EnterReadLock ();
+ for (int j = 0; j < i; j++) {
+ ptr += lineLength [j];
+ }
+ editMutex.ExitReadLock ();
+ return ptr;
+ }
+ /// <summary>
+ /// Gets the buffer pointer for the current position
+ /// </summary>
+ /// <value>absolute index in the buffer of current position</value>
+ public int BufferIndexOfCurrentPosition {
+ get {return GetBufferIndexOfLine (_currentLine) + _currentCol;}
+ }
+ public int this[int i]
+ {
+ get {
+ int ptr = 0;
+ editMutex.EnterReadLock ();
+ for (int j = 0; j < i; j++) {
+ ptr += lineLength [j];
+ }
+ editMutex.ExitReadLock ();
+ return ptr;
+ }
+ }
+ /// <summary>
+ /// remove line number i
+ /// </summary>
+ /// <param name="i">index of the line</param>
+ public void RemoveLine(int i){
+ editMutex.EnterWriteLock ();
+ buffer.Remove (GetBufferIndexOfLine (i), lineLength [i]);
+ lineLength.RemoveAt (i);
+ editMutex.ExitWriteLock ();
+ LineRemoveEvent.Raise (this, new TextBufferEventArgs (i));
+ }
+ /// <summary>
+ /// insert string without linebreaks at position i in buff
+ /// </summary>
+ /// <param name="i">absolute index in the buffer</param>
+ /// <param name="str">linebreak free string</param>
+ public void InsertAt(int i, string str){
+ editMutex.EnterWriteLock ();
+ buffer.Insert (this [i], str);
+ lineLength.Insert (i, str.Length);
+ editMutex.ExitWriteLock ();
+ LineAdditionEvent.Raise (this, new TextBufferEventArgs (i));
+ }
+ public void AddLine(string str){
+ editMutex.EnterWriteLock ();
+ if (lineLength.LastOrDefault() == 0) {
+ buffer.Append (str);
+ lineLength [lineLength.Count - 1] = str.Length;
+ lineLength.Add (0);
+ }
+ editMutex.ExitWriteLock ();
+ LineAdditionEvent.Raise (this, new TextBufferEventArgs (lineLength.Count - 1));
+ }
+ public void AddRange (string[] items){
+ int start = lineLength.Count;
+ editMutex.EnterWriteLock ();
+ for (int i = 0; i < items.Length; i++)
+ AddLine (items [i]);
+ editMutex.ExitWriteLock ();
+ LineAdditionEvent.Raise (this, new TextBufferEventArgs (start, items.Length));
+ }
+ public void Clear () {
+ editMutex.EnterWriteLock ();
+ lineLength.Clear ();
+ buffer.Clear ();
+ editMutex.ExitWriteLock ();
+ BufferCleared.Raise (this, null);
+ }
+ public void UpdateLine(int i, string newContent){
+ editMutex.EnterWriteLock ();
+ int ptrL = this [i];
+ buffer.Remove (ptrL, lineLength [i]);
+ buffer.Insert (ptrL, newContent);
+ lineLength [i] = newContent.Length;
+ editMutex.ExitWriteLock ();
+ LineUpadateEvent.Raise (this, new TextBufferEventArgs (i));
+ }
+ public void AppenedLine(int i, string newContent){
+ editMutex.EnterWriteLock ();
+ int ptr = this [i] + lineLength [i];
+ if (i < LineCount - 1)
+ ptr--;
+ buffer.Insert(ptr, newContent);
+ lineLength [i] += newContent.Length;
+ editMutex.ExitWriteLock ();
+ LineUpadateEvent.Raise (this, new TextBufferEventArgs (i));
+ }
+ /// <summary>
+ /// Insert new string at caret position, should be sure no line break is inside.
+ /// </summary>
+ /// <param name="str">String.</param>
+ public void InsertAt(string str)
+ {
+ if (!SelectionIsEmpty)
+ this.Delete ();
+
+ editMutex.EnterWriteLock ();
+
+ string tmp = reghexLineBrk.Replace (str, "\n");//use single char line break in buffer
+ int buffPtr = this [CurrentLine] + CurrentColumn;
+ buffer.Insert (buffPtr, tmp);
+
+ int lPtr = CurrentLine, strPtr = 0;
+ int remainingLength = lineLength [lPtr] - CurrentColumn;
+ lineLength [lPtr] = CurrentColumn;
+ foreach (Match match in slb.Matches(tmp))
+ {
+ lineLength [lPtr] += match.Index + 1 - strPtr;
+ lPtr++;
+ lineLength.Insert (lPtr, 0);
+ strPtr = match.Index + 1;
+ //CurrentLine++;
+ }
+ remainingLength += tmp.Length - strPtr;
+ lineLength [lPtr] += remainingLength;
+
+ CurrentLine = lPtr;
+ if (strPtr == 0)
+ CurrentColumn += tmp.Length;
+ else
+ CurrentColumn = tmp.Length - strPtr;
+
+ editMutex.ExitWriteLock ();
+ if (strPtr>0)
+ LineAdditionEvent.Raise (this, null);
+ else
+ LineUpadateEvent.Raise (this, null);
+ }
+ /// <summary>
+ /// Insert a line break.
+ /// </summary>
+ public void InsertLineBreak()
+ {
+ editMutex.EnterWriteLock ();
+ buffer.Insert (this [CurrentLine] + CurrentColumn, '\n');
+ int lgdiff = lineLength [CurrentLine] - CurrentColumn;
+ lineLength.Insert (CurrentLine + 1, lineLength [CurrentLine] - CurrentColumn);
+ lineLength [CurrentLine] = CurrentColumn + 1;
+ editMutex.ExitWriteLock ();
+ LineAdditionEvent.Raise (this, null);
+ CurrentColumn = 0;
+ CurrentLine++;
+ }
+ public void Delete()
+ {
+ editMutex.EnterWriteLock ();
+ if (SelectionIsEmpty) {
+ if (CurrentColumn == 0) {
+ if (CurrentLine == 0) {
+ editMutex.ExitWriteLock ();
+ return;
+ }
+
+ buffer.Remove (this [CurrentLine] - 1, 1);
+
+ int col = lineLength [CurrentLine - 1] - 1;
+ lineLength [CurrentLine - 1] += lineLength [CurrentLine] - 1;
+ lineLength.RemoveAt (CurrentLine);
+
+ CurrentLine--;
+ CurrentColumn = col;
+
+ editMutex.ExitWriteLock ();
+ LineRemoveEvent.Raise (this, null);
+ return;
+ }
+ CurrentColumn--;
+ buffer.Remove (this [CurrentLine] + CurrentColumn, 1);
+ lineLength [CurrentLine]--;
+ } else {
+ int linesToRemove = SelectionEnd.Y - SelectionStart.Y;
+ int ptr = this [SelectionStart.Y] + SelectionStart.X;
+ int length = lineLength [SelectionStart.Y] - SelectionStart.X;
+ int l = 1;
+ while (l <= linesToRemove ) {
+ length += lineLength [SelectionStart.Y + l];
+ l++;
+ }
+ length -= lineLength [SelectionEnd.Y] - SelectionEnd.X;
+ buffer.Remove (ptr, length);
+ lineLength [SelectionStart.Y] = SelectionStart.X + lineLength [SelectionEnd.Y] - SelectionEnd.X;
+ lineLength.RemoveRange (SelectionStart.Y + 1, linesToRemove);
+
+ CurrentLine = SelectionStart.Y;
+ CurrentColumn = SelectionStart.X;
+ ResetSelection ();
+
+ if (linesToRemove > 0)
+ LineRemoveEvent.Raise (this, null);
+ else
+ LineUpadateEvent.Raise (this, null);
+ }
+ editMutex.ExitWriteLock ();
+ }
+ public void Load(string rawSource) {
+ this.Clear();
+
+ if (string.IsNullOrEmpty (rawSource))
+ return;
+
+ lineBreak = reghexLineBrk.Match (rawSource).Value;//store original line break
+ string tmp = reghexLineBrk.Replace (rawSource, "\n");//use single char line break in buffer
+ int ptr = 0;
+ foreach (Match match in slb.Matches(tmp))
+ {
+ int l = match.Index + 1;
+ int lg = l - ptr;
+ lineLength.Add (lg);
+ ptr = l;
+ }
+ lineLength.Add (0);
+
+ buffer = new StringBuilder (tmp);
+ }
+
+// public int CurrentTabulatedColumn {
+// get {
+//// return lines [_currentLine].Content.Substring (0, _currentCol).
+//// Replace ("\t", new String (' ', Interface.TabSize)).Length;
+// }
+// }
+
+ #region moving cursor an selection
+ Point selStartPos = -1; //selection start (row,column)
+ Point selEndPos = -1; //selection end (row,column)
+
+ public bool SelectionInProgress { get { return selStartPos >= 0; }}
+ public void SetSelStartPos () {
+ selStartPos = selEndPos = CurrentPosition;
+ SelectionChanged.Raise (this, null);
+ }
+ public void SetSelEndPos () {
+ selEndPos = CurrentPosition;
+ SelectionChanged.Raise (this, null);
+ }
+ /// <summary>
+ /// Set selection in buffer to -1, empty selection
+ /// </summary>
+ public void ResetSelection () {
+ selStartPos = selEndPos = -1;
+ SelectionChanged.Raise (this, null);
+ }
+ /// <summary>
+ /// ordered selection start and end positions in char units
+ /// </summary>
+ public Point SelectionStart {
+ get { return selEndPos < 0 || selStartPos.Y < selEndPos.Y ? selStartPos :
+ selStartPos.Y > selEndPos.Y ? selEndPos :
+ selStartPos.X < selEndPos.X ? selStartPos : selEndPos; }
+ }
+ public Point SelectionEnd {
+ get { return selEndPos < 0 || selStartPos.Y > selEndPos.Y ? selStartPos :
+ selStartPos.Y < selEndPos.Y ? selEndPos :
+ selStartPos.X > selEndPos.X ? selStartPos : selEndPos; }
+ }
+ public bool SelectionIsEmpty
+ { get { return selEndPos == selStartPos; } }
+ /// <summary>
+ /// Current column in buffer coordinate, tabulation = 1 char
+ /// </summary>
+ public int CurrentColumn{
+ get { return _currentCol; }
+ set {
+ if (value == _currentCol)
+ return;
+
+ editMutex.EnterWriteLock ();
+
+ if (value < 0)
+ _currentCol = 0;
+ else if (value >= lineLength [_currentLine]) {
+ if (_currentLine < LineCount -1 && value > lineLength [_currentLine] - 1)
+ _currentCol = lineLength [_currentLine] - 1;
+ else
+ _currentCol = lineLength [_currentLine];
+ }else
+ _currentCol = value;
+
+ editMutex.ExitWriteLock ();
+
+ PositionChanged.Raise (this, null);
+ }
+ }
+ /// <summary>
+ /// Current row in buffer coordinate, tabulation = 1 char
+ /// </summary>
+ public int CurrentLine{
+ get { return _currentLine; }
+ set {
+ if (value == _currentLine)
+ return;
+
+ editMutex.EnterWriteLock ();
+
+ if (value >= lineLength.Count)
+ _currentLine = lineLength.Count-1;
+ else if (value < 0)
+ _currentLine = 0;
+ else
+ _currentLine = value;
+
+ int c = _currentCol;
+ _currentCol = 0;
+ CurrentColumn = c;
+
+ editMutex.ExitWriteLock();
+
+ PositionChanged.Raise (this, null);
+ }
+ }
+ /// <summary>
+ /// Current position in buffer coordinate, tabulation = 1 char
+ /// </summary>
+ public Point CurrentPosition {
+ get { return new Point(CurrentColumn, CurrentLine); }
+ }
+ /// <summary>
+ /// get char at current position in buffer
+ /// </summary>
+ protected Char CurrentChar { get { return buffer[this [CurrentLine]]; } }
+ public string SelectedText {
+ get {
+ if (SelectionIsEmpty)
+ return "";
+ Point selStart = SelectionStart;
+ Point selEnd = SelectionEnd;
+
+ int ptr = this [selStart.Y] + selStart.X;
+ int length = lineLength[selStart.Y] - selStart.X;
+ for (int i = selStart.Y+1; i <= selEnd.Y; i++)
+ length += lineLength [i];
+ length -= lineLength[selEnd.Y] - selEnd.X;
+
+ return buffer.ToString (ptr, length);
+ }
+ }
+
+ public void GotoWordStart(){
+ if (_currentCol == 0)
+ MoveLeft ();
+ if (_currentCol == 0)
+ return;
+ int ptrStart = BufferIndexOfCurrentPosition;
+ int ptr = ptrStart;
+ char c;
+ //skip white spaces
+ do {
+ ptr--;
+ c = this.GetCharAt (ptr);
+ } while (!char.IsLetterOrDigit (c) && c != '\n' && ptr > 1);
+
+ do {
+ ptr--;
+ c = this.GetCharAt (ptr);
+ } while (char.IsLetterOrDigit (c) && c != '\n' && ptr > 1);
+
+ if (ptr == 0)
+ CurrentColumn = 0;
+ else
+ CurrentColumn -= ptrStart - ptr - 1;
+ }
+ public void GotoWordEnd(){
+ int limx = GetLineLength (_currentLine);
+ if (_currentLine < lineLength.Count - 1)
+ limx--;
+
+ if (_currentCol == limx) {
+ MoveRight ();
+ limx = GetLineLength (_currentLine);
+ if (_currentLine < lineLength.Count - 1)
+ limx--;
+ }
+
+ int ptrLine = GetBufferIndexOfLine(_currentLine);
+ int ptrCol = _currentCol;
+
+ char c;
+ //skip white spaces
+ do {
+ c = GetCharAt (ptrLine+ptrCol);
+ ptrCol++;
+ } while (!char.IsLetterOrDigit (c) && ptrCol < limx);
+
+ do {
+ c = GetCharAt (ptrLine + ptrCol);
+ ptrCol++;
+ } while (char.IsLetterOrDigit (c) && ptrCol < limx);
+ CurrentColumn = ptrCol - 1;
+ }
+ /// <summary>
+ /// Moves cursor one char to the left, move up if cursor reaches start of line
+ /// </summary>
+ public void MoveLeft(){
+ if (CurrentColumn == 0) {
+ CurrentLine--;
+ CurrentColumn = int.MaxValue;
+ } else
+ CurrentColumn--;
+ }
+ /// <summary>
+ /// Moves cursor one char to the right, move down if cursor reaches end of line
+ /// </summary>
+ public void MoveRight(){
+ if (_currentLine < LineCount -1){
+ if (CurrentColumn >= lineLength [CurrentLine] - 1) {
+ CurrentColumn = 0;
+ CurrentLine++;
+ return;
+ }
+ }
+ CurrentColumn++;
+ }
+
+ #endregion
+ }
+}
+
--- /dev/null
+using System;
+
+namespace Crow.Text
+{
+ public class TextBufferEventArgs : EventArgs {
+ public int LineStart;
+ public int LineCount;
+
+ public TextBufferEventArgs(int lineNumber) {
+ LineStart = lineNumber;
+ LineCount = 1;
+ }
+ public TextBufferEventArgs(int lineStart, int lineCount) {
+ LineStart = lineStart;
+ LineCount = lineCount;
+ }
+ }
+
+}
+
--- /dev/null
+//
+// ScrollingTextBox.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.ComponentModel;
+using vkvg;
+
+namespace Crow.Text
+{
+ /// <summary>
+ /// Scrolling text box optimized for monospace fonts, for coding
+ /// </summary>
+ public class TextEditor : Crow.Coding.Editor
+ {
+ #region CTOR
+ public TextEditor (): base()
+ {
+ buffer = new TextBuffer ();
+ buffer.LineUpadateEvent += Buffer_LineUpadateEvent;
+ buffer.LineAdditionEvent += Buffer_LineAdditionEvent;;
+ buffer.LineRemoveEvent += Buffer_LineRemoveEvent;
+ buffer.BufferCleared += Buffer_BufferCleared;
+ buffer.SelectionChanged += Buffer_SelectionChanged;
+ buffer.PositionChanged += Buffer_PositionChanged;
+ //buffer.Add ("");
+ }
+ #endregion
+
+ string oldSource = "";
+ volatile bool isDirty = false;
+
+ #region private and protected fields
+ int visibleLines = 1;
+ int visibleColumns = 1;
+
+ TextBuffer buffer;
+
+ Color selBackground;
+ Color selForeground;
+ int selStartCol;
+ int selEndCol;
+
+ protected Rectangle rText;
+ protected FontExtents fe;
+ protected TextExtents te;
+
+ Point mouseLocalPos;
+ bool doubleClicked = false;
+ #endregion
+
+ /// <summary>
+ /// Updates visible line in widget, adapt max scroll y and updatePrintedLines
+ /// </summary>
+ void updateVisibleLines(){
+ visibleLines = (int)Math.Floor ((double)ClientRectangle.Height / (fe.Ascent+fe.Descent));
+ NotifyValueChanged ("VisibleLines", visibleLines);
+ updateMaxScrollY ();
+ RegisterForGraphicUpdate ();
+// System.Diagnostics.Debug.WriteLine ("update visible lines: " + visibleLines);
+// System.Diagnostics.Debug.WriteLine ("update MaxScrollY: " + MaxScrollY);
+ }
+ void updateVisibleColumns(){
+ visibleColumns = (int)Math.Floor ((double)(ClientRectangle.Width)/ fe.MaxXAdvance);
+ NotifyValueChanged ("VisibleColumns", visibleColumns);
+ RegisterForGraphicUpdate ();
+// System.Diagnostics.Debug.WriteLine ("update visible columns: {0} leftMargin:{1}",visibleColumns, leftMargin);
+// System.Diagnostics.Debug.WriteLine ("update MaxScrollX: " + MaxScrollX);
+ }
+ void updateMaxScrollX (int longestTabulatedLineLength) {
+ MaxScrollX = Math.Max (0, longestTabulatedLineLength - visibleColumns);
+ if (longestTabulatedLineLength > 0)
+ NotifyValueChanged ("ChildWidthRatio", Slot.Width * visibleColumns / longestTabulatedLineLength);
+ }
+ void updateMaxScrollY () {
+ int lc = buffer.LineCount;
+ MaxScrollY = Math.Max (0, lc - visibleLines);
+ if (lc > 0)
+ NotifyValueChanged ("ChildHeightRatio", Slot.Height * visibleLines / lc);
+
+ }
+
+
+
+ #region Editor overrides
+ protected override void updateEditorFromProjFile ()
+ {
+ buffer.editMutex.EnterWriteLock ();
+ loadSource ();
+ buffer.editMutex.ExitWriteLock ();
+
+ isDirty = false;
+ oldSource = projFile.Source;
+ projFile.RegisteredEditors [this] = true;
+ }
+ protected override void updateProjFileFromEditor ()
+ {
+ buffer.editMutex.EnterWriteLock ();
+ string newsrc = buffer.FullText;
+ buffer.editMutex.ExitWriteLock ();
+ projFile.UpdateSource (this, newsrc);
+ }
+ protected override bool EditorIsDirty {
+ get { return isDirty; }
+ set { isDirty = value; }
+ }
+ protected override bool IsReady {
+ get { return projFile != null && buffer != null; }
+ }
+ #endregion
+
+ #region Buffer events handlers
+ void Buffer_BufferCleared (object sender, EventArgs e)
+ {
+ editorMutex.EnterWriteLock ();
+
+ MaxScrollX = MaxScrollY = 0;
+ RegisterForGraphicUpdate ();
+ notifyPositionChanged ();
+ isDirty = true;
+
+ editorMutex.ExitWriteLock ();
+ }
+ void Buffer_LineAdditionEvent (object sender, TextBufferEventArgs e)
+ {
+ updateMaxScrollY ();
+ RegisterForGraphicUpdate ();
+ isDirty = true;
+ }
+ void Buffer_LineRemoveEvent (object sender, TextBufferEventArgs e)
+ {
+ updateMaxScrollY ();
+ RegisterForGraphicUpdate ();
+ notifyPositionChanged ();
+ isDirty = true;
+ }
+ void Buffer_LineUpadateEvent (object sender, TextBufferEventArgs e)
+ {
+ RegisterForGraphicUpdate ();
+ notifyPositionChanged ();
+ isDirty = true;
+ }
+ void Buffer_PositionChanged (object sender, EventArgs e)
+ {
+ int cc = getTabulatedColumn (buffer.CurrentPosition);
+
+ if (cc > visibleColumns + ScrollX) {
+ ScrollX = cc - visibleColumns;
+ } else if (cc < ScrollX)
+ ScrollX = cc;
+
+ if (buffer.CurrentLine >= visibleLines + ScrollY - 1)
+ ScrollY = buffer.CurrentLine - visibleLines + 1;
+ else if (buffer.CurrentLine < ScrollY)
+ ScrollY = buffer.CurrentLine;
+
+ RegisterForGraphicUpdate ();
+ notifyPositionChanged ();
+ }
+
+ void Buffer_SelectionChanged (object sender, EventArgs e)
+ {
+ RegisterForGraphicUpdate ();
+ }
+ #endregion
+
+ void notifyPositionChanged (){
+ try {
+ NotifyValueChanged ("CurrentLine", buffer.CurrentLine+1);
+ NotifyValueChanged ("CurrentColumn", buffer.CurrentColumn+1);
+ } catch (Exception ex) {
+ Console.WriteLine (ex.ToString ());
+ }
+ }
+
+ #region Public Crow Properties
+ public int CurrentLine{
+ get { return buffer == null ? 0 : buffer.CurrentLine+1; }
+ set {
+ try {
+ int l = value - 1;
+ if (l == buffer.CurrentLine)
+ return;
+ buffer.CurrentLine = l;
+ } catch (Exception ex) {
+ Console.WriteLine ("Error cur column: " + ex.ToString ());
+ }
+ }
+ }
+ public int CurrentColumn{
+ get { return buffer == null ? 0 : buffer.CurrentColumn+1; }
+ set {
+ try {
+ if (value - 1 == buffer.CurrentColumn)
+ return;
+ buffer.CurrentColumn = value - 1;
+ } catch (Exception ex) {
+ Console.WriteLine ("Error cur column: " + ex.ToString ());
+ }
+ }
+ }
+ [DefaultValue("Blue")]
+ public virtual Color SelectionBackground {
+ get { return selBackground; }
+ set {
+ if (value == selBackground)
+ return;
+ selBackground = value;
+ NotifyValueChanged ("SelectionBackground", selBackground);
+ RegisterForRedraw ();
+ }
+ }
+ [DefaultValue("White")]
+ public virtual Color SelectionForeground {
+ get { return selForeground; }
+ set {
+ if (value == selForeground)
+ return;
+ selForeground = value;
+ NotifyValueChanged ("SelectionForeground", selForeground);
+ RegisterForRedraw ();
+ }
+ }
+ public override int ScrollY {
+ get {
+ return base.ScrollY;
+ }
+ set {
+ if (value == base.ScrollY)
+ return;
+ editorMutex.EnterWriteLock ();
+ base.ScrollY = value;
+ editorMutex.ExitWriteLock ();
+ RegisterForGraphicUpdate ();
+ }
+ }
+ #endregion
+
+
+ void loadSource () {
+ buffer.Load (projFile.Source);
+ projFile.RegisteredEditors [this] = true;
+ updateMaxScrollY ();
+ RegisterForGraphicUpdate ();
+ }
+
+ int getTabulatedColumn (int col, int line) {
+ return buffer.GetSubString (buffer [line],
+ buffer.GetLineLength (line)).Substring(0,col).Replace ("\t", new String (' ', Interface.TabSize)).Length;
+ }
+ int getTabulatedColumn (Point pos) {
+ return getTabulatedColumn (pos.X,pos.Y);
+ }
+
+ #region Drawing
+ void drawLines(Context gr, Rectangle cb) {
+ int longestTabulatedLine = 0;
+ for (int i = 0; i < visibleLines; i++) {
+ int lineIndex = i + ScrollY;
+ if (lineIndex >= buffer.LineCount)//TODO:need optimize
+ break;
+
+ double y = cb.Y + (fe.Ascent+fe.Descent) * i, x = cb.X;
+
+ int lineLength = buffer.GetLineLength (lineIndex);
+ if (lineIndex < buffer.LineCount - 1)//dont print line break
+ lineLength--;
+ string lstr = buffer.GetSubString (buffer [lineIndex],
+ lineLength).Replace ("\t", new String (' ', Interface.TabSize));
+
+ int lstrLength = lstr.Length;
+ if (lstrLength > longestTabulatedLine)
+ longestTabulatedLine = lstrLength;
+
+ if (ScrollX < lstrLength)
+ lstr = lstr.Substring (ScrollX);
+ else
+ lstr = "";
+
+ gr.MoveTo (x, y + fe.Ascent);
+ gr.ShowText (lstr);
+ gr.Fill ();
+
+ if (!buffer.SelectionIsEmpty && lineIndex >= buffer.SelectionStart.Y && lineIndex <= buffer.SelectionEnd.Y) {
+ double rLineX = x,
+ rLineY = y,
+ rLineW = lstr.Length * fe.MaxXAdvance;
+
+ if (lineIndex == buffer.SelectionStart.Y) {
+ rLineX += (selStartCol - ScrollX) * fe.MaxXAdvance;
+ rLineW -= (selStartCol - ScrollX) * fe.MaxXAdvance;
+ }
+ if (lineIndex == buffer.SelectionEnd.Y)
+ rLineW -= (lstr.Length - selEndCol + ScrollX) * fe.MaxXAdvance;
+
+ gr.Save ();
+ gr.Operator = Operator.Source;
+ gr.Rectangle (rLineX, rLineY, rLineW, (fe.Ascent+fe.Descent));
+ gr.SetSourceColor (SelectionBackground);
+ gr.FillPreserve ();
+ gr.Clip ();
+ gr.Operator = Operator.Over;
+ gr.SetSourceColor (SelectionForeground);
+ gr.MoveTo (x, y + fe.Ascent);
+ gr.ShowText (lstr);
+ gr.Fill ();
+ gr.Restore ();
+ }
+
+
+ }
+
+ updateMaxScrollX(longestTabulatedLine);
+ }
+ #endregion
+
+ #region GraphicObject overrides
+ public override Font Font {
+ get { return base.Font; }
+ set {
+ base.Font = value;
+
+ using (Surface img = new Surface (IFace.dev, 1, 1)) {
+ using (Context gr = new Context (img)) {
+ gr.FontFace = Font.Name;
+ gr.FontSize = (uint)Font.Size;
+
+ fe = gr.FontExtents;
+ }
+ }
+ MaxScrollY = 0;
+ RegisterForGraphicUpdate ();
+ }
+ }
+ protected override int measureRawSize(LayoutingType lt)
+ {
+ if (lt == LayoutingType.Height)
+ return (int)Math.Ceiling((fe.Ascent+fe.Descent) * buffer.LineCount) + Margin * 2;
+
+ return 0;// (int)(fe.MaxXAdvance * buffer.GetLineLength(buffer.longestLineIdx)) + Margin * 2;
+ }
+ public override void OnLayoutChanges (LayoutingType layoutType)
+ {
+ base.OnLayoutChanges (layoutType);
+
+ if (layoutType == LayoutingType.Height)
+ updateVisibleLines ();
+ else if (layoutType == LayoutingType.Width)
+ updateVisibleColumns ();
+ }
+
+ protected override void onDraw (Context gr)
+ {
+ base.onDraw (gr);
+
+ gr.FontFace = Font.Name;
+ gr.FontSize = (uint)Font.Size;
+ //gr.FontOptions = Interface.FontRenderingOptions;
+ //gr.Antialias = Interface.Antialias;
+
+ Rectangle cb = ClientRectangle;
+
+ Foreground.SetAsSource (gr);
+
+ buffer.editMutex.EnterReadLock ();
+ editorMutex.EnterReadLock ();
+
+ #region draw text cursor
+ if (buffer.SelectionInProgress){
+ selStartCol = getTabulatedColumn (buffer.SelectionStart);
+ selEndCol = getTabulatedColumn (buffer.SelectionEnd);
+ }else if (HasFocus && CurrentLine >= 0){
+ gr.LineWidth = 1.0;
+ double cursorX = cb.X + (getTabulatedColumn(buffer.CurrentPosition) - ScrollX) * fe.MaxXAdvance ;
+ double cursorY = cb.Y + (buffer.CurrentLine - ScrollY) * (fe.Ascent+fe.Descent);
+ gr.MoveTo (0.5 + cursorX, cursorY);
+ gr.LineTo (0.5 + cursorX, cursorY + fe.Ascent+fe.Descent);
+ gr.Stroke();
+ }
+ #endregion
+
+ drawLines (gr, cb);
+
+ editorMutex.ExitReadLock ();
+
+ buffer.editMutex.ExitReadLock ();
+
+ }
+ #endregion
+
+ int getBufferColFromVisualCol (int line, int column) {
+ int i = 0;
+ int buffCol = 0;
+ int buffPtr = buffer [line];
+ while (i < column && buffCol < buffer.GetLineLength(line)) {
+ if (buffer.GetCharAt(buffPtr + buffCol) == '\t')
+ i += Interface.TabSize;
+ else
+ i++;
+ buffCol++;
+ }
+ return buffCol;
+ }
+
+
+ #region Mouse handling
+
+ int hoverLine = -1;
+ public int HoverLine {
+ get { return hoverLine; }
+ set {
+ if (hoverLine == value)
+ return;
+ hoverLine = value;
+ NotifyValueChanged ("HoverLine", hoverLine);
+ }
+ }
+ void updateHoverLine () {
+// int hvl = (int)Math.Max (0, Math.Floor (mouseLocalPos.Y / (fe.Ascent+fe.Descent)));
+// hvl = Math.Min (PrintedLines.Count, hvl);
+// HoverLine = buffer.IndexOf (PrintedLines[hvl]);
+ }
+ void updateCurrentPosFromMouseLocalPos(){
+
+ buffer.CurrentLine = ScrollY + (int)Math.Max (0, Math.Floor (mouseLocalPos.Y / (fe.Ascent+fe.Descent)));
+ int curVisualCol = ScrollX + (int)Math.Round ((mouseLocalPos.X) / fe.MaxXAdvance);
+ buffer.CurrentColumn = getBufferColFromVisualCol (buffer.CurrentLine, curVisualCol);
+ }
+
+ public override void onMouseEnter (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseEnter (sender, e);
+ IFace.MouseCursor = MouseCursor.IBeam;
+ }
+ public override void onMouseLeave (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseLeave (sender, e);
+ IFace.MouseCursor = MouseCursor.Arrow;
+ }
+ public override void onMouseMove (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseMove (sender, e);
+
+ mouseLocalPos = e.Position - ScreenCoordinates(Slot).TopLeft - ClientRectangle.TopLeft;
+
+ updateHoverLine ();
+
+ if (e.Mouse.LeftButton == ButtonState.Released || !buffer.SelectionInProgress)
+ return;
+
+ //mouse is down
+ updateCurrentPosFromMouseLocalPos();
+ buffer.SetSelEndPos ();
+ }
+ public override void onMouseDown (object sender, MouseButtonEventArgs e)
+ {
+ if (!Focusable)
+ return;
+
+ base.onMouseDown (sender, e);
+
+ if (doubleClicked) {
+ doubleClicked = false;
+ return;
+ }
+
+ updateCurrentPosFromMouseLocalPos ();
+ buffer.SetSelStartPos ();
+ }
+ public override void onMouseUp (object sender, MouseButtonEventArgs e)
+ {
+ base.onMouseUp (sender, e);
+
+ if (buffer.SelectionIsEmpty)
+ buffer.ResetSelection ();
+ }
+
+ public override void onMouseDoubleClick (object sender, MouseButtonEventArgs e)
+ {
+ //doubleClicked = true;
+ base.onMouseDoubleClick (sender, e);
+
+ buffer.GotoWordStart ();
+ buffer.SetSelStartPos ();
+ buffer.GotoWordEnd ();
+ buffer.SetSelEndPos ();
+ }
+
+ public override void onMouseWheel (object sender, MouseWheelEventArgs e)
+ {
+ base.onMouseWheel (sender, e);
+ }
+ #endregion
+
+ #region Keyboard handling
+ public override void onKeyDown (object sender, KeyEventArgs e)
+ {
+ //base.onKeyDown (sender, e);
+
+ Key key = e.Key;
+
+ if (IFace.Ctrl) {
+ switch (key) {
+ case Key.S:
+ projFile.Save ();
+ break;
+ case Key.W:
+ editorMutex.EnterWriteLock ();
+ if (IFace.Shift)
+ projFile.Redo (null);
+ else
+ projFile.Undo (null);
+ editorMutex.ExitWriteLock ();
+ break;
+ default:
+ Console.WriteLine ("");
+ break;
+ }
+ }
+
+ switch (key)
+ {
+ case Key.Backspace:
+ buffer.Delete ();
+ break;
+ case Key.Delete:
+ if (buffer.SelectionIsEmpty)
+ buffer.MoveRight ();
+// else if (e.Shift)
+// IFace.Clipboard = buffer.SelectedText;
+ buffer.Delete ();
+ break;
+ case Key.Enter:
+ case Key.KeypadEnter:
+ if (!buffer.SelectionIsEmpty)
+ buffer.Delete ();
+ buffer.InsertLineBreak ();
+ break;
+ case Key.Escape:
+ buffer.ResetSelection ();
+ break;
+ case Key.Home:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ if (IFace.Ctrl)
+ buffer.CurrentLine = 0;
+ buffer.CurrentColumn = 0;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ if (IFace.Ctrl)
+ buffer.CurrentLine = 0;
+ buffer.CurrentColumn = 0;
+ break;
+ case Key.End:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ if (IFace.Ctrl)
+ buffer.CurrentLine = int.MaxValue;
+ buffer.CurrentColumn = int.MaxValue;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ if (IFace.Ctrl)
+ buffer.CurrentLine = int.MaxValue;
+ buffer.CurrentColumn = int.MaxValue;
+ break;
+ case Key.Insert:
+ if (IFace.Shift)
+ buffer.InsertAt (IFace.Clipboard);
+ else if (IFace.Ctrl && !buffer.SelectionIsEmpty)
+ IFace.Clipboard = buffer.SelectedText;
+ break;
+ case Key.Left:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ if (IFace.Ctrl)
+ buffer.GotoWordStart ();
+ else
+ buffer.MoveLeft ();
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ if (IFace.Ctrl)
+ buffer.GotoWordStart ();
+ else
+ buffer.MoveLeft();
+ break;
+ case Key.Right:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ if (IFace.Ctrl)
+ buffer.GotoWordEnd ();
+ else
+ buffer.MoveRight ();
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ if (IFace.Ctrl)
+ buffer.GotoWordEnd ();
+ else
+ buffer.MoveRight ();
+ break;
+ case Key.Up:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ CurrentLine--;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ CurrentLine--;
+ break;
+ case Key.Down:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ CurrentLine++;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ CurrentLine++;
+ break;
+ case Key.Menu:
+ break;
+ case Key.NumLock:
+ break;
+ case Key.PageDown:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ CurrentLine += visibleLines;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ CurrentLine += visibleLines;
+ break;
+ case Key.PageUp:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ CurrentLine -= visibleLines;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ CurrentLine -= visibleLines;
+ break;
+ case Key.Tab:
+ buffer.InsertAt ("\t");
+ break;
+ default:
+ break;
+ }
+ RegisterForGraphicUpdate();
+ }
+ public override void onKeyPress (object sender, KeyPressEventArgs e)
+ {
+ base.onKeyPress (sender, e);
+
+ buffer.InsertAt (e.KeyChar.ToString());
+ buffer.ResetSelection ();
+ }
+ #endregion
+ }
+}
\ No newline at end of file
--- /dev/null
+using System;
+
+namespace Crow.Coding
+{
+ public struct TextFormatting {
+ public Color Foreground;
+ public Color Background;
+ public bool Bold;
+ public bool Italic;
+
+ public TextFormatting(Color fg, Color bg, bool bold = false, bool italic = false){
+ Foreground = fg;
+ Background = bg;
+ Bold = bold;
+ Italic = italic;
+ }
+ }
+}
+
--- /dev/null
+//
+// Token.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2017 jp
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+using System;
+
+namespace Crow.Coding
+{
+ public struct Token
+ {
+ public BufferParser.TokenType Type;
+ public string Content;
+ public Point Start;
+ public Point End;
+
+ public string PrintableContent {
+ get { return string.IsNullOrEmpty(Content) ? "" : Content.Replace("\t", new String(' ', Interface.TabSize)); }
+ }
+
+// public Token (TokenType tokType, string content = ""){
+// Type = tokType;
+// Content = content;
+// }
+
+ public bool IsNull { get { return IsEmpty && Type == BufferParser.TokenType.Unknown; }}
+ public bool IsEmpty { get { return string.IsNullOrEmpty(Content); }}
+
+ public static bool operator == (Token t, System.Enum tt){
+ return Convert.ToInt32(t.Type) == Convert.ToInt32(tt);
+ }
+ public static bool operator != (Token t, System.Enum tt){
+ return Convert.ToInt32(t.Type) != Convert.ToInt32(tt);
+ }
+ public static bool operator == (System.Enum tt, Token t){
+ return Convert.ToInt32(t.Type) == Convert.ToInt32(tt);
+ }
+ public static bool operator != (System.Enum tt, Token t){
+ return Convert.ToInt32(t.Type) != Convert.ToInt32(tt);
+ }
+
+ public static Token operator +(Token t, char c){
+ t.Content += c;
+ return t;
+ }
+ public static Token operator +(Token t, string s){
+ t.Content += s;
+ return t;
+ }
+ public override string ToString ()
+ {
+ return string.Format ("[Tok{2}->{3}:{0}: {1}]", Type,Content,Start,End);
+ }
+ }
+}
+
--- /dev/null
+//
+// EditPane.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using Crow;
+using System.Linq;
+
+namespace Crow.Coding
+{
+ public class EditPane : TemplatedGroup
+ {
+ public EditPane () {}
+
+ object selectedItemElement = null;
+
+ public override int SelectedIndex {
+ get {
+ return base.SelectedIndex;
+ }
+ set {
+ base.SelectedIndex = value;
+ }
+ }
+ public object SelectedItemElement {
+ get { return selectedItemElement; }
+ set {
+ if (selectedItemElement == value)
+ return;
+ selectedItemElement = value;
+ NotifyValueChanged ("SelectedItemElement", selectedItemElement);
+ }
+ }
+ }
+}
+
--- /dev/null
+//
+// Editor.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Threading;
+using System.Xml.Serialization;
+
+namespace Crow.Coding
+{
+ public abstract class Editor : ScrollingObject
+ {
+ #region CTOR
+ protected Editor ():base(){
+ Thread t = new Thread (backgroundThreadFunc);
+ t.IsBackground = true;
+ t.Start ();
+ }
+ #endregion
+
+ protected ReaderWriterLockSlim editorMutex = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion);
+ protected ProjectFile projFile = null;
+ Exception error = null;
+
+ public virtual ProjectFile ProjectNode
+ {
+ get { return projFile; }
+ set
+ {
+ if (projFile == value)
+ return;
+
+ if (projFile != null)
+ projFile.UnregisterEditor (this);
+
+ projFile = value;
+
+ if (projFile != null)
+ projFile.RegisterEditor (this);
+
+ NotifyValueChanged ("ProjectNode", projFile);
+ }
+ }
+ [XmlIgnore]public Exception Error {
+ get { return error; }
+ set {
+ if (error == value)
+ return;
+ error = value;
+ NotifyValueChanged ("Error", error);
+ NotifyValueChanged ("HasError", HasError);
+ }
+ }
+ [XmlIgnore]public bool HasError {
+ get { return error != null; }
+ }
+
+ protected abstract void updateEditorFromProjFile ();
+ protected abstract void updateProjFileFromEditor ();
+ protected abstract bool EditorIsDirty { get; set; }
+ protected virtual bool IsReady { get { return true; }}
+ protected virtual void updateCheckPostProcess () {}
+
+ protected void backgroundThreadFunc () {
+ while (true) {
+ if (IsReady) {
+ if (Monitor.TryEnter (IFace.UpdateMutex)) {
+ if (!projFile.RegisteredEditors [this]) {
+ projFile.RegisteredEditors [this] = true;
+ updateEditorFromProjFile ();
+ } else if (EditorIsDirty) {
+ EditorIsDirty = false;
+ updateProjFileFromEditor ();
+ }
+ updateCheckPostProcess ();
+ Monitor.Exit (IFace.UpdateMutex);
+ }
+ }
+ Thread.Sleep (100);
+ }
+ }
+ }
+}
+
--- /dev/null
+//
+// ImlVisualEditor.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2016 jp
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+using System;
+using Crow;
+using System.Threading;
+using System.Xml.Serialization;
+using System.ComponentModel;
+using System.IO;
+using System.Collections.Generic;
+using Crow.IML;
+using System.Text;
+using System.Xml;
+
+namespace Crow.Coding
+{
+ public class ImlSchematicEditor : TemplatedGroup
+ {
+ #region CTOR
+ public ImlSchematicEditor ()
+ {
+ }
+ #endregion
+
+ ProjectFile projNode;
+ Widget selectedItem;
+ ImlProjectItem imlProjFile;
+ Exception imlError = null;
+
+ bool drawGrid, snapToGrid;
+ int gridSpacing;
+
+ [DefaultValue(true)]
+ public bool DrawGrid {
+ get { return drawGrid; }
+ set {
+ if (drawGrid == value)
+ return;
+ drawGrid = value;
+ NotifyValueChanged ("DrawGrid", drawGrid);
+ RegisterForRedraw ();
+ }
+ }
+ [DefaultValue(true)]
+ public bool SnapToGrid {
+ get { return snapToGrid; }
+ set {
+ if (snapToGrid == value)
+ return;
+ snapToGrid = value;
+ NotifyValueChanged ("SnapToGrid", snapToGrid);
+ }
+ }
+ [DefaultValue(10)]
+ public int GridSpacing {
+ get { return gridSpacing; }
+ set {
+ if (gridSpacing == value)
+ return;
+ gridSpacing = value;
+ NotifyValueChanged ("GridSpacing", gridSpacing);
+ RegisterForRedraw ();
+ }
+ }
+ public Widget SelectedItem {
+ get { return selectedItem; }
+ set {
+ if (selectedItem == value)
+ return;
+ selectedItem = value;
+ NotifyValueChanged ("SelectedItem", selectedItem);
+ RegisterForRedraw ();
+ }
+ }
+// public override ProjectFile ProjectNode {
+// get {
+// return projNode;
+// }
+// set {
+// if (projNode == value)
+// return;
+// projNode = value;
+// NotifyValueChanged ("ProjectNode", projNode);
+//
+// if (projNode is ImlProjectItem)
+// imlProjFile = projNode as ImlProjectItem;
+// else
+// imlProjFile = null;
+// }
+// }
+
+
+// protected override bool EditorIsDirty {
+// get {
+// throw new NotImplementedException ();
+// }
+// set {
+// throw new NotImplementedException ();
+// }
+// }
+// protected override void updateProjFileFromEditor ()
+// {
+//
+// }
+// protected override void updateEditorFromProjFile () {
+//
+// }
+// protected override void updateCheckPostProcess ()
+// {
+//
+// }
+
+
+ }
+}
--- /dev/null
+//
+// ImlVisualEditor.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2016 jp
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+using System;
+using Crow;
+using System.Threading;
+using System.Xml.Serialization;
+using System.ComponentModel;
+using System.IO;
+using System.Collections.Generic;
+using Crow.IML;
+using System.Text;
+using System.Xml;
+using System.Diagnostics;
+using vkvg;
+
+namespace Crow.Coding
+{
+ public class ImlVisualEditor : Editor
+ {
+ #region CTOR
+ public ImlVisualEditor () : base()
+ {
+ //imlVE = new DesignInterface (Interface.de);
+ initCommands ();
+ }
+ #endregion
+
+ protected override void onInitialized (object sender, EventArgs e)
+ {
+ initIcons ();
+ base.onInitialized (sender, e);
+ }
+ DesignInterface imlVE;
+ Widget selectedItem;
+ ImlProjectItem imlProjFile;
+
+ bool editorIsDirty = false;//needed when tree is empty
+ bool drawGrid, snapToGrid;
+ int gridSpacing, zoom = 100;
+ Measure designWidth, designHeight;
+ bool updateEnabled;
+
+ Picture icoMove, icoStyle;
+ Rectangle rIcons = default(Rectangle);
+ Size iconSize = new Size(11,11);
+
+ public List<Crow.Command> Commands;
+ Crow.Command cmdDelete;
+
+ void initCommands () {
+ cmdDelete = new Crow.Command (new Action (() => deleteObject (SelectedItem)))
+ { Caption = "Delete", Icon = new SvgPicture ("#CrowIDE.icons.save.svg"), CanExecute = true };
+ Commands = new List<Crow.Command> (new Crow.Command[] { cmdDelete });
+ }
+
+ void initIcons () {
+ icoMove = new SvgPicture ("#CrowIDE.icons.move-arrows.svg");
+
+ // icoStyle = new SvgPicture ();
+ // icoStyle.Load (IFace, "#CrowIDE.icons.palette.svg");
+ }
+
+ [DefaultValue(true)]
+ public bool DrawGrid {
+ get { return drawGrid; }
+ set {
+ if (drawGrid == value)
+ return;
+ drawGrid = value;
+ NotifyValueChanged ("DrawGrid", drawGrid);
+ RegisterForRedraw ();
+ }
+ }
+ [DefaultValue(true)]
+ public bool SnapToGrid {
+ get { return snapToGrid; }
+ set {
+ if (snapToGrid == value)
+ return;
+ snapToGrid = value;
+ NotifyValueChanged ("SnapToGrid", snapToGrid);
+ }
+ }
+ [DefaultValue(10)]
+ public int GridSpacing {
+ get { return gridSpacing; }
+ set {
+ if (gridSpacing == value)
+ return;
+ gridSpacing = value;
+ NotifyValueChanged ("GridSpacing", gridSpacing);
+ RegisterForRedraw ();
+ }
+ }
+ [DefaultValue(100)]
+ public int Zoom {
+ get { return zoom; }
+ set {
+ if (zoom == value)
+ return;
+
+ zoom = value;
+ NotifyValueChanged ("Zoom", zoom);
+ Width = (int)(designWidth * zoom / 100.0);
+ Height = (int)(designHeight * zoom / 100.0);
+ }
+ }
+ [DefaultValue("512")]
+ public Measure DesignWidth {
+ get { return designWidth; }
+ set {
+ if (designWidth == value)
+ return;
+ designWidth = value;
+ NotifyValueChanged ("DesignWidth", designWidth);
+ Width = (int)(designWidth * zoom / 100.0);
+ }
+ }
+ [DefaultValue("400")]
+ public Measure DesignHeight {
+ get { return designHeight; }
+ set {
+ if (designHeight == value)
+ return;
+ designHeight = value;
+ NotifyValueChanged ("DesignHeight", designHeight);
+ Height = (int)(designHeight * zoom / 100.0);
+ }
+ }
+
+ public Widget SelectedItem {
+ get { return selectedItem; }
+ set {
+ if (selectedItem == value)
+ return;
+ selectedItem = value;
+
+ if (selectedItem == null)
+ cmdDelete.CanExecute = false;
+ else
+ cmdDelete.CanExecute = true;
+
+ NotifyValueChanged ("SelectedItem", selectedItem);
+ RegisterForGraphicUpdate ();
+ }
+ }
+ /// <summary>PoinprojFilever the widget</summary>
+ public virtual Widget HoverWidget
+ {
+ get { return imlVE.HoverWidget; }
+ set {
+ if (HoverWidget == value)
+ return;
+
+ imlVE.HoverWidget = value;
+
+ NotifyValueChanged ("HoverWidget", HoverWidget);
+ }
+ }
+ /// <summary>
+ /// use to disable update if tab is not the visible one
+ /// </summary>
+ public bool UpdateEnabled {
+ get { return updateEnabled; }
+ set {
+ if (value == updateEnabled)
+ return;
+ updateEnabled = value;
+ NotifyValueChanged ("UpdateEnabled", updateEnabled);
+ }
+ }
+
+ public List<Widget> GraphicTree {
+ get { return imlVE.GraphicTree; }
+ }
+
+ [XmlIgnore]public List<LQIList> LQIs {
+ get { return imlVE.LQIs; }
+ }
+
+ #region editor overrides
+ public override ProjectFile ProjectNode {
+ get {
+ return base.ProjectNode;
+ }
+ set {
+ base.ProjectNode = value;
+ imlProjFile = projFile as ImlProjectItem;
+ imlVE.ProjFile = imlProjFile;
+ }
+ }
+
+ protected override bool EditorIsDirty {
+ get { return imlProjFile == null ? false :
+ imlProjFile.Instance == null ? editorIsDirty :
+ imlProjFile.Instance.design_HasChanged | editorIsDirty; }
+ set {
+ editorIsDirty = value;
+ if (GraphicTree.Count == 0)
+ return;
+ if (GraphicTree [0] != null)
+ GraphicTree [0].design_HasChanged = value;
+ }
+ }
+ protected override bool IsReady {
+ get { return updateEnabled && imlVE != null && imlProjFile != null; }
+ }
+
+ protected override void updateProjFileFromEditor ()
+ {
+ Debug.WriteLine("\t\tImlEditor updateProjFileFromEditor");
+ try {
+ if (imlProjFile.Instance == null)
+ projFile.UpdateSource(this, @"<?xml version=""1.0""?>");
+ else
+ projFile.UpdateSource(this, imlProjFile.Instance.GetIML());
+ } catch (Exception ex) {
+ Error = ex.InnerException;
+ if (Monitor.IsEntered(imlVE.UpdateMutex))
+ Monitor.Exit (imlVE.UpdateMutex);
+ }
+ }
+ protected override void updateEditorFromProjFile () {
+ Debug.WriteLine("\t\tImlEditor updateEditorFromProjFile");
+ try {
+ string selItemDesignID = null;
+ if (SelectedItem!=null)
+ selItemDesignID = SelectedItem.design_id;
+ imlVE.ClearInterface();
+ Instantiator.NextInstantiatorID = 0;
+ imlVE.Styling = projFile.Project.solution.Styling;
+ imlVE.DefaultValuesLoader.Clear();
+ //imlVE.DefaultTemplates = projFile.Project.solution.DefaultTemplates;
+ imlVE.Instantiators = new Dictionary<string, Instantiator>();
+
+ //prevent error on empty file
+ bool emptyFile = true;
+ string src = projFile.Source;
+ using (Stream s = new MemoryStream (Encoding.UTF8.GetBytes (src))) {
+ using (XmlReader itr = XmlReader.Create (s)) {
+ while(itr.Read()){
+ if (itr.NodeType == XmlNodeType.Element){
+ emptyFile = false;
+ break;
+ }
+ }
+ }
+ }
+ Widget go = null;
+ Error = null;
+
+ if (emptyFile){
+ imlProjFile.Instance = null;
+ }else{
+ imlVE.LoadIMLFragment(src);
+ imlProjFile.Instance = imlVE.GraphicTree[0];
+ if (selItemDesignID!=null)
+ imlProjFile.Instance.FindByDesignID(selItemDesignID,out go);
+
+ }
+ SelectedItem = go;
+ } catch (Exception ex) {
+ Error = ex;
+ }
+ }
+ protected override void updateCheckPostProcess ()
+ {
+ if (Error != null) {
+ RegisterForRedraw ();
+ return;
+ }
+ imlVE.Update ();
+ bool isDirty = false;
+
+ lock (imlVE.RenderMutex)
+ isDirty = imlVE.IsDirty;
+
+ if (isDirty) {
+ lock (IFace.UpdateMutex)
+ RegisterForRedraw ();
+ }
+ }
+ #endregion
+
+ #region GraphicObject overrides
+ public override void OnLayoutChanges (LayoutingType layoutType)
+ {
+ base.OnLayoutChanges (layoutType);
+ switch (layoutType) {
+ case LayoutingType.Width:
+ DesignWidth = Slot.Width * 100 / zoom;
+ imlVE.ProcessResize (new Size(designWidth,designHeight));
+ break;
+ case LayoutingType.Height:
+ DesignHeight = Slot.Height * 100 / zoom;
+ imlVE.ProcessResize (new Size(designWidth,designHeight));
+ break;
+ }
+ }
+
+ public override void onMouseMove (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseMove (sender, e);
+
+ Widget oldHW = HoverWidget;
+ Rectangle scr = this.ScreenCoordinates (this.getSlot ());
+ ProcessMouseMove (e.X - scr.X, e.Y - scr.Y);
+
+ Widget newHW = HoverWidget;
+ if (newHW == null)
+ return;
+
+ if (draggedObj != null) {
+ if (draggedObj.Parent == null) {
+ if (tryAddObjectTo (newHW, draggedObj)) {
+ RegisterForRedraw ();
+ return;
+ }
+ } else if (newHW != draggedObj) {
+ //lock (imlVE.UpdateMutex) {
+ ILayoutable possibleParent = getPossibleParent (newHW, draggedObj);
+ if (possibleParent == null) {
+ Group g = newHW.Parent as Group;
+ if (g != null && g != draggedObj) {
+ removeObject (draggedObj);
+ g.InsertChild (g.Children.IndexOf (newHW), draggedObj);
+ RegisterForRedraw ();
+ return;
+ }
+ } else if (possibleParent != draggedObj.Parent) {
+ removeObject (draggedObj);
+ if (tryAddObjectTo (possibleParent, draggedObj)) {
+ RegisterForRedraw ();
+ return;
+ }
+ }
+ //}
+ }
+ }
+
+ if (oldHW == newHW)
+ return;
+ //RegisterForRedraw ();
+
+ }
+ public override void onMouseEnter (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseEnter (sender, e);
+ if (IFace.DragAndDropOperation != null && draggedObj == null)
+ return;
+ IFace.FocusedWidget = this;
+ }
+ public override void onMouseLeave (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseLeave (sender, e);
+// IFace.FocusedWidget = null;
+ }
+ public override void onMouseDown (object sender, MouseButtonEventArgs e)
+ {
+ if (e.Mouse.RightButton == ButtonState.Pressed) {
+ base.onMouseDown (sender, e);
+ return;
+ }
+ SelectedItem = HoverWidget;
+
+// if (SelectedItem != null && projFile != null) {
+// projFile.CurrentLine = SelectedItem.design_line;
+// projFile.CurrentColumn = SelectedItem.design_column;
+// }
+
+ }
+
+ protected override void onDraw (Context gr)
+ {
+ base.onDraw (gr);
+
+ Rectangle cb = new Rectangle (0, 0, designWidth, designHeight);
+
+ gr.Save ();
+
+ double z = zoom / 100.0;
+
+ gr.Scale (z, z);
+
+ if (drawGrid) {
+ double gridLineWidth = 0.2 / z;
+ double glhw = gridLineWidth / 2.0;
+ int nbLines = cb.Width / gridSpacing;
+ double d = cb.Left + gridSpacing;
+ for (int i = 0; i < nbLines; i++) {
+ gr.MoveTo (d - glhw, cb.Y);
+ gr.LineTo (d - glhw, cb.Bottom);
+ d += gridSpacing;
+ }
+ nbLines = cb.Height / gridSpacing;
+ d = cb.Top + gridSpacing;
+ for (int i = 0; i < nbLines; i++) {
+ gr.MoveTo (cb.X, d - glhw);
+ gr.LineTo (cb.Right, d - glhw);
+ d += gridSpacing;
+ }
+ gr.LineWidth = gridLineWidth;
+ Foreground.SetAsSource (gr, cb);
+ gr.Stroke ();
+ }
+
+ lock (imlVE.RenderMutex) {
+ gr.SetSourceSurface (imlVE.surf, cb.Left, cb.Top);
+ gr.Paint ();
+ imlVE.IsDirty = false;
+ }
+ /*if (Error == null) {
+ gr.SetSourceColor (Color.Black);
+ gr.Rectangle (cb, 1.0 / z);
+ } else {
+ gr.SetSourceColor (Color.LavenderBlush);
+ gr.Rectangle (cb, 2.0 / z);
+ string[] lerrs = Error.ToString ().Split ('\n');
+ Point p = cb.Center;
+ p.Y -= lerrs.Length * 20;
+ foreach (string le in lerrs) {
+ drawCenteredTextLine(gr, p, le);
+ p.Y += 20;
+
+ }
+ }
+ gr.Stroke ();*/
+
+ Rectangle hr;
+
+ /*
+ if (SelectedItem?.Parent != null) {
+
+ gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
+ gr.SetFontSize (Font.Size);
+ gr.FontOptions = Interface.FontRenderingOptions;
+ gr.Antialias = Interface.Antialias;
+
+ Widget g = SelectedItem;
+ hr = g.ScreenCoordinates (g.getSlot ());
+
+// Rectangle rIcons = new Rectangle (iconSize);
+// rIcons.Width *= 4;
+// rIcons.Top = hr.Bottom;
+// rIcons.Left = hr.Right - rIcons.Width + iconSize.Width;
+ Rectangle rIcoMove = new Rectangle (hr.BottomRight, iconSize);
+// Rectangle rIcoStyle = rIcoMove;
+// rIcoStyle.Left += iconSize.Width + 4;
+
+ using (Surface mask = new ImageSurface (Format.Argb32, cb.Width, cb.Height)) {
+ using (Context ctx = new Context (mask)) {
+ ctx.Save();
+ ctx.SetSourceRGBA(1.0,1.0,1.0,0.4);
+ ctx.Paint ();
+ ctx.Rectangle (hr);
+ ctx.Operator = Operator.Clear;
+ ctx.Fill ();
+ }
+
+ gr.SetSourceSurface (mask, 0, 0);
+ gr.Paint ();
+
+ using (Surface ol = new ImageSurface (Format.Argb32, cb.Width, cb.Height)) {
+ using (Context ctx = new Context (ol)) {
+ ctx.SetSourceColor (Color.Black);
+ drawDesignOverlay (ctx, g, cb, hr, 0.4 / z, 6.5);
+ }
+
+ gr.SetSourceSurface (ol, 0, 0);
+ gr.Paint ();
+ }
+
+ drawIcon (gr, icoMove, rIcoMove);
+ //drawIcon (gr, icoStyle, rIcoStyle);
+
+ }
+ }*/
+ if (HoverWidget != null) {
+ hr = HoverWidget.ScreenCoordinates (HoverWidget.getSlot ());
+ gr.SetSourceColor (Color.SkyBlue);
+ //gr.SetDash (new double[]{ 5.0, 3.0 }, 0.0);
+ gr.Rectangle (hr, 0.4 / z);
+ }
+ gr.Restore ();
+ }
+
+ void drawIcon (Context gr, Picture pic, Rectangle r) {/*
+// gr.SetSourceColor (Color.Black);
+// CairoHelpers.CairoRectangle (gr, r.Inflated (1), 2, 1.0);
+ gr.SetSourceColor (Color.White);
+ CairoHelpers.CairoRectangle (gr, r.Inflated (1), 2);
+ gr.Fill ();
+ gr.Operator = Operator.Clear;
+ pic.Paint (gr, r);
+ gr.Operator = Operator.Over;*/
+ }
+ void drawDesignOverlay (Context gr, Widget g, Rectangle cb, Rectangle hr, double coteStroke, double space = 6.5){
+ /*
+ double z = zoom / 100.0;
+ double coteW = 3, coteL = 5;
+ bool fill = true;
+ Crow.Cairo.PointD p1 = new Crow.Cairo.PointD (hr.X + 0.5, hr.Y - space);
+ Crow.Cairo.PointD p2 = new Crow.Cairo.PointD (hr.Right - 0.5, hr.Y - space);
+
+ if (p1.Y < cb.Top) {
+ if (hr.Bottom > cb.Bottom - space)
+ p1.Y = p2.Y = hr.Bottom - space;
+ else
+ p1.Y = p2.Y = hr.Bottom + space;
+ }
+
+ if (g.Width.IsFit)
+ gr.DrawCoteInverse (p1, p2, coteStroke, fill, coteW, coteL);
+ else if (g.Width.IsRelativeToParent) {
+ gr.DrawCote (p1, p2, coteStroke, fill, coteW, coteL);
+ if (g.Width.Value < 100)
+ drawCenteredTextLine (gr, p1.Add(p2.Substract(p1).Divide (2)), g.Width.ToString());
+ }else if (g.Width.IsFixed) {
+ gr.DrawCoteFixed (p1, p2, coteStroke * 2.0, coteW);
+ drawCenteredTextLine (gr, p1.Add(p2.Substract(p1).Divide (2)), g.Width.Value.ToString());
+ }
+
+ p1 = new Crow.Cairo.PointD (hr.X - space, hr.Top + 0.5);
+ p2 = new Crow.Cairo.PointD (hr.X - space, hr.Bottom - 0.5);
+
+ if (p1.X < cb.Left) {
+ if (hr.Right > cb.Right - space)
+ p1.X = p2.X = hr.Right - space;
+ else
+ p1.X = p2.X = hr.Right + space;
+ }
+ if (g.Height.IsFit)
+ gr.DrawCoteInverse (p1, p2, coteStroke, fill, coteW, coteL);
+ else if (g.Height.IsRelativeToParent){
+ gr.DrawCote (p1, p2, coteStroke, fill, coteW, coteL);
+ if (g.Height.Value < 100)
+ drawCenteredTextLine (gr, p1.Add(p2.Substract(p1).Divide (2)), g.Height.ToString());
+ }else if (g.Width.IsFixed) {
+ gr.DrawCoteFixed (p1, p2, coteStroke * 2.0, coteW);
+ drawCenteredTextLine (gr, p1.Add(p2.Substract(p1).Divide (2)), g.Height.Value.ToString());
+ }
+
+ // hr.Inflate (2);
+ //gr.SetDash (new double[]{ 1.0, 4.0 }, 0.0);
+ //gr.SetSourceColor (Color.Grey);
+// gr.Rectangle (hr,coteStroke);
+// gr.Stroke ();
+ gr.Operator = Operator.Over;
+ */
+ }
+
+ void drawCenteredTextLine (Context gr, Point center, string txt){
+ drawCenteredTextLine (gr, new PointD(center.X,center.Y), txt);
+ }
+ void drawCenteredTextLine (Context gr, PointD center, string txt){
+ if (string.IsNullOrEmpty(txt))
+ return;
+ FontExtents fe = gr.FontExtents;
+ TextExtents te = gr.TextExtents (txt);
+
+ Rectangle rText = new Rectangle(
+ (int)(center.X - te.Width / 2), (int)(center.Y - (fe.Ascent + fe.Descent) / 2),
+ (int)te.Width, (int)(fe.Ascent + fe.Descent));
+
+ gr.Operator = Operator.Clear;
+ Rectangle r = rText;
+ r.Inflate (2);
+ gr.Rectangle (r);
+ gr.Fill ();
+ gr.Operator = Operator.Over;
+
+ gr.MoveTo (rText.X, rText.Y + fe.Ascent);
+ gr.ShowText (txt);
+ gr.Fill ();
+
+ }
+ protected override void onDragEnter (object sender, DragDropEventArgs e)
+ {
+ base.onDragEnter (sender, e);
+ GraphicObjectDesignContainer godc = e.DragSource.DataSource as GraphicObjectDesignContainer;
+ if (godc == null)
+ return;
+ createDraggedObj (godc.CrowType);
+ }
+ protected override void onDragLeave (object sender, DragDropEventArgs e)
+ {
+ base.onDragLeave (sender, e);
+ GraphicObjectDesignContainer godc = e.DragSource.DataSource as GraphicObjectDesignContainer;
+ if (godc == null)
+ return;
+ ClearDraggedObj ();
+ }
+
+ protected override void onStartDrag (object sender, DragDropEventArgs e)
+ {
+ base.onStartDrag (sender, e);
+ if (SelectedItem == null)
+ return;
+
+ Widget dumy = new Widget (IFace);
+ dumy.EndDrag += dumyOnEndDrag;
+ dumy.Drop += dumyOnDrop;
+ dumy.IsDragged = true;
+ IFace.ActiveWidget = dumy;
+ e.DragSource.IsDragged = false;
+ IFace.DragAndDropOperation.DragSource = dumy;
+ draggedObj = SelectedItem;
+ int dragIconSize = 48;
+ lock (IFace.UpdateMutex) {
+ IFace.DragImageHeight = dragIconSize;
+ IFace.DragImageWidth = dragIconSize;
+ IFace.DragImage = draggedObj.CreateIcon(dragIconSize);
+ }
+ removeObject (draggedObj);
+ SelectedItem = null;
+ HoverWidget = null;
+ }
+ void dumyOnEndDrag (object sender, DragDropEventArgs e)
+ {
+ IFace.ClearDragImage ();
+ }
+ void dumyOnDrop (object sender, DragDropEventArgs e)
+ {
+ ClearDraggedObj (false);
+ IFace.ClearDragImage ();
+ }
+ #endregion
+
+
+ #region draggedObj handling
+
+ public Widget draggedObj = null;
+
+ void createDraggedObj (Type crowType) {
+ lock (imlVE.UpdateMutex) {
+ draggedObj = imlVE.CreateITorFromIMLFragment ("<" + crowType.Name + "/>").CreateInstance ();
+ }
+ }
+
+ public void ClearDraggedObj (bool removeFromTree = true) {
+ if (removeFromTree)
+ deleteObject (draggedObj);
+ draggedObj = null;
+ }
+ #endregion
+
+ void removeObject (Widget go) {
+ if (go == null)
+ return;
+ if (go.Parent == null)
+ return;
+// lock (imlVE.UpdateMutex) {
+ Interface i = go.Parent as Interface;
+ if (i != null) {
+ i.RemoveWidget (go);
+ imlProjFile.Instance = null;
+ } else {
+ Container c = go.Parent as Container;
+ if (c != null)
+ c.SetChild (null);
+ else {
+ TemplatedContainer tc = go.Parent as TemplatedContainer;
+ if (tc != null)
+ tc.Content = null;
+ else {
+ Group g = go.Parent as Group;
+ if (g != null)
+ g.RemoveChild (go);
+ }
+ }
+ }
+ EditorIsDirty = true;
+ //}
+ }
+ void deleteObject (Widget go) {
+ if (go == null)
+ return;
+ //lock (imlVE.UpdateMutex) {
+ removeObject (go);
+ go.Dispose ();
+ //}
+ }
+
+ ILayoutable getPossibleParent (ILayoutable parent, Widget go) {
+ if (go == null)
+ return null;
+// lock (imlVE.UpdateMutex) {
+
+ Interface i = null;
+ if (parent == null)
+ i = imlVE;
+ else
+ i = parent as Interface;
+ if (i != null)
+ return i.GraphicTree.Count > 0 ? null : i;
+
+ Container c = parent as Container;
+ if (c != null)
+ return c.Child == null || c.Child == go ? c : null;
+
+ TemplatedContainer tc = parent as TemplatedContainer;
+ if (tc != null)
+ return tc.Content == null || tc.Content == go? tc : null;
+
+ return parent as Group;
+// }
+ }
+ bool tryAddObjectTo (ILayoutable parent, Widget go) {
+ if (go == null)
+ return false;
+// lock (imlVE.UpdateMutex) {
+ Interface i = null;
+ if (parent == null)
+ i = imlVE;
+ else
+ i = parent as Interface;
+ if (i != null) {
+ if (i.GraphicTree.Count > 0)
+ return false;
+ i.AddWidget (go);
+ imlProjFile.Instance = go;
+ EditorIsDirty = true;
+ return true;
+ }
+ Container c = parent as Container;
+ if (c != null) {
+ if (c.Child != null)
+ return false;
+ //return tryAddObjectTo (c.Parent, go);
+ c.SetChild (go);
+ EditorIsDirty = true;
+ return true;
+ }
+ TemplatedContainer tc = parent as TemplatedContainer;
+ if (tc != null) {
+ if (tc.Content != null)
+ return false;
+ //return tryAddObjectTo (c.Parent, go);
+ tc.Content = (go);
+ EditorIsDirty = true;
+ return true;
+ }
+ Group g = parent as Group;
+ if (g != null) {
+ g.AddChild (go);
+ EditorIsDirty = true;
+ return true;
+ }
+ return false;//tryAddObjectTo (parent.Parent, go);
+// }
+ }
+
+
+
+ void WidgetCheckOver (Widget go, MouseMoveEventArgs e){
+ Type tGo = go.GetType();
+ if (typeof(TemplatedGroup).IsAssignableFrom (tGo)) {
+
+ } else if (typeof(TemplatedContainer).IsAssignableFrom (tGo)) {
+ TemplatedContainer c = go as TemplatedContainer;
+ if (c.Content?.MouseIsIn (e.Position) == true) {
+ WidgetCheckOver (c.Content, e);
+ return;
+ }
+ } else if (typeof(TemplatedControl).IsAssignableFrom (tGo)) {
+ } else if (typeof(Group).IsAssignableFrom (tGo)) {
+ Group c = go as Group;
+ for (int i = c.Children.Count -1; i >= 0; i--) {
+ if (c.Children[i].MouseIsIn (e.Position)) {
+ WidgetCheckOver (c.Children[i], e);
+ return;
+ }
+ }
+ } else if (typeof(Crow.Container).IsAssignableFrom (tGo)) {
+ Crow.Container c = go as Crow.Container;
+ if (c.Child?.MouseIsIn (e.Position)==true) {
+ WidgetCheckOver (c.Child, e);
+ return;
+ }
+ }
+ HoverWidget = go;
+ WidgetMouseEnter (go, e);
+ }
+ void WidgetMouseLeave (Widget go, MouseMoveEventArgs e){
+
+ }
+ void WidgetMouseEnter (Widget go, MouseMoveEventArgs e){
+
+ }
+ void WidgetMouseMove (Widget go, MouseMoveEventArgs e){}
+
+ public bool ProcessMouseMove(int x, int y)
+ {
+ int deltaX = x - imlVE.Mouse.X;
+ int deltaY = y - imlVE.Mouse.Y;
+ imlVE.Mouse.X = x;
+ imlVE.Mouse.Y = y;
+ MouseMoveEventArgs e = new MouseMoveEventArgs (x, y, deltaX, deltaY);
+ e.Mouse = imlVE.Mouse;
+
+ if (imlVE.ActiveWidget != null) {
+ //TODO, ensure object is still in the graphic tree
+ //send move evt even if mouse move outside bounds
+ WidgetMouseMove (imlVE.ActiveWidget, e);
+ return true;
+ }
+
+ if (HoverWidget != null) {
+ //TODO, ensure object is still in the graphic tree
+ //check topmost graphicobject first
+ Widget tmp = HoverWidget;
+ Widget topc = null;
+ while (tmp is Widget) {
+ topc = tmp;
+ tmp = tmp.LogicalParent as Widget;
+ }
+ int idxhw = imlVE.GraphicTree.IndexOf (topc);
+ if (idxhw != 0) {
+ int i = 0;
+ while (i < idxhw) {
+ if (imlVE.GraphicTree [i].LogicalParent == imlVE.GraphicTree [i].Parent) {
+ if (imlVE.GraphicTree [i].MouseIsIn (e.Position)) {
+ while (imlVE.HoverWidget != null) {
+ WidgetMouseLeave (imlVE.HoverWidget, e);
+ imlVE.HoverWidget = imlVE.HoverWidget.LogicalParent as Widget;
+ }
+
+ WidgetCheckOver (GraphicTree [i], e);
+ return true;
+ }
+ }
+ i++;
+ }
+ }
+
+
+ if (imlVE.HoverWidget.MouseIsIn (e.Position)) {
+ WidgetCheckOver (imlVE.HoverWidget, (e));
+ return true;
+ } else {
+ WidgetMouseLeave (imlVE.HoverWidget, e);
+ //seek upward from last focused graph obj's
+ while (imlVE.HoverWidget.LogicalParent as Widget != null) {
+ imlVE.HoverWidget = imlVE.HoverWidget.LogicalParent as Widget;
+ if (imlVE.HoverWidget.MouseIsIn (e.Position)) {
+ WidgetCheckOver (imlVE.HoverWidget, e);
+ return true;
+ } else
+ WidgetMouseLeave (imlVE.HoverWidget, e);
+ }
+ }
+ }
+
+ //top level graphic obj's parsing
+ lock (imlVE.GraphicTree) {
+ for (int i = 0; i < imlVE.GraphicTree.Count; i++) {
+ Widget g = imlVE.GraphicTree [i];
+ if (g.MouseIsIn (e.Position)) {
+ WidgetCheckOver (g, e);
+ return true;
+ }
+ }
+ }
+ imlVE.HoverWidget = null;
+ return false;
+
+ }
+
+ void GTView_SelectedItemChanged (object sender, SelectionChangeEventArgs e)
+ {
+ SelectedItem = e.NewValue as Widget;
+ }
+
+
+ public override void onKeyDown (object sender, KeyEventArgs e)
+ {
+
+ switch (e.Key) {
+ case Key.Delete:
+ if (selectedItem == null)
+ return;
+ deleteObject (selectedItem);
+ break;
+ case Key.Escape:
+ SelectedItem = null;
+ break;
+ }
+ }
+ }
+}
--- /dev/null
+using System;
+using System.IO;
+using Crow;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Text;
+
+namespace Crow.Coding
+{
+ /// <summary>
+ /// base class for tokenizing sources
+ /// </summary>
+ public abstract class BufferParser
+ {
+ /// <summary>
+ /// Default tokens, this enum may be overriden in derived parser with the new keyword,
+ /// see XMLParser for example.
+ /// </summary>
+ public enum TokenType {
+ Unknown = 0,
+ WhiteSpace = 1,
+ NewLine = 2,
+ LineComment = 3,
+ BlockCommentStart = 4,
+ BlockComment = 5,
+ BlockCommentEnd = 6,
+ Preprocessor = 7,
+ Identifier = 8,
+ Keyword = 9,
+ OpenBlock = 10,
+ CloseBlock = 11,
+ StatementEnding = 12,
+ OperatorOrPunctuation = 13,
+ IntegerLitteral = 14,
+ RealLitteral = 15,
+ StringLitteralOpening = 16,
+ StringLitteralClosing = 17,
+ StringLitteral = 18,
+ CharLitteralOpening = 19,
+ CharLitteralClosing = 20,
+ CharLitteral = 21,
+ BoolLitteral = 22,
+ NullLitteral = 23,
+ Type = 24,
+ }
+
+ #region CTOR
+ public BufferParser (CodeBuffer _buffer)
+ {
+ buffer = _buffer;
+
+ buffer.LineUpadateEvent += Buffer_LineUpadateEvent;
+ //buffer.LineAdditionEvent += Buffer_LineAdditionEvent;;
+ buffer.LineRemoveEvent += Buffer_LineRemoveEvent;
+ buffer.BufferCleared += Buffer_BufferCleared;
+ }
+
+ #endregion
+
+ #region Buffer events handlers
+ void Buffer_BufferCleared (object sender, EventArgs e)
+ {
+
+ }
+ void Buffer_LineAdditionEvent (object sender, CodeBufferEventArgs e)
+ {
+
+ }
+ void Buffer_LineRemoveEvent (object sender, CodeBufferEventArgs e)
+ {
+ reparseSource ();
+ }
+ void Buffer_LineUpadateEvent (object sender, CodeBufferEventArgs e)
+ {
+ for (int i = 0; i < e.LineCount; i++)
+ TryParseBufferLine (e.LineStart + i);
+ reparseSource ();
+ }
+ #endregion
+
+ internal int currentLine = 0;
+ internal int currentColumn = 0;
+
+ int syntTreeDepth = 0;
+ public int SyntacticTreeDepth {
+ get { return syntTreeDepth;}
+ set {
+ syntTreeDepth = value;
+ if (syntTreeDepth > SyntacticTreeMaxDepth)
+ SyntacticTreeMaxDepth = syntTreeDepth;
+ }
+ }
+ public int SyntacticTreeMaxDepth = 0;
+
+ protected CodeBuffer buffer;
+ protected Token currentTok;
+ protected bool eol = true;
+ protected Point CurrentPosition {
+ get { return new Point (currentLine, currentColumn); }
+ set {
+ currentLine = value.Y;
+ currentColumn = value.X;
+ }
+ }
+
+ public Node RootNode;
+
+ public abstract void ParseCurrentLine();
+ public abstract void SyntaxAnalysis ();
+ public void reparseSource () {
+ for (int i = 0; i < buffer.LineCount; i++) {
+ if (!buffer[i].IsParsed)
+ TryParseBufferLine (i);
+ }
+ try {
+ SyntaxAnalysis ();
+ } catch (Exception ex) {
+ Debug.WriteLine ("Syntax Error: " + ex.ToString ());
+ if (ex is ParserException)
+ SetLineInError (ex as ParserException);
+ }
+ }
+ public void TryParseBufferLine(int lPtr) {
+ buffer [lPtr].exception = null;
+ currentLine = lPtr;
+ currentColumn = 0;
+ eol = false;
+
+ try {
+ ParseCurrentLine ();
+ } catch (Exception ex) {
+ Debug.WriteLine (ex.ToString ());
+ if (ex is ParserException)
+ SetLineInError (ex as ParserException);
+ }
+
+ }
+
+ public virtual void SetLineInError(ParserException ex) {
+ currentTok = default(Token);
+ if (ex.Line >= buffer.LineCount)
+ ex.Line = buffer.LineCount - 1;
+ if (buffer [ex.Line].IsFolded)
+ buffer.ToogleFolding (ex.Line);
+ buffer [ex.Line].SetLineInError (ex);
+ }
+ public virtual string LineBrkRegex {
+ get { return @"\r\n|\r|\n|\\\\n"; }
+ }
+ void updateFolding () {
+ // Stack<TokenList> foldings = new Stack<TokenList>();
+ // bool inStartTag = false;
+ //
+ // for (int i = 0; i < parser.Tokens.Count; i++) {
+ // TokenList tl = parser.Tokens [i];
+ // tl.foldingTo = null;
+ // int fstTK = tl.FirstNonBlankTokenIndex;
+ // if (fstTK > 0 && fstTK < tl.Count - 1) {
+ // if (tl [fstTK + 1] != XMLParser.TokenType.ElementName)
+ // continue;
+ // if (tl [fstTK] == XMLParser.TokenType.ElementStart) {
+ // //search closing tag
+ // int tkPtr = fstTK+2;
+ // while (tkPtr < tl.Count) {
+ // if (tl [tkPtr] == XMLParser.TokenType.ElementClosing)
+ //
+ // tkPtr++;
+ // }
+ // if (tl.EndingState == (int)XMLParser.States.Content)
+ // foldings.Push (tl);
+ // else if (tl.EndingState == (int)XMLParser.States.StartTag)
+ // inStartTag = true;
+ // continue;
+ // }
+ // if (tl [fstTK] == XMLParser.TokenType.ElementEnd) {
+ // TokenList tls = foldings.Pop ();
+ // int fstTKs = tls.FirstNonBlankTokenIndex;
+ // if (tls [fstTK + 1].Content == tl [fstTK + 1].Content) {
+ // tl.foldingTo = tls;
+ // continue;
+ // }
+ // parser.CurrentPosition = tls [fstTK + 1].Start;
+ // parser.SetLineInError(new ParserException(parser, "closing tag not corresponding"));
+ // }
+ //
+ // }
+ // }
+ }
+
+ #region low level parsing
+ protected void addCharToCurTok(char c, Point position){
+ currentTok.Start = position;
+ currentTok += c;
+ }
+ /// <summary>
+ /// Read one char from current position in buffer and store it into the current token
+ /// </summary>
+ /// <param name="startOfTok">if true, set the Start position of the current token to the current position</param>
+ protected void readToCurrTok(bool startOfTok = false){
+ if (startOfTok)
+ currentTok.Start = CurrentPosition;
+ currentTok += Read();
+ }
+ /// <summary>
+ /// read n char from the buffer and store it into the current token
+ /// </summary>
+ protected void readToCurrTok(int length) {
+ for (int i = 0; i < length; i++)
+ currentTok += Read ();
+ }
+ /// <summary>
+ /// Save current token into current TokensLine and raz current token
+ /// </summary>
+ protected void saveAndResetCurrentTok() {
+ currentTok.End = CurrentPosition;
+ buffer[currentLine].Tokens.Add (currentTok);
+ currentTok = default(Token);
+ }
+ /// <summary>
+ /// read one char and add current token to current TokensLine, current token is reset
+ /// </summary>
+ /// <param name="type">Type of the token</param>
+ /// <param name="startToc">set start of token to current position</param>
+ protected void readAndResetCurrentTok(System.Enum type, bool startToc = false) {
+ readToCurrTok ();
+ saveAndResetCurrentTok (type);
+ }
+ /// <summary>
+ /// Save current tok
+ /// </summary>
+ /// <param name="type">set the type of the tok</param>
+ protected void saveAndResetCurrentTok(System.Enum type) {
+ currentTok.Type = (TokenType)type;
+ saveAndResetCurrentTok ();
+ }
+ protected void setPreviousTokOfTypeTo (TokenType inType, TokenType newType) {
+ for (int i = currentLine; i >= 0; i--) {
+ int j = buffer [i].Tokens.Count - 1;
+ while (j >= 0) {
+ if (buffer [i].Tokens [j].Type == inType) {
+ Token t = buffer [i].Tokens [j];
+ t.Type = newType;
+ buffer [i].Tokens [j] = t;
+ return;
+ }
+ j--;
+ }
+ }
+ }
+ /// <summary>
+ /// Peek next char, emit '\n' if current column > buffer's line length
+ /// Throw error if eof is true
+ /// </summary>
+ protected virtual char Peek() {
+ if (eol)
+ throw new ParserException (currentLine, currentColumn, "Unexpected End of line");
+ return currentColumn < buffer [currentLine].Length ?
+ buffer [currentLine] [currentColumn] : '\n';
+ }
+ /// <summary>
+ /// Peek n char from buffer or less if remaining char in buffer's line is less than requested
+ /// if end of line is reached, no '\n' will be emitted, instead, empty string is returned. '\n' should be checked only
+ /// with single char Peek().
+ /// Throw error is eof is true
+ /// </summary>
+ /// <param name="length">Length.</param>
+ protected virtual string Peek(int length) {
+ if (eol)
+ return "";//throw new ParserException (currentLine, currentColumn, "Unexpected End of Line");
+ int lg = Math.Min(length, Math.Max (buffer [currentLine].Length - currentColumn, buffer [currentLine].Length - currentColumn - length));
+ if (lg == 0)
+ return "";
+ return buffer [currentLine].Content.Substring (currentColumn, lg);
+ }
+ /// <summary>
+ /// read one char from buffer at current position, if '\n' is read, current line is incremented
+ /// and column is reset to 0
+ /// </summary>
+ protected virtual char Read() {
+ char c = Peek ();
+ if (c == '\n')
+ eol = true;
+ currentColumn++;
+ return c;
+ }
+ protected virtual string Read(int charCount){
+ string tmp = "";
+ for (int i = 0; i < charCount; i++) {
+ if (eol)
+ break;
+ tmp += Read ();
+ }
+ return tmp;
+ }
+ /// <summary>
+ /// read until end of line is reached
+ /// </summary>
+ /// <returns>string read</returns>
+ protected virtual string ReadLine () {
+ StringBuilder tmp = new StringBuilder();
+ char c = Read ();
+ while (!eol) {
+ tmp.Append (c);
+ c = Read ();
+ }
+ return tmp.ToString();
+ }
+ /// <summary>
+ /// read until end expression is reached or end of line.
+ /// </summary>
+ /// <returns>string read minus the ending expression that has to be read after</returns>
+ /// <param name="endExp">Expression to search for</param>
+ protected virtual string ReadLineUntil (string endExp){
+ string tmp = "";
+
+ while (!eol) {
+ if (buffer [currentLine].Length - currentColumn - endExp.Length < 0) {
+ tmp += ReadLine();
+ break;
+ }
+ if (string.Equals (Peek (endExp.Length), endExp))
+ return tmp;
+ tmp += Read();
+ }
+ return tmp;
+ }
+ /// <summary>
+ /// skip white spaces, but not line break. Save spaces in a WhiteSpace token.
+ /// </summary>
+ protected void SkipWhiteSpaces () {
+ if (currentTok.Type != TokenType.Unknown)
+ throw new ParserException (currentLine, currentColumn, "current token should be reset to unknown (0) before skiping white spaces");
+ while (!eol) {
+ if (!char.IsWhiteSpace (Peek ())||Peek()=='\n')
+ break;
+ readToCurrTok (currentTok.Type == TokenType.Unknown);
+ currentTok.Type = TokenType.WhiteSpace;
+ }
+ if (currentTok.Type != TokenType.Unknown)
+ saveAndResetCurrentTok ();
+ }
+ #endregion
+
+ protected Node addChildNode (Node curNode, CodeLine cl, int tokPtr, string type = "") {
+ Node n = new Node () { Name = cl.Tokens [tokPtr].Content, StartLine = cl, Type = type };
+ curNode.AddChild (n);
+ if (cl.SyntacticNode == null)
+ cl.SyntacticNode = n;
+ SyntacticTreeDepth++;
+ return n;
+ }
+ protected void closeNodeAndGoUp (ref Node n, CodeLine cl, string type = ""){
+ while (n != null) {
+ if (n.Type == type) {
+ n.EndLine = cl;
+ n = n.Parent;
+ SyntacticTreeDepth--;
+ break;
+ }
+ n = n.Parent;
+ SyntacticTreeDepth--;
+ }
+ }
+ protected void closeNodeAndGoUp (ref Node n, CodeLine cl){
+ SyntacticTreeDepth--;
+ n.EndLine = cl;
+ n = n.Parent;
+ }
+
+ protected void initSyntaxAnalysis () {
+ RootNode = new Node () { Name = "RootNode", Type="Root" };
+ SyntacticTreeDepth = SyntacticTreeMaxDepth = 0;
+ }
+
+
+ protected void throwParserException(string msg){
+ throw new ParserException (currentLine, currentColumn, msg);
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+using System;
+using Crow;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Text.RegularExpressions;
+using System.Linq;
+
+namespace Crow.Coding
+{
+ public class CSharpParser : BufferParser
+ {
+ #region keywords
+ string[] keywords = new string[] {
+ "abstract",
+ "as",
+ "ascending",
+ "async",
+ "await",
+ "base",
+ "bool",
+ "break",
+ "byte",
+ "case",
+ "catch",
+ "char",
+ "checked",
+ "class",
+ "const",
+ "continue",
+ "decimal",
+ "default",
+ "delegate",
+ "descending",
+ "do",
+ "double",
+ "dynamic",
+ "else",
+ "enum",
+ "equals",
+ "event",
+ "explicit",
+ "extern",
+ "false",
+ "finally",
+ "fixed",
+ "float",
+ "for",
+ "foreach",
+ "from",
+ "get",
+ "goto",
+ "group",
+ "if",
+ "implicit",
+ "in",
+ "int",
+ "interface",
+ "internal",
+ "is",
+ "join",
+ "let",
+ "lock",
+ "long",
+ "nameof",
+ "namespace",
+ "new",
+ "null",
+ "object",
+ "operator",
+ "orderby",
+ "out",
+ "override",
+ "params",
+ "partial",
+ "private",
+ "protected",
+ "public",
+ "readonly",
+ "ref",
+ "return",
+ "sbyte",
+ "sealed",
+ "select",
+ "set",
+ "short",
+ "sizeof",
+ "stackalloc",
+ "static",
+ "string",
+ "struct",
+ "switch",
+ "this",
+ "throw",
+ "true",
+ "try",
+ "typeof",
+ "uint",
+ "ulong",
+ "unchecked",
+ "unsafe",
+ "ushort",
+ "using",
+ "value",
+ "var",
+ "virtual",
+ "void",
+ "volatile",
+ "when",
+ "where",
+ "while",
+ "yield "
+ };
+ #endregion
+
+ public enum States
+ {
+ init,
+ BlockComment,
+ InNameSpace,
+ InClass,
+ InMember,
+ Unknown,
+ }
+
+ public CSharpParser (CodeBuffer _buffer) : base(_buffer)
+ {
+ }
+
+ #region Regular Expression for validity checks
+ static Regex rxValidChar = new Regex(@"\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\p{Cf}");
+ static Regex rxNameStartChar = new Regex(@"_|\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}");
+ static Regex rxNameChar = new Regex(@"\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\p{Cf}");
+ static Regex rxNewLineChar = new Regex(@"\u000D|\u000A|\u0085|\u2028|\u2029");
+ static Regex rxWhiteSpaceChar = new Regex(@"\p{Zs}|\u0009|\u000B|\u000C");
+ static Regex rxDecimal = new Regex(@"[0-9]+");
+ static Regex rxHexadecimal = new Regex(@"[0-9a-fA-F]+");
+
+ public static bool CharIsValidCharStartName (char c) {
+ return rxNameStartChar.IsMatch(new string(new char[]{c}));
+ }
+ public static bool CharIsValidCharName (char c) {
+ return rxNameChar.IsMatch(new string(new char[]{c}));
+ }
+
+ public bool nextCharIsValidCharStartName
+ {
+ get { return CharIsValidCharStartName(Peek()); }
+ }
+ public bool nextCharIsValidCharName
+ {
+ get { return CharIsValidCharName(Peek()); }
+ }
+ #endregion
+
+ States curState = States.init;
+ States savedState = States.init;
+
+ public override void ParseCurrentLine ()
+ {
+ //Debug.WriteLine (string.Format("parsing line:{0}", currentLine));
+ CodeLine cl = buffer [currentLine];
+ cl.Tokens = new List<Token> ();
+
+
+ //retrieve current parser state from previous line
+ if (currentLine > 0)
+ curState = (States)buffer[currentLine - 1].EndingState;
+ else
+ curState = States.init;
+
+ States previousEndingState = (States)cl.EndingState;
+
+ while (! eol) {
+ if (currentTok.IsNull)
+ SkipWhiteSpaces ();
+
+ if (curState == States.BlockComment) {
+ currentTok.Start = CurrentPosition;
+ currentTok.Type = (BufferParser.TokenType)TokenType.BlockComment;
+ currentTok += ReadLineUntil ("*/");
+ if (Peek (2) == "*/") {
+ readToCurrTok (2);
+ curState = savedState;
+ }
+ saveAndResetCurrentTok ();
+ continue;
+ }
+
+ switch (Peek()) {
+ case '\n':
+ eol = true;
+ if (!currentTok.IsNull)
+ saveAndResetCurrentTok ();
+ break;
+ case '#':
+ readToCurrTok (true);
+ currentTok += ReadLine ();
+ saveAndResetCurrentTok (TokenType.Preprocessor);
+ break;
+ case '/':
+ readToCurrTok (true);
+ switch (Peek ()) {
+ case '*':
+ readToCurrTok ();
+ currentTok += ReadLine ();
+ //currentTok.Type = (Parser.TokenType)TokenType.BlockComment;
+ savedState = curState;
+ curState = States.BlockComment;
+ saveAndResetCurrentTok (TokenType.BlockComment);
+ break;
+ case '/':
+ //readToCurrTok ();
+ currentTok += ReadLine ();
+ saveAndResetCurrentTok (TokenType.LineComment);
+ //currentTok.Type = (Parser.TokenType)TokenType.LineComment;
+ break;
+ default:
+ currentTok += ReadLine ();
+ saveAndResetCurrentTok (TokenType.Unknown);
+ break;
+ }
+ break;
+ case '{':
+ if (currentTok.IsNull)
+ readAndResetCurrentTok (TokenType.OpenBlock, true);
+ else
+ readToCurrTok ();
+ break;
+ case '}':
+ if (currentTok.IsNull)
+ readAndResetCurrentTok (TokenType.CloseBlock, true);
+ else
+ readToCurrTok ();
+ break;
+ case '\\'://unicode escape sequence
+ if (!(currentTok.Type == TokenType.Identifier ||
+ currentTok.IsEmpty || currentTok.Type == TokenType.StringLitteral || currentTok.Type == TokenType.CharLitteral)) {
+ saveAndResetCurrentTok ();
+ }
+ Point pos = CurrentPosition;
+ Read ();
+ char escChar = Read ();
+
+ if (escChar == 'u') {
+ char c = char.ConvertFromUtf32 (int.Parse (Read (4), System.Globalization.NumberStyles.HexNumber))[0];
+ if (currentTok.IsEmpty) {
+ if (!CharIsValidCharStartName (c))
+ throwParserException ("expecting identifier start");
+ currentTok.Start = pos;
+ currentTok.Type = TokenType.Identifier;
+ } else if (currentTok.Type == TokenType.Identifier) {
+ if (!CharIsValidCharName (c))
+ throwParserException ("expecting identifier valid char");
+ }
+ currentTok += c;
+ break;
+ }
+ currentTok += new String (new char[] { '\\', escChar });
+ break;
+ case '\'':
+ if (currentTok.IsNull) {
+ readAndResetCurrentTok (TokenType.CharLitteralOpening, true);
+ currentTok.Type = TokenType.CharLitteral;
+ } else if (currentTok.Type == TokenType.CharLitteral) {
+ saveAndResetCurrentTok ();
+ readAndResetCurrentTok (TokenType.CharLitteralClosing, true);
+ } else if (currentTok.Type == TokenType.StringLitteral){
+ readToCurrTok ();
+ } else
+ throwParserException ("unexpected character: (\')");
+ break;
+ case '"':
+ if (currentTok.IsNull) {
+ readAndResetCurrentTok (TokenType.StringLitteralOpening, true);
+ currentTok.Type = TokenType.StringLitteral;
+ } else if (currentTok.Type == TokenType.StringLitteral) {
+ saveAndResetCurrentTok ();
+ readAndResetCurrentTok (TokenType.StringLitteralClosing, true);
+ } else
+ throwParserException ("unexpected character: (\")");
+ break;
+ default:
+ if (currentTok.Type == TokenType.StringLitteral || currentTok.Type == TokenType.CharLitteral) {
+ readToCurrTok (currentTok.IsEmpty);
+ } else if (currentTok.IsNull) {
+ if (nextCharIsValidCharStartName) {
+ readToCurrTok (true);
+ while (nextCharIsValidCharName)
+ readToCurrTok ();
+
+ if (keywords.Contains (currentTok.Content))
+ saveAndResetCurrentTok (TokenType.Keyword);
+ else
+ saveAndResetCurrentTok (TokenType.Identifier);
+ continue;
+ } else
+ readAndResetCurrentTok(TokenType.Unknown, true);
+ } else
+ readAndResetCurrentTok(TokenType.Unknown, true);
+ break;
+ }
+ }
+
+ if (cl.EndingState != (int)curState && currentLine < buffer.LineCount - 1)
+ buffer [currentLine + 1].Tokens = null;
+
+ cl.EndingState = (int)curState;
+ }
+
+ public override void SyntaxAnalysis ()
+ {
+ initSyntaxAnalysis ();
+ Node currentNode = RootNode;
+
+ int ptrLine = 0;
+ while (ptrLine < buffer.LineCount) {
+ CodeLine cl = buffer [ptrLine];
+ if (cl.Tokens == null){
+ ptrLine++;
+ continue;
+ }
+ cl.SyntacticNode = null;
+
+ int tokPtr = 0;
+ bool onlyWhiteSpace = true;
+ while (tokPtr < cl.Tokens.Count) {
+ if (cl.Tokens [tokPtr].Type == TokenType.WhiteSpace) {
+ tokPtr++;
+ continue;
+ }
+
+ if (cl.Tokens [tokPtr].Type == TokenType.LineComment && onlyWhiteSpace) {
+ int startLine = ptrLine;
+ ptrLine++;
+ while (ptrLine < buffer.LineCount) {
+ int idx = buffer [ptrLine].FirstNonBlankTokIndex;
+ if (idx < 0)
+ break;
+ if (buffer [ptrLine].Tokens [idx].Type != TokenType.LineComment)
+ break;
+ ptrLine++;
+ }
+ ptrLine--;
+ if (ptrLine - startLine > 0) {
+ currentNode = addChildNode (currentNode, cl, tokPtr, "comment");
+ closeNodeAndGoUp (ref currentNode, buffer [ptrLine], "comment");
+ }
+ break;
+ }
+
+ switch (cl.Tokens [tokPtr].Type) {
+ case TokenType.BlockCommentStart:
+ case TokenType.OpenBlock:
+ currentNode = addChildNode (currentNode, cl, tokPtr);
+ break;
+ case TokenType.CloseBlock:
+ case TokenType.BlockCommentEnd:
+ closeNodeAndGoUp (ref currentNode, cl);
+ break;
+ case TokenType.Preprocessor:
+ if (cl.Tokens [tokPtr].Content.StartsWith ("#region", StringComparison.Ordinal)) {
+ currentNode = addChildNode (currentNode, cl, tokPtr, "region");
+ } else if (cl.Tokens [tokPtr].Content.StartsWith ("#endregion", StringComparison.Ordinal)) {
+
+ closeNodeAndGoUp (ref currentNode, cl,"region");
+ }
+ break;
+ }
+ onlyWhiteSpace = false;
+ tokPtr++;
+ }
+ ptrLine++;
+ }
+ /*ptrLine = 0;
+ while (ptrLine < buffer.LineCount) {
+ CodeLine cl = buffer [ptrLine];
+ if (cl.IsFoldable) {
+ if (cl.SyntacticNode.Type == "comment" || cl.SyntacticNode.Type == "region")
+ cl.IsFolded = true;
+ }
+ ptrLine++;
+ }*/
+ }
+ }
+}
+
--- /dev/null
+using System;
+using Crow;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Text.RegularExpressions;
+using System.Linq;
+
+namespace Crow.Coding
+{
+ public class StyleParser : BufferParser
+ {
+ enum States { init, classNames, members, value, endOfStatement }
+
+ public StyleParser (CodeBuffer _buffer) : base(_buffer)
+ {
+ }
+
+ #region Character ValidityCheck
+ static Regex rxValidChar = new Regex(@"\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\p{Cf}");
+ static Regex rxNameStartChar = new Regex(@"_|\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}");
+ static Regex rxNameChar = new Regex(@"\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\p{Cf}");
+ static Regex rxDecimal = new Regex(@"[0-9]+");
+ static Regex rxHexadecimal = new Regex(@"[0-9a-fA-F]+");
+
+ public bool nextCharIsValidCharStartName
+ {
+ get { return rxNameStartChar.IsMatch(new string(new char[]{Peek()})); }
+ }
+ public bool nextCharIsValidCharName
+ {
+ get { return rxNameChar.IsMatch(new string(new char[]{Peek()})); }
+ }
+ #endregion
+
+ States curState = States.classNames;
+
+ public override void ParseCurrentLine ()
+ {
+ //Debug.WriteLine (string.Format("parsing line:{0}", currentLine));
+ CodeLine cl = buffer [currentLine];
+ cl.Tokens = new List<Token> ();
+
+ //retrieve current parser state from previous line
+ if (currentLine > 0)
+ curState = (States)buffer[currentLine - 1].EndingState;
+ else
+ curState = States.init;
+
+ States previousEndingState = (States)cl.EndingState;
+
+ while (! eol) {
+ SkipWhiteSpaces ();
+
+ if (eol)
+ break;
+
+ if (Peek () == '\n') {
+ if (currentTok != TokenType.Unknown)
+ throw new ParserException (currentLine, currentColumn, "Unexpected end of line");
+ Read ();
+ eol = true;
+ continue;
+ }
+
+ switch (Peek()) {
+ case '/':
+ readToCurrTok (true);
+ switch (Peek ()) {
+ case '/':
+ currentTok += ReadLine ();
+ saveAndResetCurrentTok (TokenType.LineComment);
+ break;
+ default:
+ currentTok += ReadLine ();
+ saveAndResetCurrentTok (TokenType.Unknown);
+ break;
+ }
+ break;
+ case ',':
+ if (curState != States.init && curState != States.classNames )
+ throw new ParserException (currentLine, currentColumn, "Unexpected char ','");
+ readAndResetCurrentTok (TokenType.OperatorOrPunctuation, true);
+ curState = States.classNames;
+ break;
+ case '{':
+ if (!(curState == States.init || curState == States.classNames))
+ throw new ParserException (currentLine, currentColumn, "Unexpected char '{'");
+ readAndResetCurrentTok (TokenType.OpenBlock, true);
+ curState = States.members;
+ break;
+ case '}':
+ if (curState != States.members)
+ throw new ParserException (currentLine, currentColumn, "Unexpected char '}'");
+ readAndResetCurrentTok (TokenType.CloseBlock, true);
+ curState = States.classNames;
+ break;
+ case '=':
+ if (curState == States.classNames)
+ throw new ParserException (currentLine, currentColumn, "Unexpected char '='");
+ setPreviousTokOfTypeTo (TokenType.Type, TokenType.Identifier);
+ readAndResetCurrentTok (TokenType.OperatorOrPunctuation, true);
+ curState = States.value;
+ break;
+ case '"':
+ if (curState != States.value)
+ throw new ParserException (currentLine, currentColumn, "Unexpected char '\"'");
+ readAndResetCurrentTok (TokenType.StringLitteralOpening, true);
+
+ while (!eol) {
+ currentTok += ReadLineUntil ("\"");
+ if (currentTok.Content [currentTok.Content.Length - 1] == '\\')
+ readToCurrTok ();
+ else
+ break;
+ }
+ if (eol)
+ throw new ParserException (currentLine, currentColumn, "Unexpected end of line");
+ saveAndResetCurrentTok (TokenType.StringLitteral);
+
+ readAndResetCurrentTok (TokenType.StringLitteralClosing, true);
+ curState = States.endOfStatement;
+ break;
+ case ';':
+ if (curState != States.endOfStatement)
+ throw new ParserException (currentLine, currentColumn, "Unexpected end of statement");
+ readAndResetCurrentTok (TokenType.StatementEnding, true);
+ curState = States.members;
+ break;
+ default:
+ if (currentTok.Type != TokenType.Unknown)
+ throw new ParserException (currentLine, currentColumn, "error curtok not null");
+ if (curState == States.value)
+ throw new ParserException (currentLine, currentColumn, "expecting value enclosed in '\"'");
+ if (curState == States.endOfStatement)
+ throw new ParserException (currentLine, currentColumn, "expecting end of statement");
+
+ if (nextCharIsValidCharStartName) {
+ readToCurrTok (true);
+ while (nextCharIsValidCharName)
+ readToCurrTok ();
+ }
+ saveAndResetCurrentTok (TokenType.Type);
+ break;
+ }
+ }
+
+ if (cl.EndingState != (int)curState && currentLine < buffer.LineCount - 1)
+ buffer [currentLine + 1].Tokens = null;
+
+ cl.EndingState = (int)curState;
+ }
+ public override void SyntaxAnalysis ()
+ {
+ initSyntaxAnalysis ();
+ Node currentNode = RootNode;
+
+ for (int i = 0; i < buffer.LineCount; i++) {
+ CodeLine cl = buffer[i];
+ if (cl.Tokens == null)
+ continue;
+ cl.SyntacticNode = null;
+
+ int tokPtr = 0;
+ while (tokPtr < cl.Tokens.Count) {
+ switch (cl.Tokens [tokPtr].Type) {
+ case TokenType.OpenBlock:
+ currentNode = addChildNode (currentNode, cl, tokPtr, "style");
+ break;
+ case TokenType.CloseBlock:
+ closeNodeAndGoUp (ref currentNode, cl, "style");
+ break;
+ }
+ tokPtr++;
+ }
+ }
+ }
+ }
+}
+
--- /dev/null
+using System;
+using Crow;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+using System.Diagnostics;
+using System.Linq;
+
+namespace Crow.Coding
+{
+ public class XMLParser : BufferParser
+ {
+ public new enum TokenType {
+ Unknown = BufferParser.TokenType.Unknown,
+ WhiteSpace = BufferParser.TokenType.WhiteSpace,
+ NewLine = BufferParser.TokenType.NewLine,
+ LineComment = BufferParser.TokenType.LineComment,
+ BlockCommentStart = BufferParser.TokenType.BlockCommentStart,
+ BlockComment = BufferParser.TokenType.BlockComment,
+ BlockCommentEnd = BufferParser.TokenType.BlockCommentEnd,
+ ElementName = BufferParser.TokenType.Type,
+ AttributeName = BufferParser.TokenType.Identifier,
+ ElementClosing = BufferParser.TokenType.StatementEnding,
+ Affectation = BufferParser.TokenType.OperatorOrPunctuation,
+ AttributeValueOpening = BufferParser.TokenType.StringLitteralOpening,
+ AttributeValueClosing = BufferParser.TokenType.StringLitteralClosing,
+ AttributeValue = BufferParser.TokenType.StringLitteral,
+ XMLDecl = BufferParser.TokenType.Preprocessor,
+ Doctype = BufferParser.TokenType.Keyword,
+ ElementStart = 50,
+ ElementEnd = 51,
+ }
+
+ public enum States
+ {
+ init, //first statement of prolog, xmldecl should only apear in this state
+ prolog, //misc before doctypedecl
+ InternalSubset, //doctype declaration subset
+ ExternalSubsetInit,
+ ExternalSubset,
+ BlockComment,
+ DTDEnd,//doctype finished
+ XML,//normal xml
+ StartTag,//inside start tag
+ Content,//after start tag with no closing slash
+ EndTag
+ }
+
+ #region CTOR
+ public XMLParser (CodeBuffer _buffer) : base(_buffer) {}
+ #endregion
+
+ enum Keywords
+ {
+ DOCTYPE,
+ ELEMENT,
+ ATTLIST,
+ ENTITY,
+ NOTATION
+ }
+
+ States curState = States.init;
+
+ #region Regular Expression for validity checks
+ //private static Regex rxValidChar = new Regex("[\u0020-\uD7FF]");
+ private static Regex rxValidChar = new Regex(@"\u0009|\u000A|\u000D|[\u0020-\uD7FF]|[\uE000-\uFFFD]"); //| [\u10000-\u10FFFF] unable to set those plans
+ private static Regex rxNameStartChar = new Regex(@":|[A-Z]|_|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]"); // | [\u10000-\uEFFFF]
+ private static Regex rxNameChar = new Regex(@":|[A-Z]|_|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]|-|\.|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040]");//[\u10000-\uEFFFF]|
+ private static Regex rxDecimal = new Regex(@"[0-9]+");
+ private static Regex rxHexadecimal = new Regex(@"[0-9a-fA-F]+");
+ private static Regex rxAttributeValue = new Regex(@"[^<]");
+ private static Regex rxEntityValue = new Regex(@"[^<]");
+ private static Regex rxPubidChar = new Regex(@"\u0020|\u000D|\u000A|[a-zA-Z0-9]|[-\(\)\+\,\./:=\?;!\*#@\$_%]");
+ #endregion
+
+ #region Character ValidityCheck
+ public bool nextCharIsValidCharStartName
+ {
+ get { return rxNameStartChar.IsMatch(new string(new char[]{Peek()})); }
+ }
+ public bool nextCharIsValidCharName
+ {
+ get { return rxNameChar.IsMatch(new string(new char[]{Peek()})); }
+ }
+ #endregion
+
+ public override void SetLineInError (ParserException ex)
+ {
+ base.SetLineInError (ex);
+ //buffer[ex.Line].Tokens.EndingState = (int)States.init;
+ }
+
+ public override void ParseCurrentLine ()
+ {
+ //Debug.WriteLine (string.Format("parsing line:{0}", currentLine));
+ CodeLine cl = buffer [currentLine];
+ cl.Tokens = new List<Token> ();
+
+ //retrieve current parser state from previous line
+ if (currentLine > 0)
+ curState = (States)buffer[currentLine - 1].EndingState;
+ else
+ curState = States.init;
+
+ States previousEndingState = (States)cl.EndingState;
+
+
+ while (! eol) {
+ SkipWhiteSpaces ();
+
+ if (eol)
+ break;
+
+ if (Peek () == '\n') {
+ if (currentTok != TokenType.Unknown)
+ throw new ParserException (currentLine, currentColumn, "Unexpected end of line");
+ Read ();
+ eol = true;
+ continue;
+ }
+
+ if (curState == States.BlockComment) {
+ if (currentTok != TokenType.Unknown)
+ Debugger.Break ();
+
+ currentTok.Start = CurrentPosition;
+ currentTok.Type = (BufferParser.TokenType)TokenType.BlockComment;
+ currentTok += ReadLineUntil ("-->");
+ if (Peek (3) == "-->") {
+ readToCurrTok (3);
+ curState = States.XML;
+ }
+ saveAndResetCurrentTok ();
+ continue;
+ }
+
+ switch (Peek()) {
+ case '<':
+ readToCurrTok (true);
+ switch (Peek()) {
+ case '?':
+ if (curState != States.init)
+ throw new ParserException (currentLine, currentColumn, "xml decl may appear only on first line");
+ readToCurrTok ();
+ currentTok += ReadLineUntil ("?>");
+ if (Peek (2) != "?>")
+ throw new ParserException (currentLine, currentColumn, "expecting '?>'");
+ readToCurrTok (2);
+ saveAndResetCurrentTok (TokenType.XMLDecl);
+ curState = States.prolog;
+ break;
+ case '!':
+ readToCurrTok ();
+ switch (Peek()) {
+ case '-':
+ readToCurrTok ();
+ if (Peek () != '-')
+ throw new ParserException (currentLine, currentColumn, "Expecting comment start tag");
+ readToCurrTok ();
+ currentTok += ReadLineUntil ("--");
+ if (Peek (3) == "-->") {
+ readToCurrTok (3);
+ }else
+ curState = States.BlockComment;
+ saveAndResetCurrentTok (TokenType.BlockComment);
+ break;
+ case 'D':
+ case 'd':
+ string tmp = Read (7);
+ currentTok += tmp;
+ if (!string.Equals (tmp, "DOCTYPE", StringComparison.OrdinalIgnoreCase))
+ throw new ParserException (currentLine, currentColumn, "Expecting 'doctype'");
+ saveAndResetCurrentTok (TokenType.Doctype);
+ break;
+ default:
+ throw new ParserException (currentLine, currentColumn, "error");
+ }
+ break;
+ default:
+ if (!(curState == States.Content || curState == States.XML || curState == States.init || curState == States.prolog))
+ throw new ParserException (currentLine, currentColumn, "Unexpected char: '<'");
+ if (Peek () == '/') {
+ curState = States.EndTag;
+ readToCurrTok ();
+ saveAndResetCurrentTok (TokenType.ElementEnd);
+ } else {
+ curState = States.StartTag;
+ saveAndResetCurrentTok (TokenType.ElementStart);
+ }
+
+ if (!nextCharIsValidCharStartName)
+ throw new ParserException (currentLine, currentColumn, "Expected element name");
+
+ readToCurrTok (true);
+ while (nextCharIsValidCharName)
+ readToCurrTok ();
+
+ saveAndResetCurrentTok (TokenType.ElementName);
+ break;
+ }
+ break;
+ case '/':
+ if (curState != States.StartTag)
+ throw new ParserException (currentLine, currentColumn, "Unexpected char: '/'");
+ readToCurrTok (true);
+ if (Peek () != '>')
+ throw new ParserException (currentLine, currentColumn, "Expecting '>'");
+ readAndResetCurrentTok (TokenType.ElementEnd);
+
+ curState = States.XML;
+ break;
+ case '>':
+ readAndResetCurrentTok (TokenType.ElementClosing, true);
+ switch (curState) {
+ case States.EndTag:
+ curState = States.XML;
+ break;
+ case States.StartTag:
+ curState = States.Content;
+ break;
+ default:
+ throw new ParserException (currentLine, currentColumn, "Unexpected char: '>'");
+ }
+ break;
+ default:
+ switch (curState) {
+ case States.StartTag:
+ if (!nextCharIsValidCharStartName)
+ throw new ParserException (currentLine, currentColumn, "Expected attribute name");
+ readToCurrTok (true);
+ while (nextCharIsValidCharName)
+ readToCurrTok ();
+ saveAndResetCurrentTok (TokenType.AttributeName);
+
+ SkipWhiteSpaces ();
+
+ if (Peek () != '=')
+ throw new ParserException (currentLine, currentColumn, "Expecting: '='");
+ readAndResetCurrentTok (TokenType.Affectation, true);
+
+ SkipWhiteSpaces ();
+
+ char openAttVal = Peek ();
+ if (openAttVal != '"' && openAttVal != '\'')
+ throw new ParserException (currentLine, currentColumn, "Expecting attribute value enclosed either in '\"' or in \"'\"");
+ readAndResetCurrentTok (TokenType.AttributeValueOpening, true);
+
+ currentTok.Start = CurrentPosition;
+ currentTok.Content = ReadLineUntil (new string (new char[]{ openAttVal }));
+ saveAndResetCurrentTok (TokenType.AttributeValue);
+
+ if (Peek () != openAttVal)
+ throw new ParserException (currentLine, currentColumn, string.Format ("Expecting {0}", openAttVal));
+ readAndResetCurrentTok (TokenType.AttributeValueClosing, true);
+ break;
+ default:
+ throw new ParserException (currentLine, currentColumn, "unexpected char: " + Peek ());
+ }
+ break;
+ }
+ }
+
+ if (cl.EndingState != (int)curState && currentLine < buffer.LineCount - 1)
+ buffer [currentLine + 1].Tokens = null;
+
+ cl.EndingState = (int)curState;
+ }
+
+ public override void SyntaxAnalysis ()
+ {
+ initSyntaxAnalysis ();
+ Node currentNode = RootNode;
+
+ for (int i = 0; i < buffer.LineCount; i++) {
+ CodeLine cl = buffer[i];
+ if (cl.Tokens == null)
+ continue;
+ cl.SyntacticNode = null;
+
+ int tokPtr = 0;
+ while (tokPtr < cl.Tokens.Count) {
+ switch ((XMLParser.TokenType)cl.Tokens [tokPtr].Type) {
+ case TokenType.ElementStart:
+ tokPtr++;
+ currentNode = addChildNode (currentNode, cl, tokPtr, "Element");
+ break;
+ case TokenType.ElementEnd:
+ tokPtr++;
+ if (tokPtr < cl.Tokens.Count) {
+ if ((XMLParser.TokenType)cl.Tokens [tokPtr].Type == TokenType.ElementName &&
+ cl.Tokens [tokPtr].Content != currentNode.Name)
+ throw new ParserException (currentLine, currentColumn, "Closing tag mismatch");
+ }
+ closeNodeAndGoUp (ref currentNode, cl, "Element");
+ break;
+ case TokenType.ElementClosing:
+ //currentNode = currentNode.Parent;
+ break;
+ default:
+ break;
+ }
+ tokPtr++;
+ }
+ }
+ }
+ }
+}
+
--- /dev/null
+//
+// Tokenizer.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using Crow.Text;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+
+namespace Crow.Coding2
+{
+ public static class TokenType {
+ public const int Undefine = 0;
+ public const int WhiteSpace = 0;
+ }
+ public class Token {
+ public int ptr;
+ public int length;
+ }
+
+ public class Tokenizer
+ {
+ #region Regular Expression for validity checks
+ public Regex rxValidChar = new Regex(@"\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\p{Cf}");
+ public Regex rxNameStartChar = new Regex(@"_|\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}");
+ public Regex rxNameChar = new Regex(@"\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\p{Cf}");
+ public Regex rxNewLineChar = new Regex(@"\u000D|\u000A|\u0085|\u2028|\u2029");
+ public Regex rxWhiteSpaceChar = new Regex(@"\p{Zs}|\u0009|\u000B|\u000C");
+ public Regex rxDecimal = new Regex(@"[0-9]+");
+ public Regex rxHexadecimal = new Regex(@"[0-9a-fA-F]+");
+ #endregion
+
+ public List<Token> Tokens;
+
+ public Tokenizer (TextBuffer buffer)
+ {
+ }
+
+
+ public void Tokenize () {
+
+ }
+
+ }
+}
+
--- /dev/null
+//
+// ScrollingTextBox.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.ComponentModel;
+using System.Collections.Generic;
+using System.Diagnostics;
+using vkvg;
+
+namespace Crow.Coding
+{
+ /// <summary>
+ /// Scrolling text box optimized for monospace fonts, for coding
+ /// </summary>
+ public class SourceEditor : Editor
+ {
+ #region CTOR
+ public SourceEditor (): base()
+ {
+ formatting.Add ((int)XMLParser.TokenType.AttributeName, new TextFormatting (Color.DarkSlateGrey, Color.Transparent));
+ formatting.Add ((int)XMLParser.TokenType.ElementName, new TextFormatting (Color.DarkBlue, Color.Transparent));
+ formatting.Add ((int)XMLParser.TokenType.ElementStart, new TextFormatting (Color.Black, Color.Transparent));
+ formatting.Add ((int)XMLParser.TokenType.ElementEnd, new TextFormatting (Color.Black, Color.Transparent));
+ formatting.Add ((int)XMLParser.TokenType.ElementClosing, new TextFormatting (Color.Black, Color.Transparent));
+
+ formatting.Add ((int)XMLParser.TokenType.AttributeValueOpening, new TextFormatting (Color.Crimson, Color.Transparent));
+ formatting.Add ((int)XMLParser.TokenType.AttributeValueClosing, new TextFormatting (Color.Crimson, Color.Transparent));
+ formatting.Add ((int)XMLParser.TokenType.AttributeValue, new TextFormatting (Color.FireBrick, Color.Transparent, false, true));
+ formatting.Add ((int)XMLParser.TokenType.XMLDecl, new TextFormatting (Color.ForestGreen, Color.Transparent));
+
+ formatting.Add ((int)BufferParser.TokenType.BlockComment, new TextFormatting (Color.Grey, Color.Transparent, false, true));
+ formatting.Add ((int)BufferParser.TokenType.LineComment, new TextFormatting (Color.Grey, Color.Transparent, false, true));
+ formatting.Add ((int)BufferParser.TokenType.OperatorOrPunctuation, new TextFormatting (Color.Black, Color.Transparent));
+ formatting.Add ((int)BufferParser.TokenType.Keyword, new TextFormatting (Color.Teal, Color.Transparent));
+ //formatting.Add ((int)BufferParser.TokenType.Keyword, new TextFormatting (Color.DarkCyan, Color.Transparent));
+
+ parsing.Add (".crow", "Crow.Coding.XMLParser");
+ parsing.Add (".svg", "Crow.Coding.XMLParser");
+ parsing.Add (".template", "Crow.Coding.XMLParser");
+ parsing.Add (".cs", "Crow.Coding.CSharpParser");
+ parsing.Add (".style", "Crow.Coding.StyleParser");
+
+ buffer = new CodeBuffer ();
+ buffer.LineUpadateEvent += Buffer_LineUpadateEvent;
+ buffer.LineAdditionEvent += Buffer_LineAdditionEvent;;
+ buffer.LineRemoveEvent += Buffer_LineRemoveEvent;
+ buffer.BufferCleared += Buffer_BufferCleared;
+ buffer.SelectionChanged += Buffer_SelectionChanged;
+ buffer.PositionChanged += Buffer_PositionChanged;
+ buffer.FoldingEvent += Buffer_FoldingEvent;
+ buffer.Add (new CodeLine(""));
+ }
+ #endregion
+
+ string oldSource = "";
+ //save requested position on error, and try it on next move
+ int requestedLine = 0, requestedCol = 0;
+ volatile bool isDirty = false;
+
+ const int leftMarginGap = 10;//gap between items in margin and text
+ const int foldSize = 9;//folding rectangles size
+ const int foldHSpace = 4;//folding level tabulation x
+ int foldMargin { get { return parser == null ? 0 : parser.SyntacticTreeMaxDepth * foldHSpace; }}//folding margin size
+
+ #region private and protected fields
+ bool foldingEnabled = true;
+ int leftMargin = 0; //margin used to display line numbers, folding errors,etc...
+ int visibleLines = 1;
+ int visibleColumns = 1;
+ int firstPrintedLine = -1;
+ int printedCurrentLine = 0;//Index of the currentline in the PrintedLines array
+
+ CodeBuffer buffer;
+ BufferParser parser;
+ List<CodeLine> PrintedLines;//list of lines visible in the Editor depending on scrolling and folding
+
+ Dictionary<int, TextFormatting> formatting = new Dictionary<int, TextFormatting>();
+ Dictionary<string, string> parsing = new Dictionary<string, string>();
+
+ Color selBackground;
+ Color selForeground;
+ int selStartCol;
+ int selEndCol;
+
+ protected Rectangle rText;
+ protected FontExtents fe;
+ protected TextExtents te;
+
+ Point mouseLocalPos;
+ bool doubleClicked = false;
+ #endregion
+
+ void measureLeftMargin () {
+ leftMargin = 0;
+ if (PrintLineNumbers)
+ leftMargin += (int)Math.Ceiling((double)buffer.LineCount.ToString().Length * fe.MaxXAdvance) +6;
+ if (foldingEnabled)
+ leftMargin += foldMargin;
+ if (leftMargin > 0)
+ leftMargin += leftMarginGap;
+ updateVisibleColumns ();
+ }
+ void findLongestLineAndUpdateMaxScrollX() {
+ buffer.FindLongestVisualLine ();
+ updateMaxScrollX ();
+// Debug.WriteLine ("SourceEditor: Find Longest line and update maxscrollx: {0} visible cols:{1}", MaxScrollX, visibleColumns);
+ }
+ /// <summary>
+ /// Updates visible line in widget, adapt max scroll y and updatePrintedLines
+ /// </summary>
+ void updateVisibleLines(){
+ visibleLines = (int)Math.Floor ((double)ClientRectangle.Height / (fe.Ascent+fe.Descent));
+ NotifyValueChanged ("VisibleLines", visibleLines);
+ updateMaxScrollY ();
+ updatePrintedLines ();
+ RegisterForGraphicUpdate ();
+// System.Diagnostics.Debug.WriteLine ("update visible lines: " + visibleLines);
+// System.Diagnostics.Debug.WriteLine ("update MaxScrollY: " + MaxScrollY);
+ }
+ void updateVisibleColumns(){
+ visibleColumns = (int)Math.Floor ((double)(ClientRectangle.Width - leftMargin)/ fe.MaxXAdvance);
+ NotifyValueChanged ("VisibleColumns", visibleColumns);
+ updateMaxScrollX ();
+// System.Diagnostics.Debug.WriteLine ("update visible columns: {0} leftMargin:{1}",visibleColumns, leftMargin);
+// System.Diagnostics.Debug.WriteLine ("update MaxScrollX: " + MaxScrollX);
+ }
+ void updateMaxScrollX () {
+ MaxScrollX = Math.Max (0, buffer.longestLineCharCount - visibleColumns);
+ if (buffer.longestLineCharCount > 0)
+ NotifyValueChanged ("ChildWidthRatio", Slot.Width * visibleColumns / buffer.longestLineCharCount);
+ }
+ void updateMaxScrollY () {
+ if (parser == null || !foldingEnabled) {
+ MaxScrollY = Math.Max (0, buffer.LineCount - visibleLines);
+ if (buffer.UnfoldedLines > 0)
+ NotifyValueChanged ("ChildHeightRatio", Slot.Height * visibleLines / buffer.UnfoldedLines);
+ } else {
+ MaxScrollY = Math.Max (0, buffer.UnfoldedLines - visibleLines);
+ if (buffer.UnfoldedLines > 0)
+ NotifyValueChanged ("ChildHeightRatio", Slot.Height * visibleLines / buffer.UnfoldedLines);
+ }
+ }
+ void updatePrintedLines () {
+ buffer.editMutex.EnterReadLock ();
+ editorMutex.EnterWriteLock ();
+
+ PrintedLines = new List<CodeLine> ();
+ int curL = 0;
+ int i = 0;
+
+ while (curL < buffer.LineCount && i < ScrollY) {
+ if (buffer [curL].IsFolded)
+ curL = buffer.GetEndNodeIndex (curL);
+ curL++;
+ i++;
+ }
+
+ firstPrintedLine = curL;
+ i = 0;
+ while (i < visibleLines && curL < buffer.LineCount) {
+ PrintedLines.Add (buffer [curL]);
+
+ if (buffer [curL].IsFolded)
+ curL = buffer.GetEndNodeIndex (curL);
+
+ curL++;
+ i++;
+ }
+
+ buffer.editMutex.ExitReadLock ();
+ editorMutex.ExitWriteLock ();
+ }
+ void updateOnScreenCurLineFromBuffCurLine(){
+ printedCurrentLine = PrintedLines.IndexOf (buffer.CurrentCodeLine);
+ }
+ void toogleFolding (int line) {
+ if (parser == null || !foldingEnabled)
+ return;
+ buffer.ToogleFolding (line);
+ }
+
+ #region Editor overrides
+ protected override void updateEditorFromProjFile ()
+ {
+ Debug.WriteLine("\t\tSourceEditor updateEditorFromProjFile");
+
+ //buffer.editMutex.EnterWriteLock ();
+ loadSource ();
+ //buffer.editMutex.ExitWriteLock ();
+
+ isDirty = false;
+ oldSource = projFile.Source;
+ CurrentLine = requestedLine;
+ CurrentColumn = requestedCol;
+ projFile.RegisteredEditors [this] = true;
+ }
+ protected override void updateProjFileFromEditor ()
+ {
+ Debug.WriteLine("\t\tSourceEditor updateProjFileFromEditor");
+
+ buffer.editMutex.EnterWriteLock ();
+ string newsrc = buffer.FullText;
+ buffer.editMutex.ExitWriteLock ();
+ projFile.UpdateSource (this, newsrc);
+ }
+ protected override bool EditorIsDirty {
+ get { return isDirty; }
+ set { isDirty = value; }
+ }
+ protected override bool IsReady {
+ get { return projFile != null && buffer != null; }
+ }
+ #endregion
+
+ #region Buffer events handlers
+ void Buffer_BufferCleared (object sender, EventArgs e)
+ {
+ editorMutex.EnterWriteLock ();
+
+ buffer.longestLineCharCount = 0;
+ buffer.longestLineIdx = 0;
+ measureLeftMargin ();
+ MaxScrollX = MaxScrollY = 0;
+ PrintedLines = null;
+ RegisterForGraphicUpdate ();
+ notifyPositionChanged ();
+ isDirty = true;
+
+ editorMutex.ExitWriteLock ();
+ }
+ void Buffer_LineAdditionEvent (object sender, CodeBufferEventArgs e)
+ {
+ for (int i = 0; i < e.LineCount; i++) {
+ int lptr = e.LineStart + i;
+ int charCount = buffer[lptr].PrintableLength;
+ if (charCount > buffer.longestLineCharCount) {
+ buffer.longestLineIdx = lptr;
+ buffer.longestLineCharCount = charCount;
+ }else if (lptr <= buffer.longestLineIdx)
+ buffer.longestLineIdx++;
+ if (parser == null)
+ continue;
+ parser.TryParseBufferLine (e.LineStart + i);
+ }
+
+ if (parser != null)
+ parser.reparseSource ();
+
+ measureLeftMargin ();
+
+ updatePrintedLines ();
+ updateMaxScrollY ();
+ RegisterForGraphicUpdate ();
+ notifyPositionChanged ();
+ isDirty = true;
+ }
+ void Buffer_LineRemoveEvent (object sender, CodeBufferEventArgs e)
+ {
+ bool trigFindLongestLine = false;
+ for (int i = 0; i < e.LineCount; i++) {
+ int lptr = e.LineStart + i;
+ if (lptr <= buffer.longestLineIdx)
+ trigFindLongestLine = true;
+ }
+ if (trigFindLongestLine)
+ findLongestLineAndUpdateMaxScrollX ();
+
+ measureLeftMargin ();
+ updatePrintedLines ();
+ updateMaxScrollY ();
+ RegisterForGraphicUpdate ();
+ notifyPositionChanged ();
+ isDirty = true;
+ }
+ void Buffer_LineUpadateEvent (object sender, CodeBufferEventArgs e)
+ {
+ bool trigFindLongestLine = false;
+ for (int i = 0; i < e.LineCount; i++) {
+
+ int lptr = e.LineStart + i;
+ if (lptr == buffer.longestLineIdx)
+ trigFindLongestLine = true;
+ else if (buffer[lptr].PrintableLength > buffer.longestLineCharCount) {
+ buffer.longestLineCharCount = buffer[lptr].PrintableLength;
+ buffer.longestLineIdx = lptr;
+ }
+ }
+ if (trigFindLongestLine)
+ findLongestLineAndUpdateMaxScrollX ();
+
+ RegisterForGraphicUpdate ();
+ notifyPositionChanged ();
+ isDirty = true;
+ }
+ void Buffer_PositionChanged (object sender, EventArgs e)
+ {
+ //Console.WriteLine ("Position changes: ({0},{1})", buffer.CurrentLine, buffer.CurrentColumn);
+ int cc = buffer.CurrentTabulatedColumn;
+
+ if (cc > visibleColumns + ScrollX) {
+ ScrollX = cc - visibleColumns;
+ } else if (cc < ScrollX)
+ ScrollX = cc;
+
+ RegisterForGraphicUpdate ();
+ updateOnScreenCurLineFromBuffCurLine ();
+ notifyPositionChanged ();
+ }
+
+ void Buffer_SelectionChanged (object sender, EventArgs e)
+ {
+ RegisterForGraphicUpdate ();
+ }
+ void Buffer_FoldingEvent (object sender, CodeBufferEventArgs e)
+ {
+ updatePrintedLines ();
+ updateOnScreenCurLineFromBuffCurLine ();
+ updateMaxScrollY ();
+ RegisterForGraphicUpdate ();
+ }
+ #endregion
+
+ void notifyPositionChanged (){
+ try {
+ NotifyValueChanged ("CurrentLine", buffer.CurrentLine+1);
+ NotifyValueChanged ("CurrentColumn", buffer.CurrentColumn+1);
+ NotifyValueChanged ("CurrentLineHasError", CurrentLineHasError);
+ NotifyValueChanged ("CurrentLineError", CurrentLineError);
+ } catch (Exception ex) {
+ Console.WriteLine (ex.ToString ());
+ }
+ }
+
+ #region Public Crow Properties
+ public int CurrentLine{
+ get { return buffer == null ? 0 : buffer.CurrentLine+1; }
+ set {
+ try {
+ int l = value - 1;
+ if (l == buffer.CurrentLine)
+ return;
+ buffer.CurrentLine = l;
+ l = buffer.CurrentLine; //reaffect from buffer where bound check is made
+ if ((bool)buffer [l]?.IsFolded)
+ buffer.ToogleFolding (l);
+ } catch (Exception ex) {
+ requestedLine = value - 1;
+ Console.WriteLine ("Error cur column: " + ex);
+ }
+ }
+ }
+ public int CurrentColumn{
+ get { return buffer == null ? 0 : buffer.CurrentColumn+1; }
+ set {
+ try {
+ if (value - 1 == buffer.CurrentColumn)
+ return;
+ buffer.CurrentColumn = value - 1;
+ } catch (Exception ex) {
+ requestedCol = value - 1;
+ Console.WriteLine ("Error cur column: " + ex.ToString ());
+ }
+ }
+ }
+ public bool PrintLineNumbers
+ {
+ get { return Configuration.Global.Get<bool> ("PrintLineNumbers"); }
+ set {
+ if (PrintLineNumbers == value)
+ return;
+ Configuration.Global.Set ("PrintLineNumbers", value);
+ NotifyValueChanged ("PrintLineNumbers", PrintLineNumbers);
+ measureLeftMargin ();
+ RegisterForGraphicUpdate ();
+ }
+ }
+ [DefaultValue("SteelBlue")]
+ public virtual Color SelectionBackground {
+ get { return selBackground; }
+ set {
+ if (value == selBackground)
+ return;
+ selBackground = value;
+ NotifyValueChanged ("SelectionBackground", selBackground);
+ RegisterForRedraw ();
+ }
+ }
+ [DefaultValue("White")]
+ public virtual Color SelectionForeground {
+ get { return selForeground; }
+ set {
+ if (value == selForeground)
+ return;
+ selForeground = value;
+ NotifyValueChanged ("SelectionForeground", selForeground);
+ RegisterForRedraw ();
+ }
+ }
+ public override int ScrollY {
+ get {
+ return base.ScrollY;
+ }
+ set {
+ if (value == base.ScrollY)
+ return;
+ base.ScrollY = value;
+ updatePrintedLines ();
+ updateOnScreenCurLineFromBuffCurLine ();
+ RegisterForGraphicUpdate ();
+ }
+ }
+ public ParserException CurrentLineError {
+ get { return buffer?.CurrentCodeLine?.exception; }
+ }
+ public bool CurrentLineHasError {
+ get { return buffer == null ? false : buffer.CurrentCodeLine == null ? false :
+ buffer.CurrentCodeLine.exception != null; }
+ }
+ public override ProjectFile ProjectNode {
+ get {
+ return base.ProjectNode;
+ }
+ set {
+ base.ProjectNode = value;
+ if (projFile != null)
+ parser = getParserFromExt (System.IO.Path.GetExtension (projFile.Extension));
+ }
+ }
+ #endregion
+
+ BufferParser getParserFromExt (string extension) {
+ if (string.IsNullOrEmpty(extension))
+ return null;
+ if (!parsing.ContainsKey(extension))
+ return null;
+ Type parserType = Type.GetType (parsing [extension]);
+ if (parserType == null)
+ return null;
+ return (BufferParser)Activator.CreateInstance (parserType, buffer );
+ }
+ void loadSource () {
+
+ try {
+
+ if (parser == null)
+ buffer.Load (projFile.Source);
+ else//parser may have special linebrk rules
+ buffer.Load (projFile.Source, parser.LineBrkRegex);
+
+ } catch (Exception ex) {
+ Debug.WriteLine (ex.ToString ());
+ }
+
+ projFile.RegisteredEditors [this] = true;
+
+ updateMaxScrollY ();
+ MaxScrollX = Math.Max (0, buffer.longestLineCharCount - visibleColumns);
+ updatePrintedLines ();
+
+ RegisterForGraphicUpdate ();
+ }
+
+ /// <summary>
+ /// Current editor line, when set, update buffer.CurrentLine
+ /// </summary>
+ int PrintedCurrentLine {
+ get { return printedCurrentLine;}
+ set {
+ if (value < 0) {
+ ScrollY += value;
+ printedCurrentLine = 0;
+ } else if (PrintedLines.Count < visibleLines && value >= PrintedLines.Count) {
+ printedCurrentLine = PrintedLines.Count - 1;
+ }else if (value >= visibleLines) {
+ ScrollY += value - visibleLines + 1;
+ printedCurrentLine = visibleLines - 1;
+ }else
+ printedCurrentLine = value;
+ //Debug.WriteLine ("printed current line:" + printedCurrentLine.ToString ());
+ //update position in buffer
+ buffer.CurrentLine = buffer.IndexOf (PrintedLines[printedCurrentLine]);
+ }
+ }
+ int getTabulatedColumn (int col, int line) {
+ return buffer [line].Content.Substring (0, col).Replace ("\t", new String (' ', Interface.TabSize)).Length;
+ }
+ int getTabulatedColumn (Point pos) {
+ return getTabulatedColumn (pos.X,pos.Y);
+ }
+ /// <summary>
+ /// Moves cursor one char to the left, move up if cursor reaches start of line
+ /// </summary>
+ /// <returns><c>true</c> if move succeed</returns>
+ public bool MoveLeft(){
+ if (buffer.CurrentColumn == 0) {
+ if (printedCurrentLine == 0)
+ return false;
+ PrintedCurrentLine--;
+ buffer.CurrentColumn = int.MaxValue;
+ } else
+ buffer.CurrentColumn--;
+ return true;
+ }
+ /// <summary>
+ /// Moves cursor one char to the right, move down if cursor reaches end of line
+ /// </summary>
+ /// <returns><c>true</c> if move succeed</returns>
+ public bool MoveRight(){
+ if (buffer.CurrentColumn >= buffer.CurrentCodeLine.Length) {
+ if (PrintedCurrentLine == buffer.UnfoldedLines - 1)
+ return false;
+ buffer.CurrentColumn = 0;
+ PrintedCurrentLine++;
+ } else
+ buffer.CurrentColumn++;
+ return true;
+ }
+
+ #region Drawing
+ void drawLine(Context gr, Rectangle cb, int i) {
+ CodeLine cl = PrintedLines[i];
+ int lineIndex = buffer.IndexOf(cl);
+
+ double y = cb.Y + (fe.Ascent+fe.Descent) * i, x = cb.X;
+
+ //Draw line numbering
+ Color mgFg = Color.Grey;
+ Color mgBg = Color.White;
+ if (PrintLineNumbers){
+ Rectangle mgR = new Rectangle ((int)x, (int)y, leftMargin - leftMarginGap, (int)Math.Ceiling((fe.Ascent+fe.Descent)));
+ if (cl.exception != null) {
+ mgBg = Color.Red;
+ if (buffer.CurrentLine == lineIndex)
+ mgFg = Color.White;
+ else
+ mgFg = Color.LightGrey;
+ }else if (buffer.CurrentLine == lineIndex && HasFocus) {
+ mgFg = Color.Black;
+ mgBg = Color.DarkGrey;
+ }
+ string strLN = (lineIndex+1).ToString ();
+ gr.SetSourceColor (mgBg);
+ gr.Rectangle (mgR);
+ gr.Fill();
+ gr.SetSourceColor (mgFg);
+
+ gr.MoveTo (cb.X + (int)(gr.TextExtents (buffer.LineCount.ToString()).Width - gr.TextExtents (strLN).Width), y + fe.Ascent);
+ gr.ShowText (strLN);
+ gr.Fill ();
+ }
+
+
+
+ //draw folding
+ if (foldingEnabled){
+
+ Rectangle rFld = new Rectangle (cb.X + leftMargin - leftMarginGap - foldMargin,
+ (int)(y + (fe.Ascent + fe.Descent) / 2.0 - foldSize / 2.0), foldSize, foldSize);
+
+ gr.SetSourceColor (Color.Black);
+ gr.LineWidth = 1.0;
+
+ int level = 0;
+ bool closingNode = false;
+
+ if (currentNode != null) {
+ if (cl == currentNode.EndLine) {
+ currentNode = currentNode.Parent;
+ closingNode = true;
+ }
+ if (currentNode != null)
+ level = currentNode.Level - 1;
+ }
+
+ for (int l = 0; l < level; l++) {
+ gr.MoveTo (rFld.Center.X + 0.5, y);
+ gr.LineTo (rFld.Center.X + 0.5, y + fe.Ascent + fe.Descent);
+ rFld.Left += foldHSpace;
+ }
+ if (closingNode) {
+ gr.MoveTo (rFld.Center.X + 0.5, y);
+ gr.LineTo (rFld.Center.X + 0.5, y + fe.Ascent / 2 + 0.5);
+ gr.LineTo (rFld.Center.X + 0.5 + foldSize / 2, y + fe.Ascent / 2 + 0.5);
+ closingNode = false;
+ }
+ //gr.SetDash (new double[]{ 1.5 },0.0);
+ gr.SetSourceColor (Color.Grey);
+ gr.Stroke ();
+ //gr.SetDash (new double[]{}, 0.0);
+
+ if (cl.IsFoldable) {
+ gr.Rectangle (rFld);
+ gr.SetSourceColor (Color.White);
+ gr.Fill();
+ gr.SetSourceColor (Color.Black);
+ gr.Rectangle (rFld, 1.0);
+ if (cl.IsFolded) {
+ gr.MoveTo (rFld.Center.X + 0.5, rFld.Y + 2);
+ gr.LineTo (rFld.Center.X + 0.5, rFld.Bottom - 2);
+ }else
+ currentNode = cl.SyntacticNode;
+
+ gr.MoveTo (rFld.Left + 2, rFld.Center.Y + 0.5);
+ gr.LineTo (rFld.Right - 2, rFld.Center.Y + 0.5);
+ gr.Stroke ();
+ }
+ }
+
+ gr.SetSourceColor (Foreground);
+ x += leftMargin;
+
+ if (cl.Tokens == null)
+ drawRawCodeLine (gr, x, y, i, lineIndex);
+ else
+ drawParsedCodeLine (gr, x, y, i, lineIndex);
+ }
+ Node currentNode = null;
+// void drawParsed(Context gr){
+// if (PrintedLines == null)
+// return;
+//
+// gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
+// gr.SetFontSize (Font.Size);
+// gr.FontOptions = Interface.FontRenderingOptions;
+// gr.Antialias = Interface.Antialias;
+//
+// Rectangle cb = ClientRectangle;
+// gr.Save ();
+// CairoHelpers.CairoRectangle (gr, cb, CornerRadius);
+// gr.Clip ();
+//
+// bool selectionInProgress = false;
+//
+// Foreground.SetAsSource (gr);
+//
+// #region draw text cursor
+// if (SelBegin != SelRelease)
+// selectionInProgress = true;
+// else if (HasFocus){
+// gr.LineWidth = 1.0;
+// double cursorX = + leftMargin + cb.X + (CurrentColumn - ScrollX) * fe.MaxXAdvance;
+// gr.MoveTo (0.5 + cursorX, cb.Y + printedCurrentLine * (fe.Ascent+fe.Descent));
+// gr.LineTo (0.5 + cursorX, cb.Y + (printedCurrentLine + 1) * (fe.Ascent+fe.Descent));
+// gr.Stroke();
+// }
+// #endregion
+//
+// for (int i = 0; i < PrintedLines.Count; i++)
+// drawTokenLine (gr, i, selectionInProgress, cb);
+//
+// gr.Restore ();
+// }
+ void drawRawCodeLine(Context gr, double x, double y, int i, int lineIndex) {
+ string lstr = buffer[lineIndex].PrintableContent;
+ if (ScrollX < lstr.Length)
+ lstr = lstr.Substring (ScrollX);
+ else
+ lstr = "";
+
+ gr.MoveTo (x, y + fe.Ascent);
+ gr.ShowText (lstr);
+ gr.Fill ();
+
+ if (!buffer.SelectionIsEmpty && lineIndex >= buffer.SelectionStart.Y && lineIndex <= buffer.SelectionEnd.Y) {
+ double rLineX = x,
+ rLineY = y,
+ rLineW = lstr.Length * fe.MaxXAdvance;
+
+ //System.Diagnostics.Debug.WriteLine ("sel start: " + buffer.SelectionStart + " sel end: " + buffer.SelectionEnd);
+ if (lineIndex == buffer.SelectionStart.Y) {
+ rLineX += (selStartCol - ScrollX) * fe.MaxXAdvance;
+ rLineW -= selStartCol * fe.MaxXAdvance;
+ }
+ if (lineIndex == buffer.SelectionEnd.Y)
+ rLineW -= (lstr.Length - selEndCol) * fe.MaxXAdvance;
+
+ gr.Save ();
+ gr.Operator = Operator.Source;
+ gr.Rectangle (rLineX, rLineY, rLineW, (fe.Ascent+fe.Descent));
+ gr.SetSourceColor (SelectionBackground);
+ gr.FillPreserve ();
+ gr.Clip ();
+ gr.Operator = Operator.Over;
+ gr.SetSourceColor (SelectionForeground);
+ gr.MoveTo (x, y + fe.Ascent);
+ gr.ShowText (lstr);
+ gr.Fill ();
+ gr.Restore ();
+ }
+ }
+ void drawParsedCodeLine (Context gr, double x, double y, int i, int lineIndex) {
+ int lPtr = 0;
+ CodeLine cl = PrintedLines[i];
+
+ for (int t = 0; t < cl.Tokens.Count; t++) {
+ string lstr = cl.Tokens [t].PrintableContent;
+ if (lPtr < ScrollX) {
+ if (lPtr - ScrollX + lstr.Length <= 0) {
+ lPtr += lstr.Length;
+ continue;
+ }
+ lstr = lstr.Substring (ScrollX - lPtr);
+ lPtr += ScrollX - lPtr;
+ }
+ Color bg = this.Background;
+ Color fg = this.Foreground;
+ Color selbg = this.SelectionBackground;
+ Color selfg = this.SelectionForeground;
+ FontSlant fts = FontSlant.Normal;
+ FontWeight ftw = FontWeight.Normal;
+
+ if (formatting.ContainsKey ((int)cl.Tokens [t].Type)) {
+ TextFormatting tf = formatting [(int)cl.Tokens [t].Type];
+ bg = tf.Background;
+ fg = tf.Foreground;
+ if (tf.Bold)
+ ftw = FontWeight.Bold;
+ if (tf.Italic)
+ fts = FontSlant.Italic;
+ }
+
+ gr.FontFace = Font.Name;
+ gr.SetSourceColor (fg);
+
+ gr.MoveTo (x, y + fe.Ascent);
+ gr.ShowText (lstr);
+ gr.Fill ();
+
+ if (buffer.SelectionInProgress && lineIndex >= buffer.SelectionStart.Y && lineIndex <= buffer.SelectionEnd.Y &&
+ !(lineIndex == buffer.SelectionStart.Y && lPtr + lstr.Length <= selStartCol) &&
+ !(lineIndex == buffer.SelectionEnd.Y && selEndCol <= lPtr)) {
+
+ double rLineX = x,
+ rLineY = y,
+ rLineW = lstr.Length * fe.MaxXAdvance;
+ double startAdjust = 0.0;
+
+ if ((lineIndex == buffer.SelectionStart.Y) && (selStartCol < lPtr + lstr.Length) && (selStartCol > lPtr))
+ startAdjust = (selStartCol - lPtr) * fe.MaxXAdvance;
+ rLineX += startAdjust;
+ if ((lineIndex == buffer.SelectionEnd.Y) && (selEndCol < lPtr + lstr.Length))
+ rLineW = (selEndCol - lPtr) * fe.MaxXAdvance;
+ rLineW -= startAdjust;
+
+ gr.Save ();
+ gr.Operator = Operator.Source;
+ gr.Rectangle (rLineX, rLineY, rLineW, (fe.Ascent+fe.Descent));
+ gr.SetSourceColor (selbg);
+ gr.FillPreserve ();
+ gr.Clip ();
+ gr.Operator = Operator.Over;
+ gr.SetSourceColor (selfg);
+ gr.MoveTo (x, y + fe.Ascent);
+ gr.ShowText (lstr);
+ gr.Fill ();
+ gr.Restore ();
+ }
+ x += (int)lstr.Length * fe.MaxXAdvance;
+ lPtr += lstr.Length;
+ }
+ }
+
+ #endregion
+
+ #region GraphicObject overrides
+ public override Font Font {
+ get { return base.Font; }
+ set {
+ base.Font = value;
+ /*
+ using (ImageSurface img = new ImageSurface (Format.Argb32, 1, 1)) {
+ using (Context gr = new Context (img)) {
+ gr.SelectFontFace (Font.Name, Font.Slant, Font.Wheight);
+ gr.SetFontSize (Font.Size);
+
+ fe = gr.FontExtents;
+ }
+ }*/
+ MaxScrollY = 0;
+ RegisterForGraphicUpdate ();
+ }
+ }
+ protected override int measureRawSize(LayoutingType lt)
+ {
+ if (lt == LayoutingType.Height)
+ return (int)Math.Ceiling((fe.Ascent+fe.Descent) * buffer.LineCount) + Margin * 2;
+
+ return (int)(fe.MaxXAdvance * buffer.longestLineCharCount) + Margin * 2 + leftMargin;
+ }
+ public override void OnLayoutChanges (LayoutingType layoutType)
+ {
+ base.OnLayoutChanges (layoutType);
+
+ if (layoutType == LayoutingType.Height)
+ updateVisibleLines ();
+ else if (layoutType == LayoutingType.Width)
+ updateVisibleColumns ();
+ }
+
+ protected override void onDraw (Context gr)
+ {
+ base.onDraw (gr);
+
+ gr.FontFace = Font.Name;
+ gr.FontSize = (uint)Font.Size;
+
+ Rectangle cb = ClientRectangle;
+
+ Foreground.SetAsSource (gr);
+
+ buffer.editMutex.EnterReadLock ();
+ editorMutex.EnterReadLock ();
+
+ #region draw text cursor
+ if (buffer.SelectionInProgress){
+ selStartCol = getTabulatedColumn (buffer.SelectionStart);
+ selEndCol = getTabulatedColumn (buffer.SelectionEnd);
+ }else if (HasFocus && printedCurrentLine >= 0){
+ gr.LineWidth = 1.0;
+ double cursorX = cb.X + (getTabulatedColumn(buffer.CurrentPosition) - ScrollX) * fe.MaxXAdvance + leftMargin;
+ gr.MoveTo (0.5 + cursorX, cb.Y + (printedCurrentLine) * (fe.Ascent+fe.Descent));
+ gr.LineTo (0.5 + cursorX, cb.Y + (printedCurrentLine + 1) * (fe.Ascent+fe.Descent));
+ gr.Stroke();
+ }
+ #endregion
+
+ if (PrintedLines?.Count > 0) {
+ int unfoldedLines = buffer.UnfoldedLines;
+ currentNode = null;
+ CodeLine cl = PrintedLines[0];
+ int idx0 = buffer.IndexOf(cl);
+ int li = idx0-1;
+ while (li >= 0) {
+ if (buffer [li].IsFoldable && !buffer [li].IsFolded) {
+ if (buffer.IndexOf(buffer [li].SyntacticNode.EndLine) > idx0){
+ currentNode = buffer [li].SyntacticNode;
+ break;
+ }
+ }
+ li--;
+ }
+
+ for (int i = 0; i < visibleLines; i++) {
+ if (i + ScrollY >= unfoldedLines)//TODO:need optimize
+ break;
+ drawLine (gr, cb, i);
+ }
+ }
+
+ editorMutex.ExitReadLock ();
+
+ buffer.editMutex.ExitReadLock ();
+
+ }
+ #endregion
+
+ #region Mouse handling
+
+ int hoverLine = -1;
+ public int HoverLine {
+ get { return hoverLine; }
+ set {
+ if (hoverLine == value)
+ return;
+ hoverLine = value;
+ NotifyValueChanged ("HoverLine", hoverLine);
+ NotifyValueChanged ("HoverError", buffer [hoverLine].exception);
+ }
+ }
+ void updateHoverLine () {
+ if (PrintedLines.Count > 0) {
+ int hvl = (int)Math.Max (0, Math.Floor (mouseLocalPos.Y / (fe.Ascent + fe.Descent)));
+ hvl = Math.Min (PrintedLines.Count - 1, hvl);
+ HoverLine = buffer.IndexOf (PrintedLines [hvl]);
+ } else
+ HoverLine = 0;
+ }
+ void updateCurrentPosFromMouseLocalPos(){
+ PrintedCurrentLine = (int)Math.Max (0, Math.Floor (mouseLocalPos.Y / (fe.Ascent+fe.Descent)));
+ int curVisualCol = ScrollX + (int)Math.Round ((mouseLocalPos.X - leftMargin) / fe.MaxXAdvance);
+
+ int i = 0;
+ int buffCol = 0;
+ while (i < curVisualCol && buffCol < buffer.CurrentCodeLine.Length) {
+ if (buffer.CurrentCodeLine[buffCol] == '\t')
+ i += Interface.TabSize;
+ else
+ i++;
+ buffCol++;
+ }
+ buffer.CurrentColumn = buffCol;
+ }
+ public override void onMouseEnter (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseEnter (sender, e);
+ if (e.X - ScreenCoordinates(Slot).X < leftMargin + ClientRectangle.X)
+ IFace.MouseCursor = MouseCursor.Arrow;
+ else
+ IFace.MouseCursor = MouseCursor.IBeam;
+ }
+ public override void onMouseLeave (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseLeave (sender, e);
+ IFace.MouseCursor = MouseCursor.Arrow;
+ }
+ public override void onMouseMove (object sender, MouseMoveEventArgs e)
+ {
+ base.onMouseMove (sender, e);
+
+ mouseLocalPos = e.Position - ScreenCoordinates(Slot).TopLeft - ClientRectangle.TopLeft;
+
+ updateHoverLine ();
+
+ if (!e.Mouse.IsButtonDown (MouseButton.Left)) {
+ if (mouseLocalPos.X < leftMargin)
+ IFace.MouseCursor = MouseCursor.Arrow;
+ else
+ IFace.MouseCursor = MouseCursor.IBeam;
+ return;
+ }
+
+ if (!HasFocus || !buffer.SelectionInProgress)
+ return;
+
+ //mouse is down
+ updateCurrentPosFromMouseLocalPos();
+ buffer.SetSelEndPos ();
+ }
+ public override void onMouseDown (object sender, MouseButtonEventArgs e)
+ {
+ if (!this.Focusable)
+ return;
+
+ if (mouseLocalPos.X >= leftMargin)
+ base.onMouseDown (sender, e);
+
+ if (doubleClicked) {
+ doubleClicked = false;
+ return;
+ }
+
+ if (mouseLocalPos.X < leftMargin) {
+ toogleFolding (buffer.IndexOf (PrintedLines [(int)Math.Max (0, Math.Floor (mouseLocalPos.Y / (fe.Ascent+fe.Descent)))]));
+ return;
+ }
+
+ updateCurrentPosFromMouseLocalPos ();
+ buffer.SetSelStartPos ();
+ }
+ public override void onMouseUp (object sender, MouseButtonEventArgs e)
+ {
+ base.onMouseUp (sender, e);
+
+ if (buffer.SelectionIsEmpty)
+ buffer.ResetSelection ();
+ }
+
+ public override void onMouseDoubleClick (object sender, MouseButtonEventArgs e)
+ {
+ doubleClicked = true;
+ base.onMouseDoubleClick (sender, e);
+
+ buffer.GotoWordStart ();
+ buffer.SetSelStartPos ();
+ buffer.GotoWordEnd ();
+ buffer.SetSelEndPos ();
+ }
+ public void MakeSelection (int lineStart, int colStart, int lineEnd, int colEnd) {
+ buffer.CurrentLine = lineStart;
+ buffer.CurrentColumn = colStart;
+ buffer.SetSelStartPos ();
+ buffer.CurrentLine = lineEnd;
+ buffer.CurrentColumn = colEnd;
+ buffer.SetSelEndPos ();
+ }
+ public override void onMouseWheel (object sender, MouseWheelEventArgs e)
+ {
+ base.onMouseWheel (sender, e);
+ }
+ #endregion
+
+ #region Keyboard handling
+ public override void onKeyDown (object sender, KeyEventArgs e)
+ {
+ //base.onKeyDown (sender, e);
+
+ Key key = e.Key;
+
+ if (IFace.Ctrl) {
+ switch (key) {
+ case Key.S:
+ projFile.Save ();
+ break;
+ case Key.W:
+ editorMutex.EnterWriteLock ();
+ if (IFace.Shift)
+ projFile.Redo (null);
+ else
+ projFile.Undo (null);
+ editorMutex.ExitWriteLock ();
+ break;
+ default:
+ Console.WriteLine ("");
+ break;
+ }
+ }
+
+ switch (key)
+ {
+ case Key.Backspace:
+ buffer.DeleteChar ();
+ break;
+ case Key.Delete:
+ if (buffer.SelectionIsEmpty)
+ MoveRight ();
+ else if (IFace.Shift)
+ IFace.Clipboard = buffer.SelectedText;
+ buffer.DeleteChar ();
+ break;
+ case Key.Enter:
+ case Key.KeypadEnter:
+ if (!buffer.SelectionIsEmpty)
+ buffer.DeleteChar ();
+ buffer.InsertLineBreak ();
+ break;
+ case Key.Escape:
+ buffer.ResetSelection ();
+ break;
+ case Key.Home:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ if (IFace.Ctrl)
+ buffer.CurrentLine = 0;
+ buffer.CurrentColumn = 0;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ if (IFace.Ctrl)
+ buffer.CurrentLine = 0;
+ buffer.CurrentColumn = 0;
+ break;
+ case Key.End:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ if (IFace.Ctrl)
+ buffer.CurrentLine = int.MaxValue;
+ buffer.CurrentColumn = int.MaxValue;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ if (IFace.Ctrl)
+ buffer.CurrentLine = int.MaxValue;
+ buffer.CurrentColumn = int.MaxValue;
+ break;
+ case Key.Insert:
+ if (IFace.Shift)
+ buffer.Insert (IFace.Clipboard);
+ else if (IFace.Ctrl && !buffer.SelectionIsEmpty)
+ IFace.Clipboard = buffer.SelectedText;
+ break;
+ case Key.Left:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ if (IFace.Ctrl)
+ buffer.GotoWordStart ();
+ else
+ MoveLeft ();
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ if (IFace.Ctrl)
+ buffer.GotoWordStart ();
+ else
+ MoveLeft();
+ break;
+ case Key.Right:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ if (IFace.Ctrl)
+ buffer.GotoWordEnd ();
+ else
+ MoveRight ();
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ if (IFace.Ctrl)
+ buffer.GotoWordEnd ();
+ else
+ MoveRight ();
+ break;
+ case Key.Up:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ PrintedCurrentLine--;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ PrintedCurrentLine--;
+ break;
+ case Key.Down:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ PrintedCurrentLine++;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ PrintedCurrentLine++;
+ break;
+ case Key.Menu:
+ break;
+ case Key.NumLock:
+ break;
+ case Key.PageDown:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ PrintedCurrentLine += visibleLines;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ PrintedCurrentLine += visibleLines;
+ break;
+ case Key.PageUp:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty)
+ buffer.SetSelStartPos ();
+ PrintedCurrentLine -= visibleLines;
+ buffer.SetSelEndPos ();
+ break;
+ }
+ buffer.ResetSelection ();
+ PrintedCurrentLine -= visibleLines;
+ break;
+ case Key.Tab:
+ if (IFace.Shift) {
+ if (buffer.SelectionIsEmpty ||
+ (buffer.SelectionStart.Y == buffer.SelectionEnd.Y)) {
+ //TODO
+ break;
+ }
+ for (int i = buffer.SelectionStart.Y; i <= buffer.SelectionEnd.Y; i++)
+ buffer.RemoveLeadingTab (i);
+ buffer.SetSelectionOnFullLines ();
+ } else {
+ if (buffer.SelectionIsEmpty ||
+ (buffer.SelectionStart.Y == buffer.SelectionEnd.Y)) {
+ buffer.Insert ("\t");
+ break;
+ }
+ for (int i = buffer.SelectionStart.Y; i <= buffer.SelectionEnd.Y; i++) {
+ buffer.UpdateLine (i, "\t" + buffer [i].Content);
+ }
+ }
+
+ break;
+ case Key.F8:
+ toogleFolding (buffer.CurrentLine);
+ break;
+ default:
+ break;
+ }
+ RegisterForGraphicUpdate();
+ }
+ public override void onKeyPress (object sender, KeyPressEventArgs e)
+ {
+ base.onKeyPress (sender, e);
+
+ buffer.Insert (e.KeyChar.ToString());
+ buffer.ResetSelection ();
+ }
+ #endregion
+ }
+}
\ No newline at end of file
--- /dev/null
+//
+// SvgEditor.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.ComponentModel;
+using vkvg;
+
+namespace Crow.Coding
+{
+ public class SvgEditor : Editor
+ {
+ SvgPicture _pic = new SvgPicture();
+
+ int zoom;
+
+ [DefaultValue(100)]
+ public int Zoom {
+ get { return zoom; }
+ set {
+ if (zoom == value)
+ return;
+ zoom = value;
+ NotifyValueChanged ("Zoom", zoom);
+ updateMaxScrolls ();
+ RegisterForGraphicUpdate ();
+ }
+ }
+
+ void updateMaxScrolls() {
+ MaxScrollX = Math.Max(0, _pic.Dimensions.Width * zoom / 100 - Slot.Width);
+ MaxScrollY = Math.Max(0, _pic.Dimensions.Height * zoom / 100 - Slot.Height);
+
+ if (Slot.Width + MaxScrollX > 0)
+ NotifyValueChanged ("ChildWidthRatio", Slot.Width * Slot.Width / (Slot.Width + MaxScrollX));
+ else
+ NotifyValueChanged ("ChildWidthRatio", 0);
+
+ if (Slot.Height + MaxScrollY > 0)
+ NotifyValueChanged ("ChildHeightRatio", Slot.Height * Slot.Height / (Slot.Height + MaxScrollY));
+ else
+ NotifyValueChanged ("ChildHeightRatio", 0);
+ }
+ #region editor overrides
+ protected override void updateEditorFromProjFile ()
+ {
+ Error = null;
+ try {
+ editorMutex.EnterWriteLock();
+ _pic.LoadSvgFragment (projFile.Source);
+ _pic.Scaled = true;
+ _pic.KeepProportions = true;
+ } catch (Exception ex) {
+ Error = ex;
+ }
+ editorMutex.ExitWriteLock ();
+ updateMaxScrolls ();
+ RegisterForGraphicUpdate ();
+ }
+ protected override void updateProjFileFromEditor ()
+ {
+ throw new NotImplementedException ();
+ }
+ protected override bool EditorIsDirty {
+ get { return false; }
+ set {
+ throw new NotImplementedException ();
+ }
+ }
+ protected override bool IsReady {
+ get { return projFile != null; }
+ }
+ #endregion
+
+ #region GraphicObject overrides
+ protected override int measureRawSize (LayoutingType lt)
+ {
+ if (_pic == null)
+ return 2 * Margin;
+ //_pic = "#Crow.Images.Icons.IconAlerte.svg";
+ //TODO:take scalling in account
+ if (lt == LayoutingType.Width)
+ return _pic.Dimensions.Width + 2 * Margin;
+ else
+ return _pic.Dimensions.Height + 2 * Margin;
+ }
+ protected override void onDraw (Context gr)
+ {
+ base.onDraw (gr);
+
+ Rectangle r = ClientRectangle;
+ Foreground.SetAsSource (gr, r);
+ gr.Rectangle (r, 0.1);
+ gr.Stroke ();
+
+ r.Width = _pic.Dimensions.Width * zoom / 100;
+ r.Height = _pic.Dimensions.Height * zoom / 100;
+
+ gr.Save ();
+
+ editorMutex.EnterReadLock ();
+
+ gr.Translate (-ScrollX, -ScrollY);
+ if (_pic != null)
+ _pic.Paint (gr, r);
+ editorMutex.ExitReadLock ();
+
+ gr.Restore ();
+ }
+ public override void OnLayoutChanges (LayoutingType layoutType)
+ {
+ base.OnLayoutChanges (layoutType);
+ if ((layoutType | LayoutingType.Sizing) > 0)
+ updateMaxScrolls ();
+ }
+ #endregion
+ }
+}
+
--- /dev/null
+//
+// Extensions.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2016 jp
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+using System;
+using System.Collections.Generic;
+
+namespace Crow
+{
+ public static partial class Extensions
+ {
+ public static string GetIcon(this Widget go){
+ return "#CrowIDE.icons.toolbox." + go.GetType().FullName + ".svg";
+ }
+ public static List<Widget> GetChildren(this Widget go){
+ Type goType = go.GetType();
+ if (typeof (Group).IsAssignableFrom (goType))
+ return (go as Group).Children;
+ if (typeof(Container).IsAssignableFrom (goType))
+ return new List<Widget>( new Widget[] { (go as Container).Child });
+ if (typeof(TemplatedContainer).IsAssignableFrom (goType))
+ return new List<Widget>( new Widget[] { (go as TemplatedContainer).Content });
+ if (typeof(TemplatedGroup).IsAssignableFrom (goType))
+ return (go as TemplatedGroup).Items;
+
+ return new List<Widget>();
+ }
+ }
+}
--- /dev/null
+//
+// GraphicObjectDesignContainer.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+
+namespace Crow.Coding
+{
+ public class GraphicObjectDesignContainer
+ {
+ #region CTOR
+ public GraphicObjectDesignContainer (Type crowType)
+ {
+ CrowType = crowType;
+ }
+ #endregion
+
+ int dragIconSize = 32;
+ public Type CrowType;
+
+ public string IconPath {
+ get { return "#CrowIDE.icons.toolbox." + CrowType.FullName + ".svg"; }
+ }
+ public string DisplayName {
+ get { return CrowType.Name; }
+ }
+ void onStartDrag (object sender, EventArgs e)
+ {
+ /*
+ Widget go = sender as Widget;
+
+ lock (go.IFace.UpdateMutex) {
+ go.IFace.DragImageHeight = dragIconSize;
+ go.IFace.DragImageWidth = dragIconSize;
+ SvgPicture pic = new SvgPicture (IconPath);
+ //pic.Load (go.IFace, IconPath);
+ ImageSurface img = new ImageSurface (Format.Argb32, dragIconSize, dragIconSize);
+ using (Context ctx = new Context (img)) {
+ Rectangle r = new Rectangle (0, 0, dragIconSize, dragIconSize);
+ pic.Paint (ctx, r);
+ ctx.Operator = Operator.In;
+ ctx.SetSourceRGBA (1.0, 1.0, 1.0, 1.0);
+ ctx.Rectangle (r);
+ ctx.Fill ();
+
+ }
+ go.IFace.DragImage = img;
+ }*/
+ }
+ void onEndDrag (object sender, DragDropEventArgs e)
+ {
+ (sender as Widget).IFace.ClearDragImage ();
+
+ }
+ void onDrop (object sender, DragDropEventArgs e)
+ {
+ ImlVisualEditor imlVE = e.DropTarget as ImlVisualEditor;
+ if (imlVE != null)
+ imlVE.ClearDraggedObj (false);
+ (sender as Widget).IFace.ClearDragImage ();
+ }
+ }
+}
+
--- /dev/null
+//
+// INetProject.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+
+namespace Crow.Coding
+{
+ public interface INetProject
+ {
+
+ }
+}
+
--- /dev/null
+//
+// CategoryContainer.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+
+namespace Crow.Coding
+{
+ public class CategoryContainer : IValueChange
+ {
+ #region IValueChange implementation
+ public event EventHandler<ValueChangeEventArgs> ValueChanged;
+ public virtual void NotifyValueChanged(string MemberName, object _value)
+ {
+ ValueChanged.Raise(this, new ValueChangeEventArgs(MemberName, _value));
+ }
+ #endregion
+
+ bool _isExpanded = true;
+
+ public PropertyContainer[] Properties;
+ public string Name;
+
+ public bool IsExpanded
+ {
+ get { return _isExpanded; }
+ set
+ {
+ if (value == _isExpanded)
+ return;
+
+ _isExpanded = value;
+
+ NotifyValueChanged ("IsExpanded", _isExpanded);
+ }
+ }
+
+ public CategoryContainer (string categoryName, PropertyContainer[] properties){
+ Name = categoryName;
+ Properties = properties;
+ }
+ }
+}
+
--- /dev/null
+//
+// MembersView.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2016 jp
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+using System;
+using Crow;
+using System.Xml.Serialization;
+using System.ComponentModel;
+using System.Reflection;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace Crow.Coding
+{
+ public class MembersView : ListBox
+ {
+ object instance;
+ ImlProjectItem projFile;
+
+ public MembersView () : base() {}
+
+ //cache property containers per type
+ //Dictionary<string,PropertyContainer[]> propContainersCache = new Dictionary<string, PropertyContainer[]>();
+ Dictionary<string,List<CategoryContainer>> categoryContainersCache = new Dictionary<string,List<CategoryContainer>> ();
+
+ [DefaultValue(null)]
+ public virtual object Instance {
+ get { return instance; }
+ set {
+ if (instance == value)
+ return;
+ object lastInst = instance;
+
+ instance = value;
+ NotifyValueChanged ("Instance", instance);
+
+ if (Instance is Widget) {
+ NotifyValueChanged ("SelectedItemName", Instance.GetType().Name + (Instance as Widget).design_id
+ + ":" + (Instance as Widget).design_imlPath );
+ }else
+ NotifyValueChanged ("SelectedItemName", "");
+
+ if (instance == null) {
+ Data = null;
+ return;
+ }
+
+ Type it = instance.GetType ();
+ if (!categoryContainersCache.ContainsKey (it.FullName)) {
+ MemberInfo[] members = it.GetMembers (BindingFlags.Public | BindingFlags.Instance);
+ List<PropertyContainer> props = new List<PropertyContainer> ();
+ foreach (MemberInfo m in members) {
+ if (m.MemberType == MemberTypes.Property) {
+ PropertyInfo pi = m as PropertyInfo;
+ if (!pi.CanWrite)
+ continue;
+ if (pi.GetCustomAttribute (typeof(XmlIgnoreAttribute)) != null)
+ continue;
+ props.Add (new PropertyContainer (this, pi));
+ }
+ }
+ //propContainersCache.Add (it.FullName, props.OrderBy (p => p.Name).ToArray ());
+ List<CategoryContainer> categories = new List<CategoryContainer> ();
+
+ foreach (IGrouping<string,PropertyContainer> ig in props.OrderBy (p => p.Name).GroupBy(pc=>pc.DesignCategory)) {
+ categories.Add(new CategoryContainer(ig.Key, ig.ToArray()));
+ }
+ categoryContainersCache.Add (it.FullName, categories);
+ }
+
+
+ Data = categoryContainersCache[it.FullName];
+
+ if (lastInst != instance) {
+ foreach (CategoryContainer cc in categoryContainersCache [it.FullName]) {
+ foreach (PropertyContainer pc in cc.Properties) {
+ pc.NotifyValueChanged ("Value", pc.Value);
+ pc.NotifyValueChanged ("LabForeground", pc.LabForeground);
+ }
+ }
+ }
+ }
+ }
+ public ImlProjectItem ProjectNode {
+ get { return projFile; }
+ set {
+ if (projFile == value)
+ return;
+
+// if (projFile != null)
+// projFile.UnregisterEditor (this);
+
+ projFile = value;
+
+// if (projFile != null)
+// projFile.RegisterEditor (this);
+
+ NotifyValueChanged ("ProjectNode", projFile);
+ }
+ }
+
+// public void updateSource () {
+// if (projFile == null)
+// return;
+// projFile.UpdateSource (this, (Instance as GraphicObject).GetIML ());
+// }
+
+// public override void Paint (ref Context ctx)
+// {
+// base.Paint (ref ctx);
+//
+// if (SelectedIndex < 0)
+// return;
+//
+// Rectangle r = Parent.ContextCoordinates(Items [SelectedIndex].Slot);
+// ctx.SetSourceRGB (0, 0, 1);
+// ctx.Rectangle (r);
+// ctx.LineWidth = 2;
+// ctx.Stroke ();
+// }
+
+ }
+}
--- /dev/null
+//
+// PropertyContainer.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Reflection;
+using System.Linq;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.ComponentModel;
+
+namespace Crow.Coding
+{
+ public class PropertyContainer : IValueChange
+ {
+ #region IValueChange implementation
+ public event EventHandler<ValueChangeEventArgs> ValueChanged;
+ public virtual void NotifyValueChanged(string MemberName, object _value)
+ {
+ ValueChanged.Raise(this, new ValueChangeEventArgs(MemberName, _value));
+ }
+ #endregion
+
+ PropertyInfo pi;
+ MembersView mview;
+ Command cmdReset, cmdGoToStyle;
+
+ public List<Crow.Command> Commands;
+
+ #region CTOR
+ public PropertyContainer(MembersView mv, PropertyInfo prop){
+ mview = mv;
+ pi = prop;
+
+ cmdReset = new Crow.Command (new Action (() => Reset ())) { Caption = "Reset to default" };
+ cmdGoToStyle = new Crow.Command (new Action (() => GotoStyle ())) { Caption = "Goto style" };
+
+ Commands = new List<Crow.Command> (new Crow.Command[] { cmdReset, cmdGoToStyle });
+ }
+ #endregion
+
+ public string DesignCategory {
+ get {
+ DesignCategory dca = (DesignCategory)pi.GetCustomAttribute (typeof(DesignCategory));
+ return dca == null ? "Divers" : dca.Name;
+ }
+ }
+ public string Name { get { return pi.Name; }}
+ public object Value {
+ get {
+ return mview.ProjectNode?.SelectedItem == null ? null : pi.GetValue(mview.ProjectNode.SelectedItem);
+ }
+ set {
+ try {
+ if (value == Value)
+ return;
+ Widget g = Instance;
+ string valstr = null, oldval = null;
+
+ if (value != null)
+ valstr = value.ToString();
+
+ if (HasStyling)
+ oldval = g.design_style_values[Name];
+ else if (HasDefaultValue)
+ oldval = DefaultValue?.ToString();
+ else if (IsSetByIML)
+ oldval = g.design_iml_values [Name];
+
+ if (valstr == oldval){
+ if (IsSetByIML){
+ g.design_iml_values.Remove(Name);
+ Debug.WriteLine("iml attrib removed {0}.{1}", g.Name, Name);
+ }else
+ return;
+ }else{
+ if (IsSetByIML){
+ g.design_iml_values [Name] = valstr;
+ Debug.WriteLine("iml update {0}.{1} = {2}", g.Name, Name, valstr);
+ }else{
+ g.design_iml_values.Add(Name,valstr);
+ Debug.WriteLine("iml add {0}.{1} = {2}", g.Name, Name, valstr);
+ }
+ }
+
+ if (!pi.PropertyType.IsAssignableFrom(value.GetType()) && pi.PropertyType != typeof(string)){
+ if (pi.PropertyType.IsEnum) {
+ if (value is string) {
+ pi.SetValue (g, Enum.Parse (pi.PropertyType, (string)value));
+ }else
+ pi.SetValue (g, value);
+ } else {
+ MethodInfo me = pi.PropertyType.GetMethod
+ ("Parse", BindingFlags.Static | BindingFlags.Public,
+ System.Type.DefaultBinder, new Type [] {typeof (string)},null);
+ pi.SetValue (g, me.Invoke (null, new object[] { value }), null);
+ }
+ }else
+ pi.SetValue(g, value);
+
+ Debug.WriteLine("\t\tPropContainer set design_dirty to instance");
+
+ mview.ProjectNode.Instance.design_HasChanged = true;
+ NotifyValueChanged ("Value", value);
+ NotifyValueChanged ("LabForeground", LabForeground);
+ } catch (Exception ex) {
+ Debug.WriteLine ("Error setting property:"+ ex.ToString());
+ }
+ //
+ }
+ }
+ /// <summary>
+ /// for style attribute which is a string, return Style as type
+ /// </summary>
+ public string Type { get { return pi.PropertyType.IsEnum ?
+ "System.Enum"
+ : pi.Name == "Style" ? "Style" : pi.PropertyType.FullName; }}
+
+ public object[] Choices {
+ get {
+ return pi.PropertyType.IsEnum ?
+ Enum.GetValues (pi.PropertyType).Cast<object>().ToArray() :
+ mview.ProjectNode.Project.solution.AvailaibleStyles;
+ }
+ }
+ /// <summary>
+ /// Current graphicobject instance
+ /// </summary>
+ public Widget Instance {
+ get { return mview.ProjectNode.SelectedItem as Widget; }
+ }
+ public object DefaultValue {
+ get { return ((DefaultValueAttribute)(pi.GetCustomAttribute (typeof (DefaultValueAttribute)))).Value; }
+ }
+ public bool HasDefaultValue {
+ get { return pi.GetCustomAttribute (typeof(DefaultValueAttribute))!=null; }
+ }
+ /// <summary>
+ /// return true if current value comes from IML attributes
+ /// </summary>
+ public bool IsSetByIML {
+ get { return Instance.design_iml_values.ContainsKey (Name); }
+ }
+ /// <summary>
+ /// return true if member default value comes from style
+ /// </summary>
+ public bool HasStyling {
+ get { return Instance.design_style_locations.ContainsKey(Name); }
+ }
+ /// <summary>
+ /// Return true if current value comes from styling
+ /// </summary>
+ public bool IsSetByStyling {
+ get { return IsSetByIML ? false : HasStyling; }
+ }
+
+
+ public Fill LabForeground {
+ get { return IsSetByIML ? Color.DarkBlue : HasStyling ? Color.Black : Color.Grey;}
+ }
+
+ /// <summary>
+ /// reset to default value
+ /// </summary>
+ public void Reset () {
+ Widget inst = mview.ProjectNode.SelectedItem as Widget;
+ if (!inst.design_iml_values.ContainsKey (Name))
+ return;
+ inst.design_iml_values.Remove (Name);
+
+ NotifyValueChanged ("LabForeground", LabForeground);
+ mview.ProjectNode.UpdateSource(this, mview.ProjectNode.Instance.GetIML());
+ //mview.ProjectNode.Instance.design_HasChanged = true;
+ //should reinstantiate to get default
+ }
+ public void GotoStyle(){
+ Widget g = Instance;
+ if (!g.design_style_locations.ContainsKey (Name))
+ return;
+ FileLocation fl = g.design_style_locations [Name];
+ ProjectFile pf;
+ if (!mview.ProjectNode.Project.TryGetProjectFileFromPath ("#" + fl.FilePath, out pf))
+ return;
+
+ if (!pf.IsOpened)
+ pf.Open ();
+
+ pf.CurrentLine = fl.Line;
+ pf.CurrentColumn = fl.Column;
+
+ pf.IsSelected = true;
+
+ }
+
+ public override string ToString ()
+ {
+ return string.Format ("{0} = {1}", Name, Value);
+ }
+ }
+}
+
--- /dev/null
+//
+// Project.cs
+//
+// Author:
+// jp <>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Xml;
+using System.IO;
+using System.Collections.Generic;
+using System.Linq;
+using Microsoft.CSharp;
+using System.CodeDom.Compiler;
+using Crow;
+using System.Text.RegularExpressions;
+
+namespace Crow.Coding {
+ public class Project : IValueChange {
+ #region IValueChange implementation
+ public event EventHandler<ValueChangeEventArgs> ValueChanged;
+ public virtual void NotifyValueChanged (string MemberName, object _value) {
+ ValueChanged.Raise (this, new ValueChangeEventArgs (MemberName, _value));
+ }
+ #endregion
+
+ bool isLoaded = false;
+ bool isExpanded;
+ XmlDocument xmlDoc;
+ XmlNode nodeProject;
+ XmlNode nodeProps;
+ XmlNodeList nodesItems;
+ SolutionProject solutionProject;
+ Crow.Command cmdSave, cmdOpen, cmdCompile, cmdSetAsStartProj, cmdNewFile;
+
+ #region CTOR
+ public Project (Solution sol, SolutionProject sp) {
+ solutionProject = sp;
+
+ solution = sol;
+
+ cmdSave = new Crow.Command (new Action (() => Save ())) { Caption = "Save", Icon = new SvgPicture ("#CrowIDE.icons.save.svg"), CanExecute = true };
+ cmdOpen = new Crow.Command (new Action (() => Load ())) { Caption = "Open", Icon = new SvgPicture ("#CrowIDE.icons.open.svg"), CanExecute = false };
+ cmdCompile = new Crow.Command (new Action (() => Compile ())) {
+ Caption = "Compile",
+ Icon = "#CrowIDE.icons.compile.svg"
+ };
+ cmdSetAsStartProj = new Crow.Command (new Action (() => setAsStartupProject ())) {
+ Caption = "Set as Startup Project"
+ };
+ cmdNewFile = new Crow.Command (new Action (() => AddNewFile ())) {
+ Caption = "Add New File",
+ Icon = new SvgPicture ("#CrowIDE.icons.blank-file.svg"),
+ CanExecute = true
+ };
+
+ Commands = new List<Crow.Command> (new Crow.Command[] { cmdOpen, cmdSave, cmdSetAsStartProj, cmdCompile, cmdNewFile });
+
+ Load ();
+ }
+ #endregion
+
+ public Solution solution;
+ public List<Crow.Command> Commands;
+ public CompilerResults CompilationResults;
+ public List<Project> dependantProjects = new List<Project> ();
+ public Project ParentProject = null;
+ List<ProjectNode> rootItems;
+ List<ProjectNode> flattenNodes;
+
+ public string Name {
+ get { return solutionProject.ProjectName; }
+ }
+ public bool IsLoaded {
+ get { return isLoaded; }
+ set {
+ if (isLoaded == value)
+ return;
+ isLoaded = value;
+ NotifyValueChanged ("IsLoaded", isLoaded);
+ }
+ }
+ public bool IsExpanded {
+ get { return isExpanded; }
+ set {
+ if (value == isExpanded)
+ return;
+ isExpanded = value;
+ NotifyValueChanged ("IsExpanded", isExpanded);
+ }
+ }
+ public bool IsStartupProject {
+ get { return solution.StartupProject == this; }
+ }
+ public string Path {
+ get { return System.IO.Path.Combine (solution.SolutionFolder, solutionProject.RelativePath.Replace ('\\', '/')); }
+ }
+ public string RootDir {
+ get { return System.IO.Path.GetDirectoryName (Path); }
+ }
+
+
+
+ public List<ProjectNode> RootItems {
+ get { return rootItems; }
+ }
+
+ void buildTreeNodes () {
+ ProjectNode root = new ProjectNode (this, ItemType.VirtualGroup, RootNamespace);
+ List<ProjectItem> items = new List<ProjectItem> ();
+ foreach (XmlNode i in nodesItems) {
+ foreach (XmlNode f in i.ChildNodes) {
+ items.Add (new ProjectItem (this, f));
+ }
+ }
+
+ flattenNodes = new List<ProjectNode> ();
+
+ ProjectNode refs = new ProjectNode (this, ItemType.ReferenceGroup, "References");
+ root.AddChild (refs);
+
+ foreach (ProjectItem pn in items) {
+ switch (pn.Type) {
+ case ItemType.Reference:
+ refs.AddChild (pn);
+ flattenNodes.Add (pn);
+ break;
+ case ItemType.ProjectReference:
+ ProjectReference pr = new ProjectReference (pn);
+ refs.AddChild (pr);
+ flattenNodes.Add (pr);
+ break;
+ case ItemType.Compile:
+ case ItemType.None:
+ case ItemType.EmbeddedResource:
+ ProjectNode curNode = root;
+ string[] folds = pn.Path.Split ('/');
+ for (int i = 0; i < folds.Length - 1; i++) {
+ ProjectNode nextNode = curNode.ChildNodes.FirstOrDefault (n => n.DisplayName == folds[i] && n.Type == ItemType.VirtualGroup);
+ if (nextNode == null) {
+ nextNode = new ProjectNode (this, ItemType.VirtualGroup, folds[i]);
+ curNode.AddChild (nextNode);
+ }
+ curNode = nextNode;
+ }
+ ProjectNode f = null;
+ switch (pn.Extension) {
+ /*case ".cs":
+ f = new CSProjectFile (pn);
+ break;*/
+ case ".crow":
+ case ".template":
+ case ".goml":
+ case ".itemp":
+ case ".imtl":
+ f = new ImlProjectItem (pn);
+ break;
+ case ".style":
+ f = new StyleProjectItem (pn);
+ break;
+ default:
+ f = new ProjectFile (pn);
+ break;
+ }
+ curNode.AddChild (f);
+ flattenNodes.Add (f);
+ break;
+ }
+ }
+ root.SortChilds ();
+
+ rootItems = root.ChildNodes;
+ }
+
+ #region Project properties
+ public string ToolsVersion {
+ get { return nodeProject?.Attributes["ToolsVersion"]?.Value; }
+ }
+ public string DefaultTargets {
+ get { return nodeProject?.Attributes["DefaultTargets"]?.Value; }
+ }
+ public string ProjectGuid {
+ get { return solutionProject.ProjectGuid; }
+ }
+ public string AssemblyName {
+ get { return nodeProps["AssemblyName"]?.InnerText; }
+ }
+ public string OutputType {
+ get { return nodeProps["OutputType"]?.InnerText; }
+ }
+ public string RootNamespace {
+ get { return nodeProps["RootNamespace"]?.InnerText; }
+ }
+ public bool AllowUnsafeBlocks {
+ get {
+ return nodeProps["AllowUnsafeBlocks"] == null ? false :
+ bool.Parse (nodeProps["AllowUnsafeBlocks"]?.InnerText);
+ }
+ }
+ public bool NoStdLib {
+ get {
+ return nodeProps["NoStdLib"] == null ? false :
+ bool.Parse (nodeProps["NoStdLib"]?.InnerText);
+ }
+ }
+ public bool TreatWarningsAsErrors {
+ get {
+ return nodeProps["TreatWarningsAsErrors"] == null ? false :
+ bool.Parse (nodeProps["TreatWarningsAsErrors"]?.InnerText);
+ }
+ }
+ public bool SignAssembly {
+ get { return bool.Parse (nodeProps["SignAssembly"]?.InnerText); }
+ }
+ public string TargetFrameworkVersion {
+ get { return nodeProps["TargetFrameworkVersion"]?.InnerText; }
+ }
+ public string Description {
+ get { return nodeProps["Description"]?.InnerText; }
+ }
+ public string OutputPath {
+ get { return nodeProps["OutputPath"]?.InnerText; }
+ }
+ public string IntermediateOutputPath {
+ get { return nodeProps["IntermediateOutputPath"]?.InnerText; }
+ }
+ public string StartupObject {
+ get { return nodeProps["StartupObject"]?.InnerText; }
+ }
+ public bool DebugSymbols {
+ get { return nodeProps["DebugSymbols"] == null ? false : bool.Parse (nodeProps["DebugSymbols"]?.InnerText); }
+ }
+ public int WarningLevel {
+ get { return nodeProps["WarningLevel"] == null ? 0 : int.Parse (nodeProps["WarningLevel"]?.InnerText); }
+ }
+
+ #endregion
+
+
+ public void AddNewFile () {
+ Window.Show (CrowIDE.MainIFace, "#CrowIDE.ui.NewFile.crow", true).DataSource = this;
+ }
+
+ public void Load () {
+
+ xmlDoc = new XmlDocument ();
+ using (Stream ins = new FileStream (this.Path, FileMode.Open)) {
+ xmlDoc.Load (new XmlTextReader (ins) { Namespaces = false });
+ }
+
+ nodeProject = xmlDoc.SelectSingleNode ("Project");
+ XmlNodeList nodesProps = xmlDoc.SelectNodes ("/Project/PropertyGroup");
+
+ foreach (XmlNode n in nodesProps) {
+ if (n.Attributes["Condition"] == null)
+ nodeProps = n;
+ }
+ nodesItems = xmlDoc.SelectNodes ("/Project/ItemGroup");
+
+ if (ProjectGuid != solutionProject.ProjectGuid)
+ throw new Exception ("Project GUID not matching with solution");
+
+ buildTreeNodes ();
+
+ IsLoaded = true;
+ }
+
+ public void Save () {
+
+ }
+
+ void setAsStartupProject () {
+ solution.StartupProject = this;
+ }
+ static Regex regexDirTokens = new Regex (@"\$\(([^\)]*)\)|([^\$]*)");
+
+ string getDirectoryWithTokens (string dir) {
+ Match m = regexDirTokens.Match (dir);
+ string tmp = "";
+ while (m.Success) {
+ if (m.Value == @"$(SolutionDir)")
+ tmp = System.IO.Path.Combine (tmp, solution.SolutionFolder);
+ else if (m.Value == @"$(Configuration)")
+ tmp = System.IO.Path.Combine (tmp, "Debug");
+ else
+ tmp = System.IO.Path.Combine (tmp, m.Value);
+
+ if (tmp.EndsWith (@"\") || tmp.EndsWith (@"/"))
+ tmp = tmp.Remove (tmp.Length - 1);
+
+ m = m.NextMatch ();
+ }
+ return tmp;
+ }
+ public string Compile () {
+ if (ParentProject != null)
+ ParentProject.Compile ();
+
+ CSharpCodeProvider cp = new CSharpCodeProvider ();
+ CompilerParameters parameters = new CompilerParameters ();
+
+ foreach (ProjectReference pr in flattenNodes.OfType<ProjectReference> ()) {
+ Project p = solution.Projects.FirstOrDefault (pp => pp.ProjectGuid == pr.ProjectGUID);
+ if (p == null)
+ throw new Exception ("referenced project not found");
+ parameters.ReferencedAssemblies.Add (p.Compile ());
+ }
+
+ string outputDir = getDirectoryWithTokens (this.OutputPath);
+ string objDir = getDirectoryWithTokens (this.IntermediateOutputPath);
+
+ Directory.CreateDirectory (outputDir);
+ Directory.CreateDirectory (objDir);
+
+ parameters.OutputAssembly = System.IO.Path.Combine (outputDir, this.AssemblyName);
+
+ // True - exe file generation, false - dll file generation
+ if (this.OutputType == "Library") {
+ parameters.GenerateExecutable = false;
+ parameters.CompilerOptions += " /target:library";
+ parameters.OutputAssembly += ".dll";
+ } else {
+ parameters.GenerateExecutable = true;
+ parameters.CompilerOptions += " /target:exe";
+ parameters.OutputAssembly += ".exe";
+ parameters.MainClass = this.StartupObject;
+ }
+
+ parameters.GenerateInMemory = false;
+ parameters.IncludeDebugInformation = this.DebugSymbols;
+ parameters.TreatWarningsAsErrors = this.TreatWarningsAsErrors;
+ parameters.WarningLevel = this.WarningLevel;
+ parameters.CompilerOptions += " /noconfig";
+ if (this.AllowUnsafeBlocks)
+ parameters.CompilerOptions += " /unsafe";
+ parameters.CompilerOptions += " /delaysign+";
+ parameters.CompilerOptions += " /debug:full /debug+";
+ parameters.CompilerOptions += " /optimize-";
+ parameters.CompilerOptions += " /define:\"DEBUG;TRACE\"";
+ parameters.CompilerOptions += " /nostdlib";
+
+
+
+ foreach (ProjectItem pi in flattenNodes.Where (p => p.Type == ItemType.Reference)) {
+
+ if (string.IsNullOrEmpty (pi.HintPath)) {
+ parameters.CompilerOptions += " /reference:/usr/lib/mono/4.5/" + pi.Path + ".dll";
+ continue;
+ }
+ parameters.ReferencedAssemblies.Add (pi.Path);
+ string fullHintPath = System.IO.Path.GetFullPath (System.IO.Path.Combine (RootDir, pi.HintPath.Replace ('\\', '/')));
+ if (File.Exists (fullHintPath)) {
+ string outPath = System.IO.Path.Combine (outputDir, System.IO.Path.GetFileName (fullHintPath));
+ if (!File.Exists (outPath))
+ File.Copy (fullHintPath, outPath);
+ }
+ }
+ parameters.CompilerOptions += " /reference:/usr/lib/mono/4.5/System.Core.dll";
+ parameters.CompilerOptions += " /reference:/usr/lib/mono/4.5/mscorlib.dll";
+ //parameters.ReferencedAssemblies.Add ("System.Core");
+ //parameters.ReferencedAssemblies.Add ("mscorlib.dll");
+
+
+ IEnumerable<ProjectFile> pfs = flattenNodes.OfType<ProjectFile> ();
+
+ foreach (ProjectFile pi in pfs.Where (p => p.Type == ItemType.EmbeddedResource)) {
+
+ string absPath = pi.AbsolutePath;
+ string logicName = pi.LogicalName;
+ if (string.IsNullOrEmpty (logicName))
+ parameters.CompilerOptions += string.Format (" /resource:{0},{1}", absPath, this.Name + "." + pi.Path.Replace ('/', '.'));
+ else
+ parameters.CompilerOptions += string.Format (" /resource:{0},{1}", absPath, logicName);
+ }
+ foreach (ProjectFile pi in pfs.Where (p => p.Type == ItemType.None)) {
+ if (pi.CopyToOutputDirectory == CopyToOutputState.Never)
+ continue;
+ string source = pi.AbsolutePath;
+ string target = System.IO.Path.Combine (outputDir, pi.Path);
+ Directory.CreateDirectory (System.IO.Path.GetDirectoryName (target));
+
+ if (File.Exists (target)) {
+ if (pi.CopyToOutputDirectory == CopyToOutputState.PreserveNewest) {
+ if (DateTime.Compare (
+ System.IO.File.GetLastWriteTime (source),
+ System.IO.File.GetLastWriteTime (target)) < 0)
+ continue;
+ }
+ File.Delete (target);
+ }
+ System.Diagnostics.Debug.WriteLine ("copy " + source + " to " + target);
+ File.Copy (source, target);
+ }
+ string[] files = pfs.Where (p => p.Type == ItemType.Compile).Select (p => p.AbsolutePath).ToArray ();
+
+ System.Diagnostics.Debug.WriteLine ("---- start compilation of :" + parameters.OutputAssembly);
+ System.Diagnostics.Debug.WriteLine (parameters.CompilerOptions);
+
+ CompilationResults = cp.CompileAssemblyFromFile (parameters, files);
+
+ solution.UpdateErrorList ();
+
+ return parameters.OutputAssembly;
+ }
+
+ public bool TryGetProjectFileFromAbsolutePath (string absolutePath, out ProjectFile pi) {
+ pi = flattenNodes.OfType<ProjectFile> ().FirstOrDefault
+ (pp => pp.AbsolutePath == absolutePath);
+ return pi != null;
+ }
+ public bool TryGetProjectFileFromPath (string path, out ProjectFile pi) {
+ if (path.StartsWith ("#", StringComparison.Ordinal))
+ pi = flattenNodes.OfType<ProjectFile> ().FirstOrDefault
+ (pp => pp.Type == ItemType.EmbeddedResource && pp.ResourceID == path.Substring (1));
+ else
+ pi = flattenNodes.OfType<ProjectFile> ().FirstOrDefault (pp => pp.Path == path);
+
+ if (pi != null)
+ return true;
+
+ foreach (ProjectReference pr in flattenNodes.OfType<ProjectReference> ()) {
+ Project p = solution.Projects.FirstOrDefault (pp => pp.ProjectGuid == pr.ProjectGUID);
+ if (p == null)
+ throw new Exception ("referenced project not found");
+ if (p.TryGetProjectFileFromPath (path, out pi))
+ return true;
+ }
+ //TODO: search referenced assemblies
+ return false;
+ }
+
+ public void GetDefaultTemplates () {
+ IEnumerable<ProjectFile> tmpFiles =
+ flattenNodes.OfType<ProjectFile> ().Where (pp => pp.Extension == ".template");
+
+ foreach (ProjectFile pi in tmpFiles.Where (
+ pp => pp.Type == ItemType.None && pp.CopyToOutputDirectory != CopyToOutputState.Never)) {
+
+ string clsName = System.IO.Path.GetFileNameWithoutExtension (pi.Path);
+ if (solution.DefaultTemplates.ContainsKey (clsName))
+ continue;
+ solution.DefaultTemplates[clsName] = pi.AbsolutePath;
+ }
+ foreach (ProjectFile pi in tmpFiles.Where (pp => pp.Type == ItemType.EmbeddedResource)) {
+ string resId = pi.ResourceID;
+ string clsName = resId.Substring (0, resId.Length - 9);
+ if (solution.DefaultTemplates.ContainsKey (clsName))
+ continue;
+ solution.DefaultTemplates[clsName] = pi.Path;
+ }
+
+ foreach (Project p in ReferencedProjects)
+ p.GetDefaultTemplates ();
+ }
+ // void searchTemplatesIn(Assembly assembly){
+ // if (assembly == null)
+ // return;
+ // foreach (string resId in assembly
+ // .GetManifestResourceNames ()
+ // .Where (r => r.EndsWith (".template", StringComparison.OrdinalIgnoreCase))) {
+ // string clsName = resId.Substring (0, resId.Length - 9);
+ // if (DefaultTemplates.ContainsKey (clsName))
+ // continue;
+ // DefaultTemplates[clsName] = "#" + resId;
+ // }
+ // }
+
+ public List<Project> ReferencedProjects {
+ get {
+ List<Project> tmp = new List<Project> ();
+ foreach (ProjectReference pr in flattenNodes.OfType<ProjectReference> ()) {
+ Project p = solution.Projects.FirstOrDefault (pp => pp.ProjectGuid == pr.ProjectGUID);
+ if (p != null)
+ tmp.Add (p);
+ }
+ return tmp;
+ }
+ }
+
+ public void GetStyling () {
+ try {
+ foreach (ProjectFile pi in flattenNodes.OfType<ProjectFile> ().Where (pp => pp.Type == ItemType.EmbeddedResource && pp.Extension == ".style")) {
+ using (Stream s = new MemoryStream (System.Text.Encoding.UTF8.GetBytes (pi.Source))) {
+ new StyleReader (solution.Styling, s, pi.ResourceID);
+ }
+ }
+ } catch (Exception ex) {
+ Console.WriteLine (ex.ToString ());
+ }
+ foreach (ProjectReference pr in flattenNodes.OfType<ProjectReference> ()) {
+ Project p = solution.Projects.FirstOrDefault (pp => pp.ProjectGuid == pr.ProjectGUID);
+ if (p == null)
+ throw new Exception ("referenced project not found");
+ p.GetStyling ();
+ }
+
+ //TODO:get styling from referenced assemblies
+ }
+ }
+}
+
--- /dev/null
+//
+// ProjectNodes.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using Microsoft.CodeAnalysis;
+using Microsoft.CodeAnalysis.CSharp;
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+
+namespace Crow.Coding
+{
+ public class CSProjectFile : ProjectFile
+ {
+ CSharpSyntaxTree tree;
+
+
+ #region CTOR
+ public CSProjectFile (ProjectItem pi) : base (pi){
+ }
+ #endregion
+
+ public override void UpdateSource(object sender, string newSrc)
+ {
+ base.UpdateSource(sender, newSrc);
+
+ tree = (CSharpSyntaxTree)CSharpSyntaxTree.ParseText (Source, CSharpParseOptions.Default);
+ }
+
+ public override void Open () {
+ base.Open ();
+
+ tree = (CSharpSyntaxTree)CSharpSyntaxTree.ParseText (Source, CSharpParseOptions.Default);
+
+ CompilationUnitSyntax root = (CompilationUnitSyntax)tree.GetRoot ();
+ MemberDeclarationSyntax firstMember = root.Members [0];
+
+ Console.WriteLine ( firstMember.GetType().FullName);
+
+ SyntaxToken tok = root.GetFirstToken();
+
+ while (tok.Value != null) {
+ Console.Write (tok.Text);
+ tok = tok.GetNextToken (true,true);
+ }
+ Console.Out.Flush ();
+ }
+
+
+ }
+}
+
--- /dev/null
+//
+// ProjectNodes.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml;
+using System.IO;
+using Crow;
+using System.Threading;
+
+namespace Crow.Coding
+{
+ public class ImlProjectItem : ProjectFile
+ {
+ #region CTOR
+ public ImlProjectItem (ProjectItem pi) : base (pi){
+ }
+ #endregion
+
+ Widget instance;
+ Measure designWidth, designHeight;
+
+ /// <summary>
+ /// instance created with an instantiator from the source by a DesignInterface,
+ /// for now, the one in ImlVisualEditor
+ /// </summary>
+ public Widget Instance {
+ get { return instance; }
+ set {
+ if (instance == value)
+ return;
+ instance = value;
+ NotifyValueChanged ("Instance", instance);
+ }
+ }
+
+ public Measure DesignWidth {
+ get { return designWidth; }
+ set {
+ if (designWidth == value)
+ return;
+ designWidth = value;
+ NotifyValueChanged ("DesignWidth", designWidth);
+ }
+ }
+ public Measure DesignHeight {
+ get { return designHeight; }
+ set {
+ if (designHeight == value)
+ return;
+ designHeight = value;
+ NotifyValueChanged ("DesignHeight", designHeight);
+ }
+ }
+
+
+ public List<Widget> GraphicTree {
+ get { return new List<Widget> (new Widget[] {instance}); }
+ }
+
+ void GTView_SelectedItemChanged (object sender, SelectionChangeEventArgs e){
+ SelectedItem = e.NewValue;
+ }
+ }
+}
+
--- /dev/null
+//
+// ProjectNodes.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Threading;
+using System.Xml;
+
+namespace Crow.Coding {
+ public class ProjectFile : ProjectItem {
+ bool isOpened = false;
+ DateTime accessTime;
+ string source;
+ string origSource;
+ object selectedItem;
+ int curLine, curColumn;
+
+ internal ReaderWriterLockSlim srcEditMtx = new ReaderWriterLockSlim();
+
+ public Dictionary<object, bool> RegisteredEditors = new Dictionary<object, bool>();
+ List<String> undoStack = new List<string>();
+ List<String> redoStack = new List<string>();
+
+ public Crow.Command cmdSave, cmdSaveAs, cmdOpen, cmdClose, cmdUndo, cmdRedo;
+
+ void initCommands (){
+ cmdSave = new Crow.Command (new Action (() => Save ()))
+ { Caption = "Save", Icon = new SvgPicture ("#CrowIDE.icons.save.svg"), CanExecute = false };
+ cmdSaveAs = new Crow.Command (new Action (() => SaveAs ()))
+ { Caption = "Save As ..", Icon = new SvgPicture ("#CrowIDE.icons.save.svg"), CanExecute = false };
+ cmdOpen = new Crow.Command (new Action (() => Open ()))
+ { Caption = "Open", Icon = new SvgPicture ("#CrowIDE.icons.open.svg"), CanExecute = true };
+ cmdClose = new Crow.Command (new Action (() => OnQueryClose (this,null)))
+ { Caption = "Close", Icon = new SvgPicture ("#CrowIDE.icons.open.svg"), CanExecute = false };
+ cmdUndo = new Crow.Command (new Action (() => Undo (null)))
+ { Caption = "Undo", Icon = new SvgPicture ("#CrowIDE.icons.undo.svg"), CanExecute = false };
+ cmdRedo = new Crow.Command (new Action (() => Redo (null)))
+ { Caption = "Redo", Icon = new SvgPicture ("#CrowIDE.icons.redo.svg"), CanExecute = false };
+
+ Commands.Insert (0, cmdOpen);
+ Commands.Insert (1, cmdSave);
+ Commands.Insert (2, cmdSaveAs);
+ Commands.Insert (3, cmdUndo);
+ Commands.Insert (4, cmdRedo);
+ Commands.Add (cmdClose);
+ }
+ public ProjectFile () {
+ initCommands();
+ }
+ public ProjectFile (ProjectItem pi)
+ : base (pi.Project, pi.node) {
+ initCommands ();
+ }
+
+ public string ResourceID {
+ get {
+ return Type != ItemType.EmbeddedResource ? null :
+ node.SelectSingleNode ("LogicalName") == null ?
+ Project.Name + "." + Path.Replace ('/', '.') :
+ LogicalName;
+ }
+ }
+ public string LogicalName {
+ get {
+ return node.SelectSingleNode ("LogicalName")?.InnerText;
+ }
+ }
+ public bool IsOpened {
+ get { return isOpened; }
+ set {
+ if (isOpened == value)
+ return;
+ isOpened = value;
+
+ cmdOpen.CanExecute = !isOpened;
+ cmdClose.CanExecute = isOpened;
+ cmdSave.CanExecute = isOpened && IsDirty;
+
+ if (isOpened)
+ Project.solution.OpenItem (this);
+ else
+ Project.solution.CloseItem (this);
+
+ NotifyValueChanged ("IsOpened", isOpened);
+ }
+ }
+
+ public void UnregisterEditor (object editor){
+ lock(RegisteredEditors){
+ RegisteredEditors.Remove (editor);
+ }
+ }
+ public void RegisterEditor (object editor) {
+ lock(RegisteredEditors){
+ RegisteredEditors.Add (editor, false);
+ }
+ }
+ public virtual void UpdateSource (object sender, string newSrc){
+ System.Diagnostics.Debug.WriteLine ("update source by {0}", sender);
+ Source = newSrc;
+ signalOtherRegisteredEditors (sender);
+ }
+ public void SignalEditorOfType<T> (){
+ lock (RegisteredEditors) {
+ object[] keys = RegisteredEditors.Keys.ToArray ();
+ foreach (object ed in keys) {
+ T editor = (T)ed;
+ if (editor == null)
+ continue;
+ RegisteredEditors [editor] = false;
+ break;
+ }
+ }
+ }
+ protected void signalOtherRegisteredEditors (object sender) {
+ lock (RegisteredEditors) {
+ object[] keys = RegisteredEditors.Keys.ToArray ();
+ foreach (object editor in keys) {
+ if (editor != sender)
+ RegisteredEditors [editor] = false;
+ }
+ }
+ }
+ public string Source {
+ get {
+ if (!IsOpened) {
+ using (StreamReader sr = new StreamReader (AbsolutePath))
+ source = sr.ReadToEnd ();
+
+ } else {
+ if (DateTime.Compare (
+ accessTime,
+ System.IO.File.GetLastWriteTime (AbsolutePath)) < 0)
+ Console.WriteLine ("File has been modified outside CrowIDE");
+ }
+ return source;
+ }
+ set {
+ if (source == value)
+ return;
+
+ srcEditMtx.EnterWriteLock ();
+
+ undoStack.Add (source);
+ cmdUndo.CanExecute = true;
+ redoStack.Clear ();
+ cmdRedo.CanExecute = false;
+ source = value;
+
+ NotifyValueChanged ("Source", source);
+ NotifyValueChanged ("IsDirty", IsDirty);
+
+ cmdSave.CanExecute = cmdSaveAs.CanExecute = IsDirty;
+
+ srcEditMtx.ExitWriteLock ();
+ }
+ }
+ public bool IsDirty {
+ get { return source != origSource; }
+ }
+ public int CurrentColumn{
+ get { return curColumn; }
+ set {
+ if (curColumn == value)
+ return;
+ curColumn = value;
+ NotifyValueChanged ("CurrentColumn", curColumn);
+ }
+ }
+ public int CurrentLine{
+ get { return curLine; }
+ set {
+ if (curLine == value)
+ return;
+ curLine = value;
+ NotifyValueChanged ("CurrentLine", curLine);
+ }
+ }
+
+ public object SelectedItem {
+ get { return selectedItem; }
+ set {
+ if (selectedItem == value)
+ return;
+ selectedItem= value;
+ Project.solution.SelectedItemElement = value;
+ NotifyValueChanged ("SelectedItem", selectedItem);
+ }
+ }
+
+ public CopyToOutputState CopyToOutputDirectory {
+ get {
+ XmlNode xn = node.SelectSingleNode ("CopyToOutputDirectory");
+ return xn == null ? CopyToOutputState.Never :
+ (CopyToOutputState)Enum.Parse (typeof(CopyToOutputState), xn.InnerText, true);
+ }
+ }
+
+ public virtual void Open () {
+ accessTime = System.IO.File.GetLastWriteTime (AbsolutePath);
+ using (StreamReader sr = new StreamReader (AbsolutePath)) {
+ source = sr.ReadToEnd ();
+ }
+ origSource = source;
+ IsOpened = true;
+ NotifyValueChanged ("IsDirty", false);
+ }
+ public virtual void Save () {
+ if (!IsDirty)
+ return;
+ using (StreamWriter sw = new StreamWriter (AbsolutePath)) {
+ sw.Write (source);
+ }
+ origSource = source;
+ NotifyValueChanged ("IsDirty", false);
+ }
+ public virtual void SaveAs () {
+ if (!IsDirty)
+ return;
+ using (StreamWriter sw = new StreamWriter (AbsolutePath)) {
+ sw.Write (source);
+ }
+ origSource = source;
+ NotifyValueChanged ("IsDirty", false);
+ }
+ public void Close () {
+ origSource = source = null;
+ IsOpened = false;
+ }
+ public void Undo(object sender){
+ undo();
+ signalOtherRegisteredEditors (sender);
+ }
+ public void Redo(object sender){
+ redo();
+ signalOtherRegisteredEditors (sender);
+ }
+
+ void undo () {
+ if (undoStack.Count == 0)
+ return;
+
+ srcEditMtx.EnterWriteLock ();
+ string step = undoStack [undoStack.Count -1];
+ redoStack.Add (source);
+ cmdRedo.CanExecute = true;
+ undoStack.RemoveAt(undoStack.Count -1);
+
+ source = step;
+
+ NotifyValueChanged ("Source", source);
+ NotifyValueChanged ("IsDirty", IsDirty);
+ cmdSave.CanExecute = IsDirty;
+
+ if (undoStack.Count == 0)
+ cmdUndo.CanExecute = false;
+ srcEditMtx.ExitWriteLock ();
+ }
+
+ void redo () {
+ if (redoStack.Count == 0)
+ return;
+ srcEditMtx.EnterWriteLock ();
+ string step = redoStack [redoStack.Count -1];
+ undoStack.Add (source);
+ cmdUndo.CanExecute = true;
+ redoStack.RemoveAt(redoStack.Count -1);
+ source = step;
+ NotifyValueChanged ("Source", source);
+ NotifyValueChanged ("IsDirty", IsDirty);
+ cmdSave.CanExecute = IsDirty;
+
+ if (redoStack.Count == 0)
+ cmdRedo.CanExecute = false;
+ srcEditMtx.ExitWriteLock ();
+
+ }
+
+ public void onDoubleClick (object sender, MouseButtonEventArgs e){
+ if (IsOpened)
+ return;
+ Open ();
+ }
+
+ public void onClick (object sender, MouseButtonEventArgs e){
+ IsSelected = true;
+ }
+ public void OnQueryClose (object sender, EventArgs e){
+ if (IsDirty) {
+ MessageBox mb = MessageBox.ShowModal (CrowIDE.MainIFace,
+ MessageBox.Type.YesNoCancel, $"{DisplayName} has unsaved changes.\nSave it now?");
+ mb.Yes += (object _sender, EventArgs _e) => { Save (); Close (); };
+ mb.No += (object _sender, EventArgs _e) => Close();
+ } else
+ Close ();
+ }
+ }
+}
+
--- /dev/null
+//
+// ProjectNodes.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml;
+using System.IO;
+using Crow;
+using System.Threading;
+
+namespace Crow.Coding
+{
+ public class ProjectItem : ProjectNode {
+ #region CTOR
+ public ProjectItem() {}
+ public ProjectItem (Project project, XmlNode _node) : base (project){
+ node = _node;
+ }
+ #endregion
+
+ public XmlNode node;
+
+ public override Picture Icon {
+ get {
+ switch (Extension)
+ {
+ case ".cs":
+ return new SvgPicture("#CrowIDE.icons.cs-file.svg");
+ case ".crow":
+ return new SvgPicture("#CrowIDE.icons.xml-file.svg");
+ case ".xml":
+ return new SvgPicture("#CrowIDE.icons.xml-file.svg");
+ default:
+ return base.Icon;
+ }
+ }
+ }
+
+ public string Extension {
+ get { return System.IO.Path.GetExtension (Path); }
+ }
+ public string Path {
+ get {
+ return node.Attributes["Include"]?.Value.Replace('\\','/');
+ }
+ }
+ public string AbsolutePath {
+ get {
+ return System.IO.Path.Combine (Project.RootDir, Path);
+ }
+ }
+ public override ItemType Type {
+ get {
+ return (ItemType)Enum.Parse (typeof(ItemType), node.Name, true);
+ }
+ }
+ public override string DisplayName {
+ get {
+ return Type == ItemType.Reference ?
+ Path :
+ Path.Split ('/').LastOrDefault();
+ }
+ }
+ public string HintPath {
+ get { return node.SelectSingleNode ("HintPath")?.InnerText; }
+ }
+
+ public override bool IsSelected {
+ get {
+ return isSelected;
+ }
+ set {
+ if (value == isSelected)
+ return;
+
+ isSelected = value;
+
+ NotifyValueChanged ("IsSelected", isSelected);
+
+ if (isSelected) {
+ Project.solution.SelectedItem = this;
+ Project.IsExpanded = true;
+ ProjectNode pn = Parent;
+ while (pn != null) {
+ pn.IsExpanded = true;
+ pn = pn.Parent;
+ }
+ }
+ }
+ }
+ }
+}
+
--- /dev/null
+//
+// ProjectNodes.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml;
+using System.IO;
+using Crow;
+using System.Threading;
+
+namespace Crow.Coding
+{
+ public enum ItemType {
+ ReferenceGroup,
+ Reference,
+ ProjectReference,
+ VirtualGroup,
+ Folder,
+ None,
+ Compile,
+ EmbeddedResource,
+ }
+ public enum CopyToOutputState {
+ Never,
+ Always,
+ PreserveNewest
+ }
+ public class ProjectNode : IValueChange
+ {
+ #region IValueChange implementation
+ public event EventHandler<ValueChangeEventArgs> ValueChanged;
+ public virtual void NotifyValueChanged(string MemberName, object _value)
+ {
+ ValueChanged.Raise(this, new ValueChangeEventArgs(MemberName, _value));
+ }
+ #endregion
+
+ #region CTOR
+ public ProjectNode (Project project, ItemType _type, string _name) : this(project){
+ type = _type;
+ name = _name;
+ initCommands ();
+ }
+ public ProjectNode (Project project){
+ Project = project;
+ initCommands ();
+ }
+ public ProjectNode (){
+ initCommands ();
+ }
+ #endregion
+
+ void initCommands () {
+ Commands = new List<Crow.Command> ();
+ }
+
+ ProjectNode parent;
+ bool isExpanded;
+ protected bool isSelected;
+ ItemType type;
+ string name;
+ List<ProjectNode> childNodes = new List<ProjectNode>();
+
+ public Project Project;
+ public List<Crow.Command> Commands;//list of command available for that node
+
+ public virtual Crow.Picture Icon {
+ get {
+ switch (Type) {
+ case ItemType.Reference:
+ return new SvgPicture ("#Crow.Icons.assembly.svg");
+ case ItemType.ProjectReference:
+ return new SvgPicture("#Crow.Icons.projectRef.svg");
+ default:
+ return new SvgPicture("#CrowIDE.icons.blank-file.svg");
+ }
+ }
+ }
+ public ProjectNode Parent {
+ get { return parent; }
+ set { parent = value; }
+ }
+ public virtual ItemType Type {
+ get { return type; }
+ }
+ public virtual string DisplayName {
+ get { return name; }
+ }
+ public List<ProjectNode> ChildNodes {
+ get { return childNodes; }
+ }
+ public void AddChild (ProjectNode pn) {
+ childNodes.Add(pn);
+ pn.Parent = this;
+ }
+ public void RemoveChild (ProjectNode pn){
+ pn.Parent = null;
+ childNodes.Remove (pn);
+ }
+ public void SortChilds () {
+ foreach (ProjectNode pn in childNodes)
+ pn.SortChilds ();
+ childNodes = childNodes.OrderBy(c=>c.Type).ThenBy(cn=>cn.DisplayName).ToList();
+ }
+
+ public bool IsExpanded
+ {
+ get { return isExpanded; }
+ set
+ {
+ if (value == isExpanded)
+ return;
+ isExpanded = value;
+ NotifyValueChanged ("IsExpanded", isExpanded);
+ }
+ }
+ public virtual bool IsSelected
+ {
+ get { return isSelected; }
+ set
+ {
+ if (value == isSelected)
+ return;
+
+ isSelected = value;
+
+ NotifyValueChanged ("IsSelected", isSelected);
+ }
+ }
+ public override string ToString ()
+ {
+ return DisplayName;
+ }
+ }
+}
+
--- /dev/null
+//
+// ProjectNodes.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml;
+using System.IO;
+using Crow;
+using System.Threading;
+
+namespace Crow.Coding
+{
+ public class ProjectReference : ProjectItem {
+ public ProjectReference (ProjectItem pi) : base (pi.Project, pi.node){
+ }
+ public string ProjectGUID {
+ get {
+ return node.SelectSingleNode ("Project")?.InnerText;
+ }
+ }
+ public override string DisplayName {
+ get {
+ return node.SelectSingleNode ("Name").InnerText;
+ }
+ }
+ }
+}
+
--- /dev/null
+//
+// ProjectNodes.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml;
+using System.IO;
+using Crow;
+using System.Threading;
+
+namespace Crow.Coding
+{
+ public class StyleProjectItem : ProjectFile
+ {
+ #region CTOR
+ public StyleProjectItem (ProjectItem pi) : base (pi){
+ }
+ #endregion
+
+ public override void UpdateSource (object sender, string newSrc)
+ {
+ base.UpdateSource (sender, newSrc);
+ Project.solution.ReloadStyling ();
+ }
+ }
+}
+
--- /dev/null
+//
+// Solution.cs
+//
+//code taken in project https://sourceforge.net/projects/syncproj/
+// no licence info was included, I took the liberty to modify it.
+// Author:
+// tarmopikaro
+// 2018 Jean-Philippe Bruyère
+//MIT-licenced
+
+using Microsoft.Win32;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Xml.Serialization;
+using Crow;
+
+namespace Crow.Coding{
+ public class SolutionProject {
+ public string ProjectHostGuid;
+ public string ProjectName;
+ public string RelativePath;
+ public string ProjectGuid;
+ }
+ public class StyleItemContainer {
+ public object Value;
+ public string Name;
+ public StyleItemContainer(string name, object _value){
+ Name = name;
+ Value = _value;
+ }
+ }
+ public class StyleContainer : IValueChange {
+ #region IValueChange implementation
+ public event EventHandler<ValueChangeEventArgs> ValueChanged;
+ public virtual void NotifyValueChanged(string MemberName, object _value)
+ {
+ ValueChanged.Raise(this, new ValueChangeEventArgs(MemberName, _value));
+ }
+ #endregion
+
+ Style style;
+ bool isExpanded;
+
+ public string Name;
+ public List<StyleItemContainer> Items;
+ public bool IsExpanded
+ {
+ get { return isExpanded; }
+ set
+ {
+ if (value == isExpanded)
+ return;
+ isExpanded = value;
+ NotifyValueChanged ("IsExpanded", isExpanded);
+ }
+ }
+ public StyleContainer(string name, Style _style){
+ Name = name;
+ style = _style;
+
+ Items = new List<StyleItemContainer> ();
+ foreach (string k in style.Keys) {
+ Items.Add(new StyleItemContainer(k, style[k]));
+ }
+ }
+ }
+
+
+ /// <summary>
+/// .sln loaded into class.
+/// </summary>
+ public class Solution: IValueChange
+ {
+ #region IValueChange implementation
+ public event EventHandler<ValueChangeEventArgs> ValueChanged;
+ public virtual void NotifyValueChanged(string MemberName, object _value)
+ {
+ ValueChanged.Raise(this, new ValueChangeEventArgs(MemberName, _value));
+ }
+ #endregion
+
+ ProjectItem selectedItem = null;
+ object selectedItemElement = null;
+ ObservableList<ProjectItem> openedItems = new ObservableList<ProjectItem>();
+ ObservableList<GraphicObjectDesignContainer> toolboxItems;
+
+ public Dictionary<string, Style> Styling;
+ public Dictionary<string, string> DefaultTemplates;
+
+ public List<Style> Styles { get { return Styling.Values.ToList(); }}
+ public List<StyleContainer> StylingContainers;
+ //TODO: check project dependencies if no startup proj
+
+ public void ReloadStyling () {
+ Styling = new Dictionary<string, Style> ();
+ if (StartupProject != null)
+ StartupProject.GetStyling ();
+// StylingContainers = new List<StyleContainer> ();
+// foreach (string k in Styling.Keys) {
+// StylingContainers.Add (new StyleContainer (k, Styling [k]));
+// }
+ foreach (ImlProjectItem pf in openedItems.OfType<ImlProjectItem>()) {
+ pf.SignalEditorOfType<ImlVisualEditor> ();
+ }
+ }
+ public string[] AvailaibleStyles {
+ get { return Styling == null ? new string[] {} : Styling.Keys.ToArray();}
+ }
+ public void ReloadDefaultTemplates () {
+ DefaultTemplates = new Dictionary<string, string>();
+ if (StartupProject != null)
+ StartupProject.GetDefaultTemplates ();
+ }
+ public void updateToolboxItems () {
+ Type[] crowItems = AppDomain.CurrentDomain.GetAssemblies ()
+ .SelectMany (t => t.GetTypes ())
+ .Where (t => t.IsClass && !t.IsAbstract && t.IsPublic &&
+ t.Namespace == "Crow" && t.IsSubclassOf(typeof(Widget)) &&
+ t.GetCustomAttribute<DesignIgnore>(false) == null).ToArray ();
+ ToolboxItems = new ObservableList<GraphicObjectDesignContainer> ();
+ foreach (Type ci in crowItems) {
+ toolboxItems.AddElement(new GraphicObjectDesignContainer(ci));
+ }
+ }
+ public bool GetProjectFileFromPath (string path, out ProjectFile pi){
+ pi = null;
+ return StartupProject == null ? false :
+ StartupProject.TryGetProjectFileFromPath (path, out pi);
+ }
+
+ public ObservableList<ProjectItem> OpenedItems {
+ get { return openedItems; }
+ set {
+ if (openedItems == value)
+ return;
+ openedItems = value;
+ NotifyValueChanged ("OpenedItems", openedItems);
+ }
+ }
+
+ public ObservableList<GraphicObjectDesignContainer> ToolboxItems {
+ get { return toolboxItems; }
+ set {
+ if (toolboxItems == value)
+ return;
+ toolboxItems = value;
+ NotifyValueChanged ("ToolboxItems", toolboxItems);
+ }
+ }
+ public ProjectItem SelectedItem {
+ get { return selectedItem; }
+ set {
+ if (selectedItem == value)
+ return;
+ if (SelectedItem != null)
+ SelectedItem.IsSelected = false;
+ selectedItem = value;
+ if (SelectedItem != null)
+ SelectedItem.IsSelected = true;
+
+ UserConfig.Set ("SelectedProjItems", SelectedItem?.AbsolutePath);
+
+ NotifyValueChanged ("SelectedItem", selectedItem);
+ }
+ }
+ public object SelectedItemElement {
+ get { return selectedItemElement; }
+ set {
+ if (selectedItemElement == value)
+ return;
+ selectedItemElement = value;
+ NotifyValueChanged ("SelectedItemElement", selectedItemElement);
+ }
+ }
+ public string DisplayName {
+ get { return name; }
+ }
+ /// <summary>
+ /// Gets solution path
+ /// </summary>
+ public String SolutionFolder
+ {
+ get { return Path.GetDirectoryName (path); }
+ }
+
+// public System.CodeDom.Compiler.CompilerErrorCollection CompilationErrors {
+// get {
+// System.CodeDom.Compiler.CompilerErrorCollection tmp = Projects.SelectMany<Project>
+// (p => p.CompilationResults.Errors);
+// return tmp;
+// }
+// }
+ public List<System.CodeDom.Compiler.CompilerError> CompilerErrors {
+ get {
+ int errCount = 0;
+ for (int i = 0; i < Projects.Count; i++) {
+ if (Projects [i].CompilationResults != null)
+ errCount += Projects [i].CompilationResults.Errors.Count;
+ }
+ System.CodeDom.Compiler.CompilerError[] tmp = new System.CodeDom.Compiler.CompilerError[errCount];
+
+ int ptr = 0;
+ for (int i = 0; i < Projects.Count; i++) {
+ if (Projects [i].CompilationResults == null)
+ continue;
+ Projects [i].CompilationResults.Errors.CopyTo (tmp,ptr);
+ ptr += Projects [i].CompilationResults.Errors.Count;
+ }
+ return new List<System.CodeDom.Compiler.CompilerError>(tmp);
+ }
+ }
+
+ public void UpdateErrorList () {
+ NotifyValueChanged ("CompilerErrors", CompilerErrors);
+ }
+
+ void saveOpenedItemsInUserConfig (){
+ if (openedItems.Count == 0)
+ UserConfig.Set ("OpenedItems", "");
+ else
+ UserConfig.Set ("OpenedItems", openedItems.Select(o => o.AbsolutePath).Aggregate((a,b)=>a + ";" + b));
+ }
+ public void ReopenItemsSavedInUserConfig () {
+ string tmp = UserConfig.Get<string> ("OpenedItems");
+ string sel = UserConfig.Get<string> ("SelectedProjItems");
+ ProjectFile selItem = null;
+ if (string.IsNullOrEmpty (tmp))
+ return;
+ foreach (string f in tmp.Split(';')) {
+ foreach (Project p in Projects) {
+ ProjectFile pi;
+ if (p.TryGetProjectFileFromAbsolutePath (f, out pi)) {
+ pi.Open ();
+ if (pi.AbsolutePath == sel)
+ selItem = pi;
+ break;
+ }
+ }
+ }
+ if (selItem == null)
+ return;
+ selItem.IsSelected = true;
+ }
+
+ /*void onSelectedItemChanged (object sender, SelectionChangeEventArgs e){
+ SelectedItem = e.NewValue as ProjectItem;
+ UserConfig.Set ("SelectedProjItems", SelectedItem?.AbsolutePath);
+ }*/
+
+ public void OpenItem (ProjectItem pi) {
+ if (!openedItems.Contains (pi)) {
+ openedItems.AddElement (pi);
+ saveOpenedItemsInUserConfig ();
+ }
+ }
+ public void CloseItem (ProjectItem pi) {
+ openedItems.RemoveElement (pi);
+ saveOpenedItemsInUserConfig ();
+ }
+
+ public void CloseSolution () {
+ while (openedItems.Count > 0) {
+ openedItems.RemoveElement (openedItems [0]);
+ }
+ while (toolboxItems.Count > 0) {
+ toolboxItems.RemoveElement (toolboxItems [0]);
+ }
+ NotifyValueChanged ("Projects", null);
+ }
+ /// <summary>
+ /// Solution name
+ /// </summary>
+ String name;
+ /// <summary>
+ /// File path from where solution was loaded.
+ /// </summary>
+ [XmlIgnore]
+ String path;
+
+ /// <summary>
+ /// Solution name for debugger.
+ /// </summary>
+ [ExcludeFromCodeCoverage]
+ public override string ToString()
+ {
+ return "Solution: " + name;
+ }
+
+ #region Solution properties
+ double slnVer; // 11.00 - vs2010, 12.00 - vs2015
+
+ /// <summary>
+ /// Visual studio version information used for generation, for example 2010, 2012, 2015 and so on...
+ /// </summary>
+ public int fileFormatVersion;
+
+ /// <summary>
+ /// null for old visual studio's
+ /// </summary>
+ public String VisualStudioVersion;
+
+ /// <summary>
+ /// null for old visual studio's
+ /// </summary>
+ public String MinimumVisualStudioVersion;
+
+ /// <summary>
+ /// List of project included into solution.
+ /// </summary>
+ public List<Project> Projects = new List<Project>();
+
+ /// <summary>
+ /// List of configuration list, in form "{Configuration}|{Platform}", for example "Release|Win32".
+ /// To extract individual platforms / configuration list, use following functions.
+ /// </summary>
+ public List<String> configurations = new List<string>();
+
+ /// <summary>
+ /// Extracts platfroms supported by solution
+ /// </summary>
+ public IEnumerable<String> getPlatforms()
+ {
+ return configurations.Select(x => x.Split('|')[1]).Distinct();
+ }
+
+ /// <summary>
+ /// Extracts configuration names supported by solution
+ /// </summary>
+ public IEnumerable<String> getConfigurations()
+ {
+ return configurations.Select(x => x.Split('|')[0]).Distinct();
+ }
+ #endregion
+
+ public Configuration UserConfig;
+
+ public Project StartupProject {
+ get { return Projects?.FirstOrDefault (p => p.ProjectGuid == UserConfig.Get<string> ("StartupProject")); }
+ set {
+ if (value == StartupProject)
+ return;
+ if (value == null)
+ UserConfig.Set ("StartupProject", "");
+ else {
+ UserConfig.Set ("StartupProject", value.ProjectGuid);
+ value.NotifyValueChanged("IsStartupProject", true);
+ }
+ NotifyValueChanged ("StartupProject", StartupProject);
+ ReloadStyling ();
+ ReloadDefaultTemplates ();
+ }
+ }
+
+ #region CTOR
+ /// <summary>
+ /// Creates new solution.
+ /// </summary>
+ public Solution() {
+ }
+
+ #endregion
+
+
+ #region Loading from SLN file
+ /// <summary>
+ /// Loads visual studio .sln solution
+ /// </summary>
+ /// <exception cref="System.IO.FileNotFoundException">The file specified in path was not found.</exception>
+ static public Solution LoadSolution(string path)
+ {
+ Solution s = new Solution();
+ s.path = path;
+
+ String slnTxt = File.ReadAllText(path);
+ //
+ // Extra line feed is used by Visual studio, cmake does not generate extra line feed.
+ //
+ s.slnVer = Double.Parse(Regex.Match(slnTxt, "[\r\n]?Microsoft Visual Studio Solution File, Format Version ([0-9.]+)", RegexOptions.Multiline).Groups[1].Value, CultureInfo.InvariantCulture);
+
+ int vsNumber = Int32.Parse(Regex.Match(slnTxt, "^\\# Visual Studio (Express )?([0-9]+)", RegexOptions.Multiline).Groups[2].Value);
+ if (vsNumber > 2000)
+ s.fileFormatVersion = vsNumber;
+ else
+ s.fileFormatVersion = vsNumber - 14 + 2015; // Visual Studio 14 => vs2015, formula might not be applicable for future vs versions.
+
+ foreach (String line in new String[] { "VisualStudioVersion", "MinimumVisualStudioVersion" })
+ {
+ var m = Regex.Match(slnTxt, "^" + line + " = ([0-9.]+)", RegexOptions.Multiline);
+ String v = null;
+ if (m.Success)
+ v = m.Groups[1].Value;
+
+ s.GetType().GetField(line).SetValue(s, v);
+ }
+
+ Regex reProjects = new Regex(
+ "Project\\(\"(?<ProjectHostGuid>{[A-F0-9-]+})\"\\) = \"(?<ProjectName>.*?)\", \"(?<RelativePath>.*?)\", \"(?<ProjectGuid>{[A-F0-9-]+})\"[\r\n]*(?<dependencies>.*?)EndProject[\r\n]+",
+ RegexOptions.Singleline);
+
+
+ reProjects.Replace(slnTxt, new MatchEvaluator(m =>
+ {
+ SolutionProject p = new SolutionProject ();
+
+ foreach (String g in reProjects.GetGroupNames())
+ {
+ if (g == "0") //"0" - RegEx special kind of group
+ continue;
+
+ //
+ // ProjectHostGuid, ProjectName, RelativePath, ProjectGuid fields/properties are set here.
+ //
+ String v = m.Groups[g].ToString();
+ if (g != "dependencies")
+ {
+ FieldInfo fi = p.GetType().GetField(g);
+ if (fi != null)
+ {
+ fi.SetValue(p, v);
+ }
+ else
+ {
+ p.GetType().GetProperty(g).SetValue(p, v);
+ }
+ continue;
+ }
+
+ if (v == "") // No dependencies set
+ continue;
+
+ String depsv = new Regex("ProjectSection\\(ProjectDependencies\\)[^\r\n]*?[\r\n]+" + "(.*?)" + "EndProjectSection", RegexOptions.Singleline).Match(v).Groups[1].Value;
+
+ //
+ // key is always equal to it's value.
+ // http://stackoverflow.com/questions/5629981/question-about-visual-studio-sln-file-format
+ //
+ var ProjectDependencies = new Regex("\\s*?({[A-F0-9-]+}) = ({[A-F0-9-]+})[\r\n]+", RegexOptions.Multiline).Matches(depsv).Cast<Match>().Select(x => x.Groups[1].Value).ToList();
+ } //foreach
+ s.Projects.Add(new Project (s, p));
+ return "";
+ }
+ )
+ );
+
+ new Regex("GlobalSection\\(SolutionConfigurationPlatforms\\).*?[\r\n]+(.*?)EndGlobalSection[\r\n]+", RegexOptions.Singleline).Replace(slnTxt, new MatchEvaluator(m2 =>
+ {
+ s.configurations = new Regex("\\s*(.*)\\s+=").Matches(m2.Groups[1].ToString()).Cast<Match>().Select(x => x.Groups[1].Value).ToList();
+ return "";
+ }
+ ));
+
+ Console.WriteLine ("******** CONFIG ***************");
+
+ new Regex("GlobalSection\\(ProjectConfigurationPlatforms\\).*?[\r\n]+(.*?)EndGlobalSection[\r\n]+", RegexOptions.Singleline).Replace(slnTxt, new MatchEvaluator(m2 =>
+ {
+ foreach (Match m3 in new Regex("\\s*({[A-F0-9-]+})\\.(.*?)\\.(.*?)\\s+=\\s+(.*?)[\r\n]+").Matches(m2.Groups[1].ToString()))
+ {
+ String guid = m3.Groups[1].Value;
+ String solutionConfig = m3.Groups[2].Value;
+ String action = m3.Groups[3].Value;
+ String projectConfig = m3.Groups[4].Value;
+
+ Project p = s.Projects.Where(x => x.ProjectGuid == guid).FirstOrDefault();
+ if (p == null)
+ continue;
+
+ Console.WriteLine ("{0},{1},{2},{3}",guid,solutionConfig,action,projectConfig);
+
+ int iConfigIndex = s.configurations.IndexOf(solutionConfig);
+ if (iConfigIndex == -1)
+ continue;
+
+// while (p.slnConfigurations.Count < s.configurations.Count)
+// {
+// p.slnConfigurations.Add(null);
+// p.slnBuildProject.Add(false);
+// }
+//
+// if (action == "ActiveCfg")
+// {
+// p.slnConfigurations[iConfigIndex] = projectConfig;
+// }
+// else
+// {
+// if (action.StartsWith("Build"))
+// {
+// p.slnBuildProject[iConfigIndex] = true;
+// }
+// else
+// {
+// if (action.StartsWith("Deploy"))
+// {
+// if (p.slnDeployProject == null) p.slnDeployProject = new List<bool?>();
+//
+// while (p.slnDeployProject.Count < s.configurations.Count)
+// p.slnDeployProject.Add(null);
+//
+// p.slnDeployProject[iConfigIndex] = true;
+// }
+// }
+// } //if-esle
+ }
+ return "";
+ }
+ ));
+
+ //
+ // Initializes parent-child relationship.
+ //
+ new Regex("GlobalSection\\(NestedProjects\\).*?[\r\n]+(.*?)EndGlobalSection[\r\n]+", RegexOptions.Singleline).Replace(slnTxt, new MatchEvaluator(m4 =>
+ {
+ String v = m4.Groups[1].Value;
+ new Regex("\\s*?({[A-F0-9-]+}) = ({[A-F0-9-]+})[\r\n]+", RegexOptions.Multiline).Replace(v, new MatchEvaluator(m5 =>
+ {
+ String[] args = m5.Groups.Cast<System.Text.RegularExpressions.Group>().Skip(1).Select(x => x.Value).ToArray();
+ Project child = s.Projects.Where(x => args[0] == x.ProjectGuid).FirstOrDefault();
+ Project parent = s.Projects.Where(x => args[1] == x.ProjectGuid).FirstOrDefault();
+ parent.dependantProjects.Add(child);
+ child.ParentProject = parent;
+ return "";
+ }));
+ return "";
+ }
+ ));
+
+ s.UserConfig = new Configuration (s.path + ".user");
+ s.ReloadStyling ();
+ s.ReloadDefaultTemplates ();
+ s.updateToolboxItems ();
+ return s;
+ } //LoadSolution
+ #endregion
+ }
+}
--- /dev/null
+//
+// SolutionControler.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+
+namespace Crow.Coding
+{
+ public class SolutionControler
+ {
+ public SolutionControler ()
+ {
+ }
+ }
+}
+
--- /dev/null
+//
+// VerticalLine.cs
+//
+// Author:
+// jp <>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using Crow;
+using vkvg;
+
+namespace Crow.Coding
+{
+ public class VerticalLine : Widget
+ {
+ public VerticalLine () : base()
+ {
+ }
+
+ protected override void onDraw (Context gr)
+ {
+ base.onDraw (gr);
+ Foreground.SetAsSource (gr);
+ Rectangle r = ClientRectangle;
+ double x = r.Center.X - 0.5;
+ double y;
+ gr.LineWidth = 1;
+ gr.MoveTo (x, r.Y);
+ gr.LineTo (x, r.Bottom-8);
+
+ for (y = 8.5+r.Y; y < r.Bottom; y += 18) {
+ gr.MoveTo (x, y);
+ gr.LineTo (x * 2, y);
+ }
+
+ gr.Stroke ();
+ }
+ }
+}
+
--- /dev/null
+<?xml version="1.0"?>
+<Expandable Caption="{Name}" IsExpanded="{IsExpanded}" Background="Grey" Foreground="Black">
+ <Template>
+ <VerticalStack>
+ <HorizontalStack Spacing="1" Height="Fit" MouseDoubleClick="./onClickForExpand" Background="Grey">
+ <Container Margin="1" Width="9" Height="9" Focusable="true" MouseDown="./onClickForExpand"
+ MouseEnter="{Background=LightGrey}"
+ MouseLeave="{Background=Transparent}">
+ <Image
+ Path="#Crow.Icons.expandable.svg"
+ Visible="{./IsExpandable}"
+ SvgSub="{./IsExpanded}"/>
+ </Container>
+ <Label Foreground="White" Text="{./Caption}"/>
+ </HorizontalStack>
+ <Container Name="Content" Visible="false"/>
+ </VerticalStack>
+ </Template>
+ <VerticalStack Spacing="1" Height="Fit" Name="ItemsContainer"
+ Margin="0" VerticalAlignment="Top"/>
+</Expandable>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!--<Window Height="Stretched" Width="Stretched" >-->
+ <VerticalStack DataSourceType="CrowIDE">
+ <Menu>
+ <MenuItem Caption="File" Width="Fit" PopWidth="120" DataSource="{CurrentSolution}">
+ <MenuItem Command="{CMDNew}" />
+ <MenuItem Command="{CMDOpen}" />
+ <MenuItem Command="{cmdCloseSolution}" />
+ <MenuItem DataSource="{SelectedItem}" Command="{cmdSave}" />
+ <MenuItem DataSource="{SelectedItem}" Command="{cmdSaveAs}" />
+ <MenuItem Command="{CMDQuit}" />
+ </MenuItem>
+ <MenuItem Caption="Edit" Name="edit" Width="Fit" PopWidth="100" DataSource="{CurrentSolution}">
+ <MenuItem DataSource="{SelectedItem}" Command="{cmdUndo}" />
+ <MenuItem DataSource="{SelectedItem}" Command="{cmdRedo}" />
+ <MenuItem Command="{CMDCut}" />
+ <MenuItem Command="{CMDCopy}" />
+ <MenuItem Command="{CMDPaste}" />
+ <MenuItem Command="{CMDOptions}"/>
+ </MenuItem>
+ <MenuItem Caption="View" Fit="true" PopWidth="150">
+ <MenuItem Command="{CMDViewSolution}"/>
+ <MenuItem Command="{CMDViewEditor}"/>
+ <MenuItem Command="{CMDViewProperties}"/>
+ <MenuItem Command="{CMDViewDesign}"/>
+ <MenuItem Command="{CMDViewStyling}"/>
+ <MenuItem Command="{CMDViewToolbox}"/>
+ <MenuItem Command="{CMDViewErrors}"/>
+ <MenuItem Command="{CMDViewGTExp}"/>
+ <MenuItem Command="{CMDViewSchema}"/>
+ </MenuItem>
+ <MenuItem Caption="Project" Fit="true" PopWidth="120">
+ <MenuItem Command="{CMDCompile}"/>
+ <MenuItem Command="{CMDViewProjProps}"/>
+ </MenuItem>
+ <MenuItem Caption="Help" Width="Fit" PopWidth="60">
+ <MenuItem Caption="About"/>
+ <MenuItem Command="{CMDHelp}"/>
+ </MenuItem>
+ </Menu>
+<!-- <Label DataSource="{CurrentSolution}" Text="{SelectedItemElement}" Width="Stretched"/>-->
+<!-- <Docker >-->
+ <DockStack Name="mainDock"/>
+<!-- <DockWindow DataSource="{CurrentSolution}" Name="winEditor" Caption="Edit View" Width="70%" Height="80%">
+ <Template>
+ <Border BorderWidth="1" Foreground="DimGrey" CornerRadius="{./CornerRadius}"
+ Background="{./Background}"
+ MouseEnter="./onBorderMouseEnter"
+ MouseLeave="./onBorderMouseLeave">
+ <Container Name="Content" MinimumSize="50,50"/>
+ </Border>
+ </Template>
+ <EditPane SelectedItem="{²SelectedItem}" SelectedItemElement="{²SelectedItemElement}" Data="{OpenedItems}" DataTest="Extension"
+ ItemTemplate="#Crow.Coding.ui.EditPaneItems.template"/>
+ </DockWindow>-->
+<!-- </Docker>-->
+ </VerticalStack>
+<!--</Window>-->
--- /dev/null
+<?xml version="1.0"?>
+<Expandable IsExpanded="{²IsExpanded}" MouseDoubleClick="/onClickForExpand">
+ <Template>
+ <VerticalStack>
+ <Border CornerRadius="2" Margin="0" Height="Fit"
+ Foreground="Transparent"
+ MouseEnter="{Foreground=DimGrey}"
+ MouseLeave="{Foreground=Transparent}">
+ <HorizontalStack Spacing="1">
+ <Image Margin="1" Width="9" Height="9" Focusable="true" MouseDown="./onClickForExpand"
+ Path="{./Image}"
+ Visible="{./IsExpandable}"
+ SvgSub="{./IsExpanded}"
+ MouseEnter="{Background=LightGrey}"
+ MouseLeave="{Background=Transparent}"/>
+ <Border Width="16" Height="16" Foreground="Black" Background="DimGrey">
+ <Image Margin="2" Path="{GetIcon}" />
+ </Border>
+ <Label Text="{DesignName}"/>
+ </HorizontalStack>
+ </Border>
+ <Container Name="Content" Visible="false"/>
+ </VerticalStack>
+ </Template>
+ <HorizontalStack Height="Fit">
+ <Widget Width="8" Height="10"/>
+ <VerticalStack Height="Fit" Name="ItemsContainer"/>
+ </HorizontalStack>
+</Expandable>
--- /dev/null
+<?xml version="1.0"?>
+<Border BorderWidth="1" Foreground="Black" CornerRadius="10"
+ Background="Grey"
+ MouseEnter="./onBorderMouseEnter"
+ MouseLeave="./onBorderMouseLeave">
+ <VerticalStack Spacing="0">
+ <HorizontalStack Background="MediumSeaGreen" Margin="0" Spacing="0" Height="Fit" Width="Stretched">
+ <Label Width="Stretched" Margin="0" TextAlignment="Center" Text="{./Caption}" />
+ </HorizontalStack>
+ <Widget Background="Black" Height="1"/>
+ <Container Margin="5" Name="Content" Width="Fit"/>
+ </VerticalStack>
+</Border>
--- /dev/null
+<?xml version="1.0"?>
+<Border Background="{./Background}" Name="Content"
+ Foreground="Transparent" CornerRadius="{./CornerRadius}" BorderWidth="1"
+ MouseDown="{Foreground=vgradient|0:Black|0.05:Grey|0.85:Grey|1:White}"
+ MouseUp="{Foreground=vgradient|0:White|0.2:Grey|0.9:Grey|1:Black}">
+ <Image Path="{./Caption}" Margin="2" Width="20" Height="20" />
+</Border>
--- /dev/null
+<?xml version="1.0"?>
+<DockWindow DataSource="{CurrentSolution}" Name="winDesign" Caption="Design" Width="200" Height="50%">
+ <VerticalStack DataSource="{SelectedItemElement}">
+ <ColorPicker SelectedColor="{²Background}"/>
+ <Group Fit="true">
+ <Border Foreground="Black" Left="25" Top="12" Width="34" Height="21" Background="{Background}"/>
+ <Border Foreground="Black" Left="1" Top="1" Width="34" Height="21" Background="{Foreground}"/>
+ </Group>
+ </VerticalStack>
+</DockWindow>
--- /dev/null
+<?xml version="1.0"?>
+<DockWindow Name="winEditor" Caption="Edit View">
+ <EditPane DataSource="{CurrentSolution}"
+ SelectedItemElement="{²SelectedItemElement}" Data="{OpenedItems}" DataTest="Extension"
+ ItemTemplate="#Crow.Coding.EditPaneItems.template"/>
+</DockWindow>
--- /dev/null
+<?xml version="1.0"?>
+<DockWindow DataSource="{CurrentSolution}" Name="winErrors" Caption="Errors" Width="20%">
+ <ListBox Width="Stretched" Data="{CompilerErrors}">
+ <ItemTemplate>
+ <HorizontalStack Height="Fit" Margin="0" Focusable="true" Spacing="10"
+ MouseEnter="{Background=SteelBlue}"
+ MouseLeave="{Background=Transparent}">
+ <Image Width="10" Height="10" Path="#Crow.Icons.compiler_error.svg" SvgSub="{IsWarning}"/>
+ <Label Text="{Line}" Width="25" TextAlignment="Right"/>
+ <Label Text="{ErrorText}" Width="60%"/>
+ <Label Text="{FileName}" Width="Fit"/>
+ </HorizontalStack>
+ </ItemTemplate>
+ </ListBox>
+</DockWindow>
--- /dev/null
+<?xml version="1.0"?>
+<DockWindow Name="winGTExplorer" Caption="Edit View" Width="40%" Height="80%">
+ <VerticalStack Name="vstack" DataSource="{CurrentSolution}">
+ <Button Caption="Expand All" MouseClick="../treeView.onExpandAll_MouseClick"/>
+ <TreeView DataSource="{SelectedItem}" IsRoot="true" Name="treeView" Data="{GraphicTree}"
+ SelectedItemChanged="../../vstack.DataSource.GTView_SelectedItemChanged">
+ <ItemTemplate>
+ <Border Width="Stretched" Focusable="true" Foreground="Transparent">
+ <HorizontalStack Spacing="5">
+ <Widget Width="5" Height="5"/>
+ <Border Width="16" Height="16" Foreground="Black" Background="DimGrey">
+ <Image Margin="2" Path="{GetIcon}" />
+ </Border>
+ <Label Text="{DesignName}" Width="Stretched"/>
+ </HorizontalStack>
+ </Border>
+ </ItemTemplate>
+ <ItemTemplate DataType="Crow.Group" Data="GetChildren"
+ Path="#Crow.Coding.ui.DockWindows.GTreeExpITemp.crow"/>
+ <ItemTemplate DataType="Crow.Container" Data="GetChildren"
+ Path="#Crow.Coding.ui.DockWindows.GTreeExpITemp.crow"/>
+ <ItemTemplate DataType="Crow.TemplatedContainer" Data="GetChildren"
+ Path="#Crow.Coding.ui.DockWindows.GTreeExpITemp.crow"/>
+ <ItemTemplate DataType="Crow.TemplatedGroup" Data="GetChildren"
+ Path="#Crow.Coding.ui.DockWindows.GTreeExpITemp.crow"/>
+ </TreeView>
+ </VerticalStack>
+</DockWindow>
--- /dev/null
+<?xml version="1.0"?>
+<DockWindow Name="winProperties" Caption="Properties" Width="20%">
+ <MembersView DataSource="{CurrentSolution}" ProjectNode="{SelectedItem}"
+ Instance="{SelectedItemElement}" DataTest="Type"
+ ItemTemplate="#Crow.Coding.MembersItem.template"/>
+</DockWindow>
+
--- /dev/null
+<?xml version="1.0"?>
+<DockWindow DataSource="{CurrentSolution}" Name="winSchema" Caption="IML Schematic View" Height="60%" Width="80%">
+ <ImlSchematicEditor DataSource="{SelectedItem}" Data="{GraphicTree}">
+ <Template>
+ <Group Name="ItemsContainer"/>
+ </Template>
+ <ItemTemplate DataType="Crow.Widget">
+ <Window Style="WinSchema" Caption="{Name}">
+ <Label Text="test"/>
+ </Window>
+ </ItemTemplate>
+ <ItemTemplate DataType="Crow.Container" >
+ <Window Style="WinSchema" Caption="{Name}">
+ <Label Text="test"/>
+ </Window>
+ </ItemTemplate>
+ </ImlSchematicEditor>
+</DockWindow>
--- /dev/null
+<?xml version="1.0"?>
+<DockWindow Name="winSolution" Caption="Solution" Width="20%">
+ <TreeView Name="treeview" IsRoot="true" DataSource="{CurrentSolution}"
+ Data="{Projects}" SelectedItemChanged="onSelectedItemChanged"
+ ItemTemplate="#Crow.Coding.ProjectTree.template"/>
+</DockWindow>
--- /dev/null
+<?xml version="1.0"?>
+<DockWindow DataSource="{CurrentSolution}" Name="winStyle" Caption="Styling" Width="20%">
+ <TreeView Data="{StylingContainers}">
+ <Template>
+ <VerticalStack Name="ItemsContainer" Spacing="1"/>
+ </Template>
+ <ItemTemplate DataType="Crow.Coding.StyleItemContainer">
+ <HorizontalStack Height="Fit" Spacing="1">
+ <Label Background="White" Foreground="Jet" Text="{Name}" Width="40%"/>
+ <Label Background="White" Foreground="Jet" Text="{Value}" Width="Stretched"/>
+ </HorizontalStack>
+ </ItemTemplate>
+ <ItemTemplate Path="#Crow.Coding.ui.CategoryExp.template" DataType="Crow.Coding.StyleContainer" Data="Items"/>
+ </TreeView>
+</DockWindow>
+
--- /dev/null
+<?xml version="1.0"?>
+<DockWindow DataSource="{CurrentSolution}" Name="winToolbox" Caption="Toolbox" Width="60">
+ <ListBox Margin="3" Data="{ToolboxItems}" SelectionBackground="SkyBlue">
+ <Template>
+ <Wrapper Name="ItemsContainer" Orientation="Vertical" Spacing="0"/>
+ </Template>
+ <ItemTemplate>
+ <Container Fit="true" Focusable="true" Tooltip="{DisplayName}" Margin="2" AllowDrag="true"
+ StartDrag="onStartDrag" EndDrag="onEndDrag" Drop="onDrop">
+ <Border Foreground="Black" Background="DimGrey" Margin="0" BorderWidth="1"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=Black}">
+ <Image Path="{IconPath}" Margin="3" Width="20" Height="20" />
+ </Border>
+ </Container>
+ </ItemTemplate>
+ </ListBox>
+</DockWindow>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<Border Background="{./Background}" Name="Content"
+ BorderWidth="1" BorderStyle="Normal"
+ MouseDown="{BorderStyle=Sunken}"
+ MouseUp="{BorderStyle=Normal}">
+ <Image Margin="1" Path="#icons.blank-file" />
+</Border>
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Style="MemberViewHStack" ContextCommands="{Commands}" DataSourceType="PropertyContainer">
+ <Label Style="MemberViewLabel" Text="{Name}" Foreground = "{LabForeground}"/>
+ <ComboBox Margin="0" Height="Stretched" Width="50%" Data="{Choices}"
+ SelectedItem="{²Value}">
+ <Template>
+ <Popper Name="popper" PopDirection="Bottom">
+ <Template>
+ <CheckBox Caption="{./Caption}" IsChecked="{²./IsPopped}" Foreground="{./Foreground}" Background="{./Background}">
+ <Template>
+ <Border CornerRadius="0" Foreground="LightGrey" Background="White">
+ <HorizontalStack Margin="0" Spacing="1">
+ <Label Width="Stretched" MinimumSize="80,10" Margin="1" Foreground = "{LabForeground}" Background="White"
+ Text="{../../../../../SelectedItem}"/>
+ <Button Width="12" Height="12" Focusable="false"
+ Template="#Crow.ArrowBut.template">
+ <Image Margin="1" Path="#Crow.Icons.updown.svg" SvgSub="down"/>
+ </Button>
+ </HorizontalStack>
+ </Border>
+ </Template>
+ </CheckBox>
+ </Template>
+ <Border Background="White" BorderWidth="1" Margin="1" Foreground="Black"
+ MinimumSize="{../../MinimumPopupSize}" Fit="true">
+ <Scroller Name="scroller1" Margin="2"
+ MaximumSize="0,200"
+ HorizontalAlignment="Left">
+ <VerticalStack LayoutChanged="../../../../_list_LayoutChanged"
+ MouseClick="../../../onMouseClick" Focusable="True"
+ Height="Fit" Name="ItemsContainer" Margin="0"
+ HorizontalAlignment="Left"
+ VerticalAlignment="Top"/>
+ </Scroller>
+ </Border>
+ </Popper>
+ </Template>
+ <ItemTemplate>
+ <Container Fit="true" Margin="0" Focusable="true"
+ HorizontalAlignment="Left"
+ MouseEnter="{Background=SteelBlue}"
+ MouseLeave="{Background=Transparent}">
+ <Label Text="{}" Foreground="Black"/>
+ </Container>
+ </ItemTemplate>
+ </ComboBox>
+</HorizontalStack>
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Style="MemberViewHStack" ContextCommands="{Commands}">
+ <Label Style="MemberViewLabel" Text="{Name}" Foreground = "{LabForeground}"/>
+ <Popper Height="Stretched" Caption="{Value}">
+ <Template>
+ <CheckBox Caption="{./Caption}" IsChecked="{²./IsPopped}">
+ <Template>
+ <HorizontalStack Margin="1" Height="Stretched" Spacing="3" Background="White">
+ <Border Foreground="{LabForeground}" Width="18" Height="12" CornerRadius="3"
+ Background="{Value}">
+ </Border>
+ <Label Width="Stretched" Text="{./Caption}" Foreground="{LabForeground}"/>
+ </HorizontalStack>
+ </Template>
+ </CheckBox>
+ </Template>
+ <ColorPicker SelectedColor="{²Value}" Background="DimGrey" Margin="5" Fit="True" />
+ </Popper>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Width="50%" Height="50%" Background="DimGrey">
+ <TreeView IsRoot="true" Name="treeView" Data="{LQIs}">
+ <ItemTemplate DataType="Crow.LayoutingQueueItem" Data="triggeredLQIs">
+ <Expandable>
+ <Template>
+ <VerticalStack Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+ <VerticalStack Fit="true" Margin="3" Background="DimGrey"
+ HorizontalAlignment="Left"
+ MouseEnter="{Background=hgradient|0:RoyalBlue|1:Transparent}"
+ MouseLeave="{Background=DimGrey}">
+ <Label Text="{FullName}" Font="droid, 8" Background="LightGrey" Foreground="Black"/>
+ <HorizontalStack Fit="true" Spacing="10">
+ <Label Text="{LayoutingTries}" Foreground="SkyBlue"/>
+ <Label Text="{DiscardCount}" Foreground="Red"/>
+ <Label Text="{Name}" Font="droid bold"/>
+ <Label Text="{LayoutType}" Foreground="Maize"/>
+ <Label Text="{Width}"/>
+ <Label Text="{Height}"/>
+ </HorizontalStack>
+
+ <HorizontalStack Fit="true">
+ <Label Text="{Slot}"/>
+ <Label Text=" => "/>
+ <Label Text="{NewSlot}"/>
+ </HorizontalStack>
+ <Widget Background="SeaGreen" Height="3" Visible="{HasTriggeredLQIs}"/>
+ </VerticalStack>
+ <Container Name="Content" Visible="false" HorizontalAlignment="Left"
+ Fit="true"/>
+ </VerticalStack>
+ </Template>
+ <HorizontalStack Height="Fit" Width="Fit">
+ <Widget Width="20" Height="10"/>
+ <TreeView Name="List" Height="Fit" Width="Fit"
+ Template="#Crow.Templates.treeList.crow" />
+ </HorizontalStack>
+ </Expandable>
+ </ItemTemplate>
+ <ItemTemplate DataType="Crow.LQIList" Data="GetRootLQIs">
+ <Expandable Caption="{}" >
+ <Template>
+ <VerticalStack Height="{./HeightPolicy}" Width="{./WidthPolicy}">
+ <HorizontalStack Spacing="1" Height="Fit" Width="{./WidthPolicy}"
+ MouseEnter="{Background=hgradient|0:RoyalBlue|1:Transparent}"
+ MouseLeave="{Background=Transparent}">
+ <Image Margin="2" Width="12" Height="12"
+
+ Path="{./Image}"
+ SvgSub="{./IsExpanded}"/>
+ <Label Text="{./Caption}" Width="{./WidthPolicy}"/>
+ </HorizontalStack>
+ <Container Name="Content" Visible="false"
+ Height="{./HeightPolicy}" Width="{./WidthPolicy}"/>
+ </VerticalStack>
+ </Template>
+ <HorizontalStack Height="Fit" Width="{./WidthPolicy}">
+ <Widget Width="12" Height="10"/>
+ <TreeView Name="List" Height="Fit" Width="{./WidthPolicy}"
+ Template="#Crow.Templates.treeList.crow" />
+ </HorizontalStack>
+ </Expandable>
+ </ItemTemplate>
+ </TreeView>
+</Window>
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Properties" Width="30%" Height="60%" AlwaysOnTop="true">
+ <MembersView Instance="{SelectedItem}" DataTest="Type"
+ ItemTemplate="#Crow.Coding.ui.MembersItem.template"/>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<ItemTemplate>
+ <HorizontalStack Style="MemberViewHStack" ContextCommands="{Commands}" DataSourceType="PropertyContainer">
+ <Label Style="MemberViewLabel" Text="{Name}" Foreground = "{LabForeground}"/>
+ <TextBox Margin="1" Text="{²Value}" Height="Fit" Foreground = "{LabForeground}"/>
+ </HorizontalStack>
+</ItemTemplate>
+<ItemTemplate Path="#Crow.Coding.CategoryExp.template" DataType="Crow.Coding.CategoryContainer"
+ Data="Properties" DataTest="Type"/>
+<ItemTemplate DataType="System.Boolean" >
+ <HorizontalStack Style="MemberViewHStack" ContextCommands="{Commands}">
+ <Label Style="MemberViewLabel" Text="{Name}" Foreground = "{LabForeground}" />
+ <CheckBox Background="White" Foreground = "{LabForeground}" Height="Stretched" Caption="" IsChecked="{²Value}"/>
+ </HorizontalStack>
+</ItemTemplate>
+<ItemTemplate Path="#Crow.Coding.Enum.template" DataType="System.Enum" />
+<ItemTemplate Path="#Crow.Coding.Enum.template" DataType="Style" />
+<!--<ItemTemplate Path="#Crow.Coding.ui.ItemTemplates.Fill.template" DataType="Crow.Fill"/>-->
+
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack>
+ <Border Height="Fit">
+ <Label TextAlignment="Left" Text="{./SelectedItemName}" Width="Stretched"/>
+ </Border>
+ <HorizontalStack>
+ <Scroller Name="scroller1" Margin="1"
+ Background="{./Background}">
+ <VerticalStack Spacing="1"
+ Height="Fit" Name="ItemsContainer" Margin="0" VerticalAlignment="Top"/>
+ </Scroller>
+ <ScrollBar
+ Name="scrollbar1" Orientation="Vertical"
+ LargeIncrement="{../scroller1.PageHeight}" SmallIncrement="30"
+ CursorSize="{../scroller1.ChildHeightRatio}"
+ Value="{²../scroller1.ScrollY}"
+ Maximum="{../scroller1.MaxScrollY}"/>
+ </HorizontalStack>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<Window Caption="Add New File..." Height="60%" Width="70%">
+ <Label/>
+</Window>
+
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Crow IDE Options" Width="80%" Height="70%" Background="DimGrey" Modal="true">
+ <TabView>
+ <TabItem Caption="IML Visual Editor">
+ <VerticalStack Margin="10">
+ <CheckBox Caption="Print Line Numbers" IsChecked="True"/>
+ <CheckBox Caption="Print Line Numbers" IsChecked="True"/>
+ <CheckBox Caption="Print Line Numbers" IsChecked="True"/>
+ <CheckBox Caption="Print Line Numbers" IsChecked="True"/>
+ <CheckBox Caption="Print Line Numbers" IsChecked="True"/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Caption="Text Editor">
+ <VerticalStack Margin="10">
+ <CheckBox Caption="Print Line Numbers" IsChecked="True"/>
+ <CheckBox Caption="Print Line Numbers" IsChecked="True"/>
+ <CheckBox Caption="Print Line Numbers" IsChecked="True"/>
+ <CheckBox Caption="Print Line Numbers" IsChecked="True"/>
+ <CheckBox Caption="Print Line Numbers" IsChecked="True"/>
+ </VerticalStack>
+ </TabItem>
+
+ </TabView>
+</Window>
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Project Properties" Width="60%" Height="70%" Modal="true">
+ <HorizontalStack>
+ <VerticalStack Height="Fit" Width="50%">
+ <HorizontalStack>
+ <Label Text="Tools Version" Width="30%"/>
+ <Label Text="{ToolsVersion}" IsEnabled="false" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Default Targets" Width="30%"/>
+ <Label Text="{DefaultTargets}" IsEnabled="false" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Project Guid" Width="30%"/>
+ <Label Text="{ProjectGuid}" IsEnabled="false" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Output Type" Width="30%"/>
+ <Label Text="{OutputType}" IsEnabled="false" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Root Namespace" Width="30%"/>
+ <Label Text="{RootNamespace}" IsEnabled="false" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Assembly Name" Width="30%"/>
+ <Label Text="{AssemblyName}" IsEnabled="false" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Allow Unsafe Blocks" Width="30%"/>
+ <CheckBox IsChecked="{AllowUnsafeBlocks}" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="No Std Lib" Width="30%"/>
+ <CheckBox IsChecked="{NoStdLib}" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Treat Warnings As Errors" Width="30%"/>
+ <CheckBox IsChecked="{TreatWarningsAsErrors}" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Sign Assembly" Width="30%"/>
+ <CheckBox IsChecked="{SignAssembly}" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Target Framework" Width="30%"/>
+ <Label Text="{TargetFrameworkVersion}" IsEnabled="false" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Description" Width="30%"/>
+ <Label Text="{Description}" IsEnabled="false" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Output Path" Width="30%"/>
+ <Label Text="{OutputPath}" IsEnabled="false" Width="70%"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Intermediate Output Path" Width="30%"/>
+ <Label Text="{IntermediateOutputPath}" IsEnabled="false" Width="70%"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <TreeView Width="50%" IsRoot="true" Name="treeView" Data="{RootItems}" DataTest="Type"
+ ItemTemplate="#Crow.Coding.ui.ProjectTree.template">
+ </TreeView>
+ </HorizontalStack>
+</Window>
--- /dev/null
+<?xml version="1.0"?>
+<ItemTemplate>
+ <Border DataSourceType="ProjectItem" Style="TreeItemBorder" ContextCommands="{Commands}" Focusable="true" MouseDown="onClick" MouseDoubleClick="onDoubleClick">
+ <Group>
+ <Widget Height="Stretched" Background="RoyalBlue" Visible="{IsSelected}"/>
+ <HorizontalStack>
+ <Widget Width="5" Height="5"/>
+ <Image Style="TreeIcon" Picture="{Icon}"/>
+ <Label Text="{DisplayName}" Width="Stretched"/>
+ </HorizontalStack>
+ </Group>
+ </Border>
+</ItemTemplate>
+<ItemTemplate DataType="Crow.Coding.Project" Data="RootItems" DataTest="Type">
+ <Expandable DataSourceType="Project" Caption="{Name}" ContextCommands="{Commands}" IsExpanded="{²IsExpanded}" MouseDoubleClick="/onClickForExpand">
+ <Template>
+ <VerticalStack>
+ <Border Style="TreeItemBorder" >
+ <HorizontalStack Spacing="1">
+ <Image Margin="1" Width="9" Height="9" Focusable="true" MouseDown="./onClickForExpand"
+ Path="{./Image}"
+ Visible="{./IsExpandable}"
+ SvgSub="{./IsExpanded}"
+ MouseEnter="{Background=LightGrey}"
+ MouseLeave="{Background=Transparent}"/>
+ <Image Style="TreeIcon"
+ Path="#Crow.Icons.crowproj.svg"/>
+ <Widget Width="4" Height="9" Background="Green" Visible="{IsStartupProject}"/>
+ <Label Text="{./Caption}"/>
+ </HorizontalStack>
+ </Border>
+ <Container Name="Content" Visible="false"/>
+ </VerticalStack>
+ </Template>
+ <HorizontalStack Height="Fit">
+ <Widget Width="8" Height="10"/>
+ <VerticalStack Height="Fit" Name="ItemsContainer"/>
+ </HorizontalStack>
+ </Expandable>
+</ItemTemplate>
+<ItemTemplate DataSourceType="ProjectNode" DataType="ReferenceGroup" Data="ChildNodes" DataTest="Type" >
+ <Expandable Caption="{DisplayName}" Template="#Crow.Coding.TreeExpandable.template" IsExpanded="{²IsExpanded}">
+ <HorizontalStack Height="Fit">
+ <Widget Width="8" Height="10"/>
+ <VerticalStack Height="Fit" Name="ItemsContainer"/>
+ </HorizontalStack>
+ </Expandable>
+</ItemTemplate>
+<ItemTemplate DataType="VirtualGroup" Data="ChildNodes" DataTest="Type">
+ <Expandable DataSourceType="ProjectNode" Caption="{DisplayName}" Template="#Crow.Coding.TreeExpandable.template" IsExpanded="{²IsExpanded}">
+ <HorizontalStack Height="Fit">
+ <Widget Width="8" Height="10"/>
+ <VerticalStack Height="Fit" Name="ItemsContainer"/>
+ </HorizontalStack>
+ </Expandable>
+</ItemTemplate>
+<ItemTemplate DataType="Folder" DataTest="Type">
+ <Border DataSourceType="ProjectNode" Style="TreeItemBorder" ContextCommands="{Commands}">
+ <HorizontalStack>
+ <Image Style="ProjTreeIcon"
+ Path="#Crow.Icons.folder.svg"/>
+ <Label Text="{DisplayName}" Width="Stretched"/>
+ </HorizontalStack>
+ </Border>
+</ItemTemplate>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack>
+ <Border Style="TreeItemBorder" >
+ <HorizontalStack Spacing="5" Focusable="true" MouseDoubleClick="./onClickForExpand">
+ <Image Margin="1" Width="9" Height="9" Focusable="true" MouseDown="./onClickForExpand"
+ Path="{./Image}"
+ Visible="{./IsExpandable}"
+ SvgSub="{./IsExpanded}"
+ MouseEnter="{Background=LightGrey}"
+ MouseLeave="{Background=Transparent}"/>
+ <Image Style="TreeIcon"
+ Path="#Crow.Icons.folder.svg" SvgSub="{./IsExpanded}"/>
+ <Label Text="{./Caption}"/>
+ </HorizontalStack>
+ </Border>
+ <Container Name="Content" Visible="false"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<TabView SelectedTab="{²./SelectedIndex}" Name="ItemsContainer" Orientation="Horizontal"/>
--- /dev/null
+<?xml version="1.0"?>
+<ItemTemplate>
+ <TabItem Caption="{DisplayName}" QueryClose="OnQueryClose">
+ <Label Text="Error" Background="Red"/>
+ </TabItem>
+</ItemTemplate>
+<ItemTemplate Path="#CrowIDE.ui.editors.SvgEdit.itemp" DataType=".svg"/>
+<ItemTemplate Path="#CrowIDE.ui.editors.SrcEdit.itemp" DataType=".cs"/>
+<ItemTemplate Path="#CrowIDE.ui.editors.SrcEdit.itemp" DataType=".style"/>
+<ItemTemplate Path="#CrowIDE.ui.editors.IMLEdit.itemp" DataType=".crow"/>
+<ItemTemplate Path="#CrowIDE.ui.editors.IMLEdit.itemp" DataType=".itemp"/>
+<ItemTemplate Path="#CrowIDE.ui.editors.IMLEdit.itemp" DataType=".template"/>
+<ItemTemplate DataType=".goml">
+ <TabItem Caption="{DisplayName}" QueryClose="OnQueryClose">
+ <IMLContainer Path="#CrowIDE.ui.editors.TextEditor.crow"/>
+ </TabItem>
+</ItemTemplate>
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<GenericStack Orientation="Vertical" Spacing="0" DataSourceType="ProjectFile"
+ MouseEnter="{caption.Font=hack bold, 10}"
+ MouseLeave="{caption.Font=hack, 10}">
+ <HorizontalStack Margin="2" Left="{./TabOffset}"
+ Name="TabTitle"
+ HorizontalAlignment="Left"
+ Height="{./TabHeight}"
+ Width="{./TabWidth}">
+ <Widget Width="5" Height="5" Background="Blue" Visible="{IsDirty}"/>
+ <Label Name="caption" Text="{DisplayName}" Foreground="Black" Width="Stretched"/>
+ <Border CornerRadius="5" BorderWidth="1" Foreground="Transparent" Height="12" Width="12"
+ MouseEnter="{Foreground=Black}" MouseLeave="{Foreground=Transparent}">
+ <Image Focusable="true" Name="Image" Margin="0" Width="Stretched" Height="Stretched" Path="#Crow.Icons.exit2.svg"
+ MouseClick="./butCloseTabClick"/>
+ </Border>
+ </HorizontalStack>
+ <Container Name="Content"/>
+</GenericStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<TabItem DataSourceType="ImlProjectItem" QueryClose="OnQueryClose" IsSelected="{²IsSelected}" Template="#Crow.Coding.EditTabItem.template">
+ <VerticalStack>
+ <VerticalStack Height="60%">
+ <Label DataSource="{../editor.HoverWidget}" Width="Stretched" Margin="2" Text="{Name}"/>
+ <VerticalStack Width="Stretched" Margin="0" MinimumSize="10,10">
+ <HorizontalStack>
+ <Scroller Name="scroller1" Margin="2" >
+ <ImlVisualEditor Foreground="SkyBlue" Name="editor" Background="Grey"
+ VerticalAlignment="Top" HorizontalAlignment="Left" Margin="4"
+ ContextCommands="{/Commands}"
+ AllowDrop="true" AllowDrag="true" Focusable="true"
+ UpdateEnabled="{IsSelected}"
+ ProjectNode="{}" SelectedItem="{²SelectedItem}"/>
+ </Scroller>
+ <ScrollBar Name="scrollbar1" Orientation="Vertical"
+ Value="{²../scroller1.ScrollY}" Maximum="{../scroller1.MaxScrollY}"
+ CursorSize="{../scroller1.ChildHeightRatio}"
+ LargeIncrement="{../scroller1.PageHeight}" SmallIncrement="30"
+ />
+ </HorizontalStack>
+ <ScrollBar Style="HScrollBar" Name="scrollbarX" Orientation="Horizontal"
+ Value="{²../scroller1.ScrollX}" Maximum="{../scroller1.MaxScrollX}"
+ CursorSize="{../scroller1.ChildWidthRatio}"
+ LargeIncrement="{../scroller1.PageWidth}" SmallIncrement="30"/>
+ </VerticalStack>
+ <HorizontalStack Height="Fit" Margin="2" Spacing="5" Background="vgradient|0:0.8,0.8,0.8,1|1:Grey">
+ <HorizontalStack Width="Fit" Spacing="1">
+ <Label Text="Design Size:"/>
+ <TextBox Text="{²../../../editor.DesignWidth}" Width="40" TextAlignment="Right"/>
+ <Label Text="X"/>
+ <TextBox Text="{²../../../editor.DesignHeight}" Width="40" TextAlignment="Right"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Fit" Spacing="1">
+ <Label Text="Zoom:"/>
+ <Slider Value="{²../../../editor.Zoom}" Width="100" Height="10" Minimum="10" Maximum="200" SmallIncrement="10" LargeIncrement="50"/>
+ <Label Text="{../../../editor.Zoom}"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Fit" Spacing="1">
+ <Label Text="Grid Spacing:"/>
+ <Slider Value="{²../../../editor.GridSpacing}" Width="100" Height="10" Minimum="5" Maximum="100" SmallIncrement="5" LargeIncrement="20"/>
+ <TextBox Text="{../../../editor.GridSpacing}"/>
+ </HorizontalStack>
+ </HorizontalStack>
+ </VerticalStack>
+ <Splitter/>
+ <IMLContainer Path="#CrowIDE.ui.editors.SourceEditor.crow"/>
+ <Splitter Visible="{../editor.HasError}"/>
+ <Label DataSource="{../editor.Error}" Text="{}"
+ Visible="{../editor.HasError}"
+ Height="Fit" Width="Stretched" Background="DarkRed" Foreground="White"
+ TextAlignment="TopLeft" Multiline="true"/>
+ </VerticalStack>
+</TabItem>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<VerticalStack>
+ <HorizontalStack >
+ <SourceEditor Focusable="true" Name="editor" Font="monospace, 12" VerticalAlignment="Top" Margin="2"
+ CurrentLine="{²CurrentLine}" CurrentColumn="{²CurrentColumn}" HasFocus="{IsSelected}"
+ Foreground="Jet" Background="White" Width="Stretched" Height="Stretched"
+ ProjectNode="{}" KeyDown="textView_KeyDown"/>
+ <ScrollBar Name="scrollbarY" Value="{²../editor.ScrollY}"
+ LargeIncrement="{../editor.VisibleLines}"
+ CursorSize="{../editor.ChildHeightRatio}"
+ Maximum="{../editor.MaxScrollY}" Orientation="Vertical"/>
+ </HorizontalStack>
+ <ScrollBar Style="HScrollBar" Name="scrollbarX" Value="{²../editor.ScrollX}"
+ Maximum="{../editor.MaxScrollX}" Orientation="Horizontal"
+ LargeIncrement="{../editor.VisibleColumns}"
+ CursorSize="{../editor.ChildWidthRatio}"/>
+ <HorizontalStack Height="Fit">
+ <Label Text="{../../editor.HoverError}" Width="Stretched"/>
+ <Widget Background="Red" Width="5" Height="5" Visible="{IsDirty}"/>
+ <Label Text="Hover Line:" Foreground="Grey"/>
+ <Label Text="{../../editor.HoverLine}"/>
+ <Widget Height="5" Width="10"/>
+ <Label Text="Line:" Foreground="Grey"/>
+ <Label Text="{CurrentLine}"/>
+ <Widget Height="5" Width="10"/>
+ <Label Text="column:" Foreground="Grey"/>
+ <Label Text="{CurrentColumn}"/>
+ <Widget Height="5" Width="10"/>
+ <Label Text="ScrollX:" Foreground="Grey"/>
+ <Label Text="{../../editor.ScrollX}"/>
+ </HorizontalStack>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<TabItem QueryClose="OnQueryClose" IsSelected="{²IsSelected}" Template="#Crow.Coding.EditTabItem.template">
+ <IMLContainer Path="#CrowIDE.ui.editors.SourceEditor.crow"/>
+</TabItem>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<TabItem QueryClose="OnQueryClose" IsSelected="{²IsSelected}" Template="#Crow.Coding.EditTabItem.template">
+ <VerticalStack>
+ <VerticalStack Height="50%">
+ <HorizontalStack >
+ <SvgEditor Margin="10" ProjectNode="{}" Focusable="true" Name="editor" MouseWheelSpeed="20" Foreground="Black"/>
+ <ScrollBar Name="scrollbarY" Value="{²../editor.ScrollY}"
+ LargeIncrement="10"
+ CursorSize="{../editor.ChildHeightRatio}"
+ Maximum="{../editor.MaxScrollY}" Orientation="Vertical"/>
+ </HorizontalStack>
+ <ScrollBar Style="HScrollBar" Name="scrollbarX" Value="{²../editor.ScrollX}"
+ Maximum="{../editor.MaxScrollX}" Orientation="Horizontal"
+ LargeIncrement="10"
+ CursorSize="{../editor.ChildWidthRatio}"/>
+ <HorizontalStack Height="Fit" Margin="3">
+ <Label Text="Zoom:"/>
+ <Label Text="{../../editor.Zoom}" Fit="true"/>
+ <!--<Spinner Name="sldZoom" Value="{²../../editor.Zoom}" Maximum="800" Minimum="1" SmallIncrement="10" LargeIncrement="50" Width="40" />-->
+ <Slider Value="{²../../editor.Zoom}" CursorSize="2" Height="8" Maximum="800" Minimum="1" SmallIncrement="1" LargeIncrement="10" Width="100" />
+ </HorizontalStack>
+ </VerticalStack>
+ <Splitter/>
+ <IMLContainer Path="#Crow.Coding.ui.editors.SourceEditor.crow"/>
+ <Label DataSource="{../editor.Error}" Text="{Message}"
+ Visible="{../editor.HasError}"
+ Height="Fit" Width="Stretched" Background="DarkRed" Foreground="White"
+ TextAlignment="TopLeft" Multiline="true"/>
+ </VerticalStack>
+</TabItem>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<VerticalStack>
+ <HorizontalStack >
+ <TextEditor Focusable="true" Name="editor" Font="monospace, 12" VerticalAlignment="Top" Margin="1"
+ CurrentLine="{²CurrentLine}" CurrentColumn="{²CurrentColumn}"
+ Foreground="DimGrey" Background="White" Width="Stretched" Height="Stretched"
+ ProjectNode="{}" KeyDown="textView_KeyDown"/>
+ <ScrollBar Name="scrollbarY" Value="{²../editor.ScrollY}"
+ LargeIncrement="{../editor.VisibleLines}"
+ CursorSize="{../editor.ChildHeightRatio}"
+ Maximum="{../editor.MaxScrollY}" Orientation="Vertical"/>
+ </HorizontalStack>
+ <ScrollBar Style="HScrollBar" Name="scrollbarX" Value="{²../editor.ScrollX}"
+ Maximum="{../editor.MaxScrollX}" Orientation="Horizontal"
+ LargeIncrement="{../editor.VisibleColumns}"
+ CursorSize="{../editor.ChildWidthRatio}"/>
+ <HorizontalStack Height="Fit">
+ <Widget Height="5" Width="Stretched"/>
+ <Widget Background="Red" Width="5" Height="5" Visible="{IsDirty}"/>
+ <Label Text="Line:" Foreground="Grey"/>
+ <Label Text="{CurrentLine}"/>
+ <Widget Height="5" Width="10"/>
+ <Label Text="column:" Foreground="Grey"/>
+ <Label Text="{CurrentColumn}"/>
+ <Widget Height="5" Width="10"/>
+ <Label Text="ScrollX:" Foreground="Grey"/>
+ <Label Text="{../../editor.ScrollX}"/>
+ </HorizontalStack>
+</VerticalStack>
--- /dev/null
+<Container Margin="20" Background="DimGrey">
+ <ImlVisualEditor Width="80%" Height="80%" Margin="0" MinimumSize="10,10" Foreground="SkyBlue"
+ Name="crowContainer" Background="DimGrey"/>
+</Container>
--- /dev/null
+<Project Sdk="Microsoft.NET.Sdk">
+ <Import Project="$(SolutionDir)netfx.props" />
+ <PropertyGroup>
+ <TargetFrameworks>net471;netstandard2.0</TargetFrameworks>
+ <OutputPath>$(SolutionDir)build\$(Configuration)\</OutputPath>
+ <OutputType>Exe</OutputType>
+ <RepositoryUrl>https://github.com/jpbruyere/Crow</RepositoryUrl>
+ <License>MIT</License>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <EnableDefaultNoneItems>false</EnableDefaultNoneItems>
+ <ReleaseVersion>0.8.0</ReleaseVersion>
+ </PropertyGroup>
+
+ <ItemGroup Condition="$(TargetFramework.StartsWith('net4'))">
+ <Reference Include="System" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="..\..\Crow\Crow.csproj" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <Datas Include="..\data\**\*.*">
+ <Link>data\%(RecursiveDir)%(Filename)%(Extension)</Link>
+ </Datas>
+ <EmbeddedResource Include="ui\**\*.*">
+ <LogicalName>HelloWorld.%(Filename)%(Extension)</LogicalName>
+ </EmbeddedResource>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Remove="..\common\CrowWin.cs" />
+ </ItemGroup>
+</Project>
--- /dev/null
+using Crow;
+
+namespace HelloWorld
+{
+ class Program : Interface {
+ static void Main (string[] args) {
+ using (Program vke = new Program ()) {
+ vke.Load ("#HelloWorld.helloworld.crow");
+ vke.Run ();
+ }
+ }
+ }
+}
--- /dev/null
+{
+ "version": 1,
+ "dgSpecHash": "qKyLZbFT5TztPs5GUeqYgYIB3ZvzbHPg0W5JjCs+7BvvK+Cq8BQAj8P3xG6dtm4KYOyL9ozMSIHJrC97lMO0CA==",
+ "success": true
+}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+ <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
+ <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
+ <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">/mnt/devel/Crow/Samples/HelloWorld/obj/project.assets.json</ProjectAssetsFile>
+ <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/jp/.nuget/packages/</NuGetPackageRoot>
+ <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/jp/.nuget/packages/;/usr/share/dotnet/sdk/NuGetFallbackFolder</NuGetPackageFolders>
+ <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
+ <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">4.8.0</NuGetToolVersion>
+ </PropertyGroup>
+ <PropertyGroup>
+ <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+ </PropertyGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+ </PropertyGroup>
+ <ImportGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' AND '$(ExcludeRestorePackageImports)' != 'true' ">
+ <Import Project="/usr/share/dotnet/sdk/NuGetFallbackFolder/netstandard.library/2.0.3/build/netstandard2.0/NETStandard.Library.targets" Condition="Exists('/usr/share/dotnet/sdk/NuGetFallbackFolder/netstandard.library/2.0.3/build/netstandard2.0/NETStandard.Library.targets')" />
+ </ImportGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+{
+ "version": 3,
+ "targets": {
+ ".NETFramework,Version=v4.7.1": {
+ "Crow/0.8.1-beta": {
+ "type": "project",
+ "framework": ".NETFramework,Version=v4.7.1",
+ "compile": {
+ "bin/placeholder/Crow.dll": {}
+ },
+ "runtime": {
+ "bin/placeholder/Crow.dll": {}
+ }
+ }
+ },
+ ".NETStandard,Version=v2.0": {
+ "Microsoft.NETCore.Platforms/1.1.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "Microsoft.NETCore.Targets/1.1.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "NETStandard.Library/2.0.3": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "build": {
+ "build/netstandard2.0/NETStandard.Library.targets": {}
+ }
+ },
+ "System.IO/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.IO.dll": {}
+ }
+ },
+ "System.Reflection/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.Reflection.dll": {}
+ }
+ },
+ "System.Reflection.Emit.ILGeneration/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {}
+ }
+ },
+ "System.Reflection.Emit.Lightweight/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/System.Reflection.Emit.Lightweight.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": {}
+ }
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/System.Reflection.Primitives.dll": {}
+ }
+ },
+ "System.Runtime/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.Runtime.dll": {}
+ }
+ },
+ "System.Text.Encoding/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Text.Encoding.dll": {}
+ }
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Threading.Tasks.dll": {}
+ }
+ },
+ "Crow/0.8.1-beta": {
+ "type": "project",
+ "framework": ".NETStandard,Version=v2.0",
+ "dependencies": {
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0"
+ },
+ "compile": {
+ "bin/placeholder/Crow.dll": {}
+ },
+ "runtime": {
+ "bin/placeholder/Crow.dll": {}
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.NETCore.Platforms/1.1.0": {
+ "sha512": "a/iSwnRZb+LHFk49hQOyThh/ZNC3vsbZsF65XwQIb863qF6msmhdQtxGXFL28Ob2NsCz/drEj28BJd/YPpLRBg==",
+ "type": "package",
+ "path": "microsoft.netcore.platforms/1.1.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/_._",
+ "microsoft.netcore.platforms.1.1.0.nupkg.sha512",
+ "microsoft.netcore.platforms.nuspec",
+ "runtime.json"
+ ]
+ },
+ "Microsoft.NETCore.Targets/1.1.0": {
+ "sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
+ "type": "package",
+ "path": "microsoft.netcore.targets/1.1.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/_._",
+ "microsoft.netcore.targets.1.1.0.nupkg.sha512",
+ "microsoft.netcore.targets.nuspec",
+ "runtime.json"
+ ]
+ },
+ "NETStandard.Library/2.0.3": {
+ "sha512": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
+ "type": "package",
+ "path": "netstandard.library/2.0.3",
+ "files": [
+ ".nupkg.metadata",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "build/netstandard2.0/NETStandard.Library.targets",
+ "build/netstandard2.0/ref/Microsoft.Win32.Primitives.dll",
+ "build/netstandard2.0/ref/System.AppContext.dll",
+ "build/netstandard2.0/ref/System.Collections.Concurrent.dll",
+ "build/netstandard2.0/ref/System.Collections.NonGeneric.dll",
+ "build/netstandard2.0/ref/System.Collections.Specialized.dll",
+ "build/netstandard2.0/ref/System.Collections.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.Composition.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.EventBasedAsync.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.Primitives.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.TypeConverter.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.dll",
+ "build/netstandard2.0/ref/System.Console.dll",
+ "build/netstandard2.0/ref/System.Core.dll",
+ "build/netstandard2.0/ref/System.Data.Common.dll",
+ "build/netstandard2.0/ref/System.Data.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Contracts.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Debug.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.FileVersionInfo.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Process.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.StackTrace.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.TextWriterTraceListener.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Tools.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.TraceSource.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Tracing.dll",
+ "build/netstandard2.0/ref/System.Drawing.Primitives.dll",
+ "build/netstandard2.0/ref/System.Drawing.dll",
+ "build/netstandard2.0/ref/System.Dynamic.Runtime.dll",
+ "build/netstandard2.0/ref/System.Globalization.Calendars.dll",
+ "build/netstandard2.0/ref/System.Globalization.Extensions.dll",
+ "build/netstandard2.0/ref/System.Globalization.dll",
+ "build/netstandard2.0/ref/System.IO.Compression.FileSystem.dll",
+ "build/netstandard2.0/ref/System.IO.Compression.ZipFile.dll",
+ "build/netstandard2.0/ref/System.IO.Compression.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.DriveInfo.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.Primitives.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.Watcher.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.dll",
+ "build/netstandard2.0/ref/System.IO.IsolatedStorage.dll",
+ "build/netstandard2.0/ref/System.IO.MemoryMappedFiles.dll",
+ "build/netstandard2.0/ref/System.IO.Pipes.dll",
+ "build/netstandard2.0/ref/System.IO.UnmanagedMemoryStream.dll",
+ "build/netstandard2.0/ref/System.IO.dll",
+ "build/netstandard2.0/ref/System.Linq.Expressions.dll",
+ "build/netstandard2.0/ref/System.Linq.Parallel.dll",
+ "build/netstandard2.0/ref/System.Linq.Queryable.dll",
+ "build/netstandard2.0/ref/System.Linq.dll",
+ "build/netstandard2.0/ref/System.Net.Http.dll",
+ "build/netstandard2.0/ref/System.Net.NameResolution.dll",
+ "build/netstandard2.0/ref/System.Net.NetworkInformation.dll",
+ "build/netstandard2.0/ref/System.Net.Ping.dll",
+ "build/netstandard2.0/ref/System.Net.Primitives.dll",
+ "build/netstandard2.0/ref/System.Net.Requests.dll",
+ "build/netstandard2.0/ref/System.Net.Security.dll",
+ "build/netstandard2.0/ref/System.Net.Sockets.dll",
+ "build/netstandard2.0/ref/System.Net.WebHeaderCollection.dll",
+ "build/netstandard2.0/ref/System.Net.WebSockets.Client.dll",
+ "build/netstandard2.0/ref/System.Net.WebSockets.dll",
+ "build/netstandard2.0/ref/System.Net.dll",
+ "build/netstandard2.0/ref/System.Numerics.dll",
+ "build/netstandard2.0/ref/System.ObjectModel.dll",
+ "build/netstandard2.0/ref/System.Reflection.Extensions.dll",
+ "build/netstandard2.0/ref/System.Reflection.Primitives.dll",
+ "build/netstandard2.0/ref/System.Reflection.dll",
+ "build/netstandard2.0/ref/System.Resources.Reader.dll",
+ "build/netstandard2.0/ref/System.Resources.ResourceManager.dll",
+ "build/netstandard2.0/ref/System.Resources.Writer.dll",
+ "build/netstandard2.0/ref/System.Runtime.CompilerServices.VisualC.dll",
+ "build/netstandard2.0/ref/System.Runtime.Extensions.dll",
+ "build/netstandard2.0/ref/System.Runtime.Handles.dll",
+ "build/netstandard2.0/ref/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "build/netstandard2.0/ref/System.Runtime.InteropServices.dll",
+ "build/netstandard2.0/ref/System.Runtime.Numerics.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Formatters.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Json.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Primitives.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Xml.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.dll",
+ "build/netstandard2.0/ref/System.Runtime.dll",
+ "build/netstandard2.0/ref/System.Security.Claims.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Algorithms.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Csp.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Encoding.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Primitives.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.X509Certificates.dll",
+ "build/netstandard2.0/ref/System.Security.Principal.dll",
+ "build/netstandard2.0/ref/System.Security.SecureString.dll",
+ "build/netstandard2.0/ref/System.ServiceModel.Web.dll",
+ "build/netstandard2.0/ref/System.Text.Encoding.Extensions.dll",
+ "build/netstandard2.0/ref/System.Text.Encoding.dll",
+ "build/netstandard2.0/ref/System.Text.RegularExpressions.dll",
+ "build/netstandard2.0/ref/System.Threading.Overlapped.dll",
+ "build/netstandard2.0/ref/System.Threading.Tasks.Parallel.dll",
+ "build/netstandard2.0/ref/System.Threading.Tasks.dll",
+ "build/netstandard2.0/ref/System.Threading.Thread.dll",
+ "build/netstandard2.0/ref/System.Threading.ThreadPool.dll",
+ "build/netstandard2.0/ref/System.Threading.Timer.dll",
+ "build/netstandard2.0/ref/System.Threading.dll",
+ "build/netstandard2.0/ref/System.Transactions.dll",
+ "build/netstandard2.0/ref/System.ValueTuple.dll",
+ "build/netstandard2.0/ref/System.Web.dll",
+ "build/netstandard2.0/ref/System.Windows.dll",
+ "build/netstandard2.0/ref/System.Xml.Linq.dll",
+ "build/netstandard2.0/ref/System.Xml.ReaderWriter.dll",
+ "build/netstandard2.0/ref/System.Xml.Serialization.dll",
+ "build/netstandard2.0/ref/System.Xml.XDocument.dll",
+ "build/netstandard2.0/ref/System.Xml.XPath.XDocument.dll",
+ "build/netstandard2.0/ref/System.Xml.XPath.dll",
+ "build/netstandard2.0/ref/System.Xml.XmlDocument.dll",
+ "build/netstandard2.0/ref/System.Xml.XmlSerializer.dll",
+ "build/netstandard2.0/ref/System.Xml.dll",
+ "build/netstandard2.0/ref/System.dll",
+ "build/netstandard2.0/ref/mscorlib.dll",
+ "build/netstandard2.0/ref/netstandard.dll",
+ "build/netstandard2.0/ref/netstandard.xml",
+ "lib/netstandard1.0/_._",
+ "netstandard.library.2.0.3.nupkg.sha512",
+ "netstandard.library.nuspec"
+ ]
+ },
+ "System.IO/4.3.0": {
+ "sha512": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "type": "package",
+ "path": "system.io/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.IO.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.IO.dll",
+ "ref/netcore50/System.IO.dll",
+ "ref/netcore50/System.IO.xml",
+ "ref/netcore50/de/System.IO.xml",
+ "ref/netcore50/es/System.IO.xml",
+ "ref/netcore50/fr/System.IO.xml",
+ "ref/netcore50/it/System.IO.xml",
+ "ref/netcore50/ja/System.IO.xml",
+ "ref/netcore50/ko/System.IO.xml",
+ "ref/netcore50/ru/System.IO.xml",
+ "ref/netcore50/zh-hans/System.IO.xml",
+ "ref/netcore50/zh-hant/System.IO.xml",
+ "ref/netstandard1.0/System.IO.dll",
+ "ref/netstandard1.0/System.IO.xml",
+ "ref/netstandard1.0/de/System.IO.xml",
+ "ref/netstandard1.0/es/System.IO.xml",
+ "ref/netstandard1.0/fr/System.IO.xml",
+ "ref/netstandard1.0/it/System.IO.xml",
+ "ref/netstandard1.0/ja/System.IO.xml",
+ "ref/netstandard1.0/ko/System.IO.xml",
+ "ref/netstandard1.0/ru/System.IO.xml",
+ "ref/netstandard1.0/zh-hans/System.IO.xml",
+ "ref/netstandard1.0/zh-hant/System.IO.xml",
+ "ref/netstandard1.3/System.IO.dll",
+ "ref/netstandard1.3/System.IO.xml",
+ "ref/netstandard1.3/de/System.IO.xml",
+ "ref/netstandard1.3/es/System.IO.xml",
+ "ref/netstandard1.3/fr/System.IO.xml",
+ "ref/netstandard1.3/it/System.IO.xml",
+ "ref/netstandard1.3/ja/System.IO.xml",
+ "ref/netstandard1.3/ko/System.IO.xml",
+ "ref/netstandard1.3/ru/System.IO.xml",
+ "ref/netstandard1.3/zh-hans/System.IO.xml",
+ "ref/netstandard1.3/zh-hant/System.IO.xml",
+ "ref/netstandard1.5/System.IO.dll",
+ "ref/netstandard1.5/System.IO.xml",
+ "ref/netstandard1.5/de/System.IO.xml",
+ "ref/netstandard1.5/es/System.IO.xml",
+ "ref/netstandard1.5/fr/System.IO.xml",
+ "ref/netstandard1.5/it/System.IO.xml",
+ "ref/netstandard1.5/ja/System.IO.xml",
+ "ref/netstandard1.5/ko/System.IO.xml",
+ "ref/netstandard1.5/ru/System.IO.xml",
+ "ref/netstandard1.5/zh-hans/System.IO.xml",
+ "ref/netstandard1.5/zh-hant/System.IO.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.io.4.3.0.nupkg.sha512",
+ "system.io.nuspec"
+ ]
+ },
+ "System.Reflection/4.3.0": {
+ "sha512": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "type": "package",
+ "path": "system.reflection/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.Reflection.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.Reflection.dll",
+ "ref/netcore50/System.Reflection.dll",
+ "ref/netcore50/System.Reflection.xml",
+ "ref/netcore50/de/System.Reflection.xml",
+ "ref/netcore50/es/System.Reflection.xml",
+ "ref/netcore50/fr/System.Reflection.xml",
+ "ref/netcore50/it/System.Reflection.xml",
+ "ref/netcore50/ja/System.Reflection.xml",
+ "ref/netcore50/ko/System.Reflection.xml",
+ "ref/netcore50/ru/System.Reflection.xml",
+ "ref/netcore50/zh-hans/System.Reflection.xml",
+ "ref/netcore50/zh-hant/System.Reflection.xml",
+ "ref/netstandard1.0/System.Reflection.dll",
+ "ref/netstandard1.0/System.Reflection.xml",
+ "ref/netstandard1.0/de/System.Reflection.xml",
+ "ref/netstandard1.0/es/System.Reflection.xml",
+ "ref/netstandard1.0/fr/System.Reflection.xml",
+ "ref/netstandard1.0/it/System.Reflection.xml",
+ "ref/netstandard1.0/ja/System.Reflection.xml",
+ "ref/netstandard1.0/ko/System.Reflection.xml",
+ "ref/netstandard1.0/ru/System.Reflection.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.xml",
+ "ref/netstandard1.3/System.Reflection.dll",
+ "ref/netstandard1.3/System.Reflection.xml",
+ "ref/netstandard1.3/de/System.Reflection.xml",
+ "ref/netstandard1.3/es/System.Reflection.xml",
+ "ref/netstandard1.3/fr/System.Reflection.xml",
+ "ref/netstandard1.3/it/System.Reflection.xml",
+ "ref/netstandard1.3/ja/System.Reflection.xml",
+ "ref/netstandard1.3/ko/System.Reflection.xml",
+ "ref/netstandard1.3/ru/System.Reflection.xml",
+ "ref/netstandard1.3/zh-hans/System.Reflection.xml",
+ "ref/netstandard1.3/zh-hant/System.Reflection.xml",
+ "ref/netstandard1.5/System.Reflection.dll",
+ "ref/netstandard1.5/System.Reflection.xml",
+ "ref/netstandard1.5/de/System.Reflection.xml",
+ "ref/netstandard1.5/es/System.Reflection.xml",
+ "ref/netstandard1.5/fr/System.Reflection.xml",
+ "ref/netstandard1.5/it/System.Reflection.xml",
+ "ref/netstandard1.5/ja/System.Reflection.xml",
+ "ref/netstandard1.5/ko/System.Reflection.xml",
+ "ref/netstandard1.5/ru/System.Reflection.xml",
+ "ref/netstandard1.5/zh-hans/System.Reflection.xml",
+ "ref/netstandard1.5/zh-hant/System.Reflection.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.reflection.4.3.0.nupkg.sha512",
+ "system.reflection.nuspec"
+ ]
+ },
+ "System.Reflection.Emit.ILGeneration/4.3.0": {
+ "sha512": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "type": "package",
+ "path": "system.reflection.emit.ilgeneration/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Reflection.Emit.ILGeneration.dll",
+ "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll",
+ "lib/portable-net45+wp8/_._",
+ "lib/wp80/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.dll",
+ "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/de/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/es/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/fr/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/it/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/ja/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/ko/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/ru/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.Emit.ILGeneration.xml",
+ "ref/portable-net45+wp8/_._",
+ "ref/wp80/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/_._",
+ "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512",
+ "system.reflection.emit.ilgeneration.nuspec"
+ ]
+ },
+ "System.Reflection.Emit.Lightweight/4.3.0": {
+ "sha512": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "type": "package",
+ "path": "system.reflection.emit.lightweight/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Reflection.Emit.Lightweight.dll",
+ "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll",
+ "lib/portable-net45+wp8/_._",
+ "lib/wp80/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netstandard1.0/System.Reflection.Emit.Lightweight.dll",
+ "ref/netstandard1.0/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/de/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/es/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/fr/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/it/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/ja/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/ko/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/ru/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.Emit.Lightweight.xml",
+ "ref/portable-net45+wp8/_._",
+ "ref/wp80/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/_._",
+ "system.reflection.emit.lightweight.4.3.0.nupkg.sha512",
+ "system.reflection.emit.lightweight.nuspec"
+ ]
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "sha512": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "type": "package",
+ "path": "system.reflection.primitives/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Reflection.Primitives.dll",
+ "ref/netcore50/System.Reflection.Primitives.xml",
+ "ref/netcore50/de/System.Reflection.Primitives.xml",
+ "ref/netcore50/es/System.Reflection.Primitives.xml",
+ "ref/netcore50/fr/System.Reflection.Primitives.xml",
+ "ref/netcore50/it/System.Reflection.Primitives.xml",
+ "ref/netcore50/ja/System.Reflection.Primitives.xml",
+ "ref/netcore50/ko/System.Reflection.Primitives.xml",
+ "ref/netcore50/ru/System.Reflection.Primitives.xml",
+ "ref/netcore50/zh-hans/System.Reflection.Primitives.xml",
+ "ref/netcore50/zh-hant/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/System.Reflection.Primitives.dll",
+ "ref/netstandard1.0/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/de/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/es/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/fr/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/it/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/ja/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/ko/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/ru/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.Primitives.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.reflection.primitives.4.3.0.nupkg.sha512",
+ "system.reflection.primitives.nuspec"
+ ]
+ },
+ "System.Runtime/4.3.0": {
+ "sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "type": "package",
+ "path": "system.runtime/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.Runtime.dll",
+ "lib/portable-net45+win8+wp80+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.Runtime.dll",
+ "ref/netcore50/System.Runtime.dll",
+ "ref/netcore50/System.Runtime.xml",
+ "ref/netcore50/de/System.Runtime.xml",
+ "ref/netcore50/es/System.Runtime.xml",
+ "ref/netcore50/fr/System.Runtime.xml",
+ "ref/netcore50/it/System.Runtime.xml",
+ "ref/netcore50/ja/System.Runtime.xml",
+ "ref/netcore50/ko/System.Runtime.xml",
+ "ref/netcore50/ru/System.Runtime.xml",
+ "ref/netcore50/zh-hans/System.Runtime.xml",
+ "ref/netcore50/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.0/System.Runtime.dll",
+ "ref/netstandard1.0/System.Runtime.xml",
+ "ref/netstandard1.0/de/System.Runtime.xml",
+ "ref/netstandard1.0/es/System.Runtime.xml",
+ "ref/netstandard1.0/fr/System.Runtime.xml",
+ "ref/netstandard1.0/it/System.Runtime.xml",
+ "ref/netstandard1.0/ja/System.Runtime.xml",
+ "ref/netstandard1.0/ko/System.Runtime.xml",
+ "ref/netstandard1.0/ru/System.Runtime.xml",
+ "ref/netstandard1.0/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.0/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.2/System.Runtime.dll",
+ "ref/netstandard1.2/System.Runtime.xml",
+ "ref/netstandard1.2/de/System.Runtime.xml",
+ "ref/netstandard1.2/es/System.Runtime.xml",
+ "ref/netstandard1.2/fr/System.Runtime.xml",
+ "ref/netstandard1.2/it/System.Runtime.xml",
+ "ref/netstandard1.2/ja/System.Runtime.xml",
+ "ref/netstandard1.2/ko/System.Runtime.xml",
+ "ref/netstandard1.2/ru/System.Runtime.xml",
+ "ref/netstandard1.2/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.2/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.3/System.Runtime.dll",
+ "ref/netstandard1.3/System.Runtime.xml",
+ "ref/netstandard1.3/de/System.Runtime.xml",
+ "ref/netstandard1.3/es/System.Runtime.xml",
+ "ref/netstandard1.3/fr/System.Runtime.xml",
+ "ref/netstandard1.3/it/System.Runtime.xml",
+ "ref/netstandard1.3/ja/System.Runtime.xml",
+ "ref/netstandard1.3/ko/System.Runtime.xml",
+ "ref/netstandard1.3/ru/System.Runtime.xml",
+ "ref/netstandard1.3/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.3/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.5/System.Runtime.dll",
+ "ref/netstandard1.5/System.Runtime.xml",
+ "ref/netstandard1.5/de/System.Runtime.xml",
+ "ref/netstandard1.5/es/System.Runtime.xml",
+ "ref/netstandard1.5/fr/System.Runtime.xml",
+ "ref/netstandard1.5/it/System.Runtime.xml",
+ "ref/netstandard1.5/ja/System.Runtime.xml",
+ "ref/netstandard1.5/ko/System.Runtime.xml",
+ "ref/netstandard1.5/ru/System.Runtime.xml",
+ "ref/netstandard1.5/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.5/zh-hant/System.Runtime.xml",
+ "ref/portable-net45+win8+wp80+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.runtime.4.3.0.nupkg.sha512",
+ "system.runtime.nuspec"
+ ]
+ },
+ "System.Text.Encoding/4.3.0": {
+ "sha512": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "type": "package",
+ "path": "system.text.encoding/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Text.Encoding.dll",
+ "ref/netcore50/System.Text.Encoding.xml",
+ "ref/netcore50/de/System.Text.Encoding.xml",
+ "ref/netcore50/es/System.Text.Encoding.xml",
+ "ref/netcore50/fr/System.Text.Encoding.xml",
+ "ref/netcore50/it/System.Text.Encoding.xml",
+ "ref/netcore50/ja/System.Text.Encoding.xml",
+ "ref/netcore50/ko/System.Text.Encoding.xml",
+ "ref/netcore50/ru/System.Text.Encoding.xml",
+ "ref/netcore50/zh-hans/System.Text.Encoding.xml",
+ "ref/netcore50/zh-hant/System.Text.Encoding.xml",
+ "ref/netstandard1.0/System.Text.Encoding.dll",
+ "ref/netstandard1.0/System.Text.Encoding.xml",
+ "ref/netstandard1.0/de/System.Text.Encoding.xml",
+ "ref/netstandard1.0/es/System.Text.Encoding.xml",
+ "ref/netstandard1.0/fr/System.Text.Encoding.xml",
+ "ref/netstandard1.0/it/System.Text.Encoding.xml",
+ "ref/netstandard1.0/ja/System.Text.Encoding.xml",
+ "ref/netstandard1.0/ko/System.Text.Encoding.xml",
+ "ref/netstandard1.0/ru/System.Text.Encoding.xml",
+ "ref/netstandard1.0/zh-hans/System.Text.Encoding.xml",
+ "ref/netstandard1.0/zh-hant/System.Text.Encoding.xml",
+ "ref/netstandard1.3/System.Text.Encoding.dll",
+ "ref/netstandard1.3/System.Text.Encoding.xml",
+ "ref/netstandard1.3/de/System.Text.Encoding.xml",
+ "ref/netstandard1.3/es/System.Text.Encoding.xml",
+ "ref/netstandard1.3/fr/System.Text.Encoding.xml",
+ "ref/netstandard1.3/it/System.Text.Encoding.xml",
+ "ref/netstandard1.3/ja/System.Text.Encoding.xml",
+ "ref/netstandard1.3/ko/System.Text.Encoding.xml",
+ "ref/netstandard1.3/ru/System.Text.Encoding.xml",
+ "ref/netstandard1.3/zh-hans/System.Text.Encoding.xml",
+ "ref/netstandard1.3/zh-hant/System.Text.Encoding.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.text.encoding.4.3.0.nupkg.sha512",
+ "system.text.encoding.nuspec"
+ ]
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "sha512": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "type": "package",
+ "path": "system.threading.tasks/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Threading.Tasks.dll",
+ "ref/netcore50/System.Threading.Tasks.xml",
+ "ref/netcore50/de/System.Threading.Tasks.xml",
+ "ref/netcore50/es/System.Threading.Tasks.xml",
+ "ref/netcore50/fr/System.Threading.Tasks.xml",
+ "ref/netcore50/it/System.Threading.Tasks.xml",
+ "ref/netcore50/ja/System.Threading.Tasks.xml",
+ "ref/netcore50/ko/System.Threading.Tasks.xml",
+ "ref/netcore50/ru/System.Threading.Tasks.xml",
+ "ref/netcore50/zh-hans/System.Threading.Tasks.xml",
+ "ref/netcore50/zh-hant/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/System.Threading.Tasks.dll",
+ "ref/netstandard1.0/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/de/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/es/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/fr/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/it/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/ja/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/ko/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/ru/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/zh-hans/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/zh-hant/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/System.Threading.Tasks.dll",
+ "ref/netstandard1.3/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/de/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/es/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/fr/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/it/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/ja/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/ko/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/ru/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/zh-hans/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/zh-hant/System.Threading.Tasks.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.threading.tasks.4.3.0.nupkg.sha512",
+ "system.threading.tasks.nuspec"
+ ]
+ },
+ "Crow/0.8.1-beta": {
+ "type": "project",
+ "path": "../../Crow/Crow.csproj",
+ "msbuildProject": "../../Crow/Crow.csproj"
+ }
+ },
+ "projectFileDependencyGroups": {
+ ".NETFramework,Version=v4.7.1": [
+ "Crow >= 0.8.1-beta"
+ ],
+ ".NETStandard,Version=v2.0": [
+ "Crow >= 0.8.1-beta",
+ "NETStandard.Library >= 2.0.3"
+ ]
+ },
+ "packageFolders": {
+ "/home/jp/.nuget/packages/": {},
+ "/usr/share/dotnet/sdk/NuGetFallbackFolder": {}
+ },
+ "project": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "/mnt/devel/Crow/Samples/HelloWorld/HelloWorld.csproj",
+ "projectName": "HelloWorld",
+ "projectPath": "/mnt/devel/Crow/Samples/HelloWorld/HelloWorld.csproj",
+ "packagesPath": "/home/jp/.nuget/packages/",
+ "outputPath": "/mnt/devel/Crow/Samples/HelloWorld/obj/",
+ "projectStyle": "PackageReference",
+ "crossTargeting": true,
+ "fallbackFolders": [
+ "/usr/share/dotnet/sdk/NuGetFallbackFolder"
+ ],
+ "configFilePaths": [
+ "/home/jp/.config/NuGet/NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "net471",
+ "netstandard2.0"
+ ],
+ "sources": {
+ "/opt/localNuget": {},
+ "https://api.nuget.org/v3/index.json": {},
+ "https://www.myget.org/F/opentk-develop": {},
+ "https://www.nuget.org/api/v2/": {}
+ },
+ "frameworks": {
+ "net471": {
+ "projectReferences": {
+ "/mnt/devel/Crow/Crow/Crow.csproj": {
+ "projectPath": "/mnt/devel/Crow/Crow/Crow.csproj"
+ }
+ }
+ },
+ "netstandard2.0": {
+ "projectReferences": {
+ "/mnt/devel/Crow/Crow/Crow.csproj": {
+ "projectPath": "/mnt/devel/Crow/Crow/Crow.csproj"
+ }
+ }
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ }
+ },
+ "frameworks": {
+ "net471": {},
+ "netstandard2.0": {
+ "dependencies": {
+ "NETStandard.Library": {
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[2.0.3, )",
+ "autoReferenced": true
+ }
+ },
+ "imports": [
+ "net461"
+ ],
+ "assetTargetFallback": true,
+ "warn": true
+ }
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Hello World" Icon="#Crow.Icons.crow.svg" Width="40%" Height="40%" CornerRadius="5">
+ <VerticalStack>
+ <Label Text="Hello World" Font="mono, 20"/>
+ <Image Path="#Crow.Icons.crow.svg"/>
+ </VerticalStack>
+</Window>
+
--- /dev/null
+<Project Sdk="Microsoft.NET.Sdk">
+ <Import Project="$(SolutionDir)netfx.props" />
+ <PropertyGroup>
+ <TargetFrameworks>net471;netstandard2.0</TargetFrameworks>
+ <OutputPath>$(SolutionDir)build\$(Configuration)\</OutputPath>
+ <OutputType>Exe</OutputType>
+ <RepositoryUrl>https://github.com/jpbruyere/Crow</RepositoryUrl>
+ <License>MIT</License>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <EnableDefaultNoneItems>false</EnableDefaultNoneItems>
+ <ReleaseVersion>0.8.0</ReleaseVersion>
+ </PropertyGroup>
+
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugType>full</DebugType>
+ <DefineConstants>TRACE;DEBUG</DefineConstants>
+ <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
+ </PropertyGroup>
+
+ <ItemGroup Condition="$(TargetFramework.StartsWith('net4'))">
+ <Reference Include="System" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="..\..\Crow\Crow.csproj" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <Datas Include="..\data\**\*.*">
+ <Link>data\%(RecursiveDir)%(Filename)%(Extension)</Link>
+ </Datas>
+ <EmbeddedResource Include="ui\*.*">
+ <LogicalName>ShowCase.%(Filename)%(Extension)</LogicalName>
+ </EmbeddedResource>
+ <None Include="..\common\ui\Interfaces\**\*.*">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ <Link>Interfaces\%(RecursiveDir)%(Filename)%(Extension)</Link>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Remove="..\common\CrowWin.cs" />
+ </ItemGroup>
+</Project>
--- /dev/null
+//
+// UIEditor.cs
+//
+// Author:
+// Jean-Philippe Bruyère <jp.bruyere@hotmail.com>
+//
+// Copyright (c) 2013-2017 Jean-Philippe Bruyère
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using Crow;
+using System.IO;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Linq;
+using System.Text;
+using Crow.IML;
+
+namespace tests
+{
+ class Showcase : Interface
+ {
+ public Container crowContainer;
+
+ [STAThread]
+ static void Main ()
+ {
+ using (Showcase app = new Showcase ()) {
+ //app.Keyboard.KeyDown += App_KeyboardKeyDown;
+
+ Widget g = app.Load ("#ShowCase.showcase.crow");
+ g.DataSource = app;
+ app.crowContainer = g.FindByName ("CrowContainer") as Container;
+ //I set an empty object as datasource at this level to force update when new
+ //widgets are added to the interface
+ app.crowContainer.DataSource = new object ();
+ app.hideError ();
+ app.Run ();
+
+ }
+ }
+
+ static void App_KeyboardKeyDown (object sender, KeyEventArgs e)
+ {
+#if DEBUG_LOG
+ switch (e.Key) {
+ case Key.F2:
+ DebugLog.save (sender as Interface);
+ break;
+ }
+#endif
+ }
+
+ public Showcase ()
+ : base (1024, 800)
+ {
+ }
+
+
+ void Dv_SelectedItemChanged (object sender, SelectionChangeEventArgs e)
+ {
+ FileSystemInfo fi = e.NewValue as FileSystemInfo;
+ if (fi == null)
+ return;
+ if (fi is DirectoryInfo)
+ return;
+ hideError ();
+ lock (UpdateMutex) {
+ try {
+ Widget g = CreateInstance (fi.FullName);
+ crowContainer.SetChild (g);
+ g.DataSource = this;
+ } catch (Exception ex) {
+ Console.WriteLine (ex.ToString ());
+ if (ex is InstantiatorException)
+ showError ((InstantiatorException)ex);
+ }
+ }
+
+ string source = "";
+ using (Stream s = new FileStream (fi.FullName, FileMode.Open)) {
+ using (StreamReader sr = new StreamReader (s)) {
+ source = sr.ReadToEnd ();
+ }
+ }
+ NotifyValueChanged ("source", source);
+ }
+
+ void showError (InstantiatorException ex)
+ {
+ NotifyValueChanged ("ErrorMessage", ex.Path + ": " + ex.InnerException.Message);
+ NotifyValueChanged ("ShowError", true);
+ }
+ void hideError ()
+ {
+ NotifyValueChanged ("ShowError", false);
+ }
+
+ void Tb_TextChanged (object sender, TextChangeEventArgs e)
+ {
+ hideError ();
+ Widget g = null;
+ try {
+ lock (UpdateMutex) {
+ Instantiator inst = null;
+ using (MemoryStream ms = new MemoryStream (Encoding.UTF8.GetBytes (e.Text))) {
+ inst = new Instantiator (this, ms);
+ }
+ g = inst.CreateInstance ();
+ crowContainer.SetChild (g);
+ g.DataSource = this;
+ }
+ } catch (Exception ex) {
+ Console.WriteLine (ex.ToString ());
+ if (ex is InstantiatorException)
+ showError ((InstantiatorException)ex);
+ }
+ }
+
+
+ #region Test values for Binding
+ public int intValue = 500;
+ DirectoryInfo curDir = new DirectoryInfo (Path.GetDirectoryName (Assembly.GetEntryAssembly ().Location));
+ //DirectoryInfo curDir = new DirectoryInfo (@"/mnt/data/Images");
+ public FileSystemInfo [] CurDirectory {
+ get { return curDir.GetFileSystemInfos (); }
+ }
+ public int IntValue {
+ get {
+ return intValue;
+ }
+ set {
+ intValue = value;
+ NotifyValueChanged ("IntValue", intValue);
+ }
+ }
+ void onSpinnerValueChange (object sender, ValueChangeEventArgs e)
+ {
+ if (e.MemberName != "Value")
+ return;
+ intValue = Convert.ToInt32 (e.NewValue);
+ }
+ void change_alignment (object sender, EventArgs e)
+ {
+ RadioButton rb = sender as RadioButton;
+ if (rb == null)
+ return;
+ NotifyValueChanged ("alignment", Enum.Parse (typeof (Alignment), rb.Caption));
+ }
+ public IList<String> List2 = new List<string> (new string []
+ {
+ "string1",
+ "string2",
+ "string3",
+ // "string4",
+ // "string5",
+ // "string6",
+ // "string7",
+ // "string8",
+ // "string8",
+ // "string8",
+ // "string8",
+ // "string8",
+ // "string8",
+ // "string9"
+ }
+ );
+ public IList<String> TestList2 {
+ set {
+ List2 = value;
+ NotifyValueChanged ("TestList2", testList);
+ }
+ get { return List2; }
+ }
+ IList<Color> testList = Color.ColorDic.Values.ToList ();
+ public IList<Color> TestList {
+ set {
+ testList = value;
+ NotifyValueChanged ("TestList", testList);
+ }
+ get { return testList; }
+ }
+ string curSources = "";
+ public string CurSources {
+ get { return curSources; }
+ set {
+ if (value == curSources)
+ return;
+ curSources = value;
+ NotifyValueChanged ("CurSources", curSources);
+ }
+ }
+ bool boolVal = true;
+ public bool BoolVal {
+ get { return boolVal; }
+ set {
+ if (boolVal == value)
+ return;
+ boolVal = value;
+ NotifyValueChanged ("BoolVal", boolVal);
+ }
+ }
+
+ #endregion
+
+ void OnClear (object sender, MouseButtonEventArgs e) => TestList = null;
+
+ void OnLoadList (object sender, MouseButtonEventArgs e) => TestList = Color.ColorDic.Values.ToList ();
+
+ }
+
+
+}
\ No newline at end of file
--- /dev/null
+{
+ "version": 1,
+ "dgSpecHash": "Lonjf74CSvIz4D0v5YsXwKD/S11cKW+FVV4HlbnO9USLfjai/RrGsCWS5/zgY3KGAmveVub6J2bqJrRa4Nltbg==",
+ "success": true
+}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+ <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
+ <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
+ <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">/mnt/devel/Crow/Samples/ShowCase/obj/project.assets.json</ProjectAssetsFile>
+ <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/jp/.nuget/packages/</NuGetPackageRoot>
+ <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/jp/.nuget/packages/;/usr/share/dotnet/sdk/NuGetFallbackFolder</NuGetPackageFolders>
+ <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
+ <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">4.8.0</NuGetToolVersion>
+ </PropertyGroup>
+ <PropertyGroup>
+ <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+ </PropertyGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+ </PropertyGroup>
+ <ImportGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' AND '$(ExcludeRestorePackageImports)' != 'true' ">
+ <Import Project="/usr/share/dotnet/sdk/NuGetFallbackFolder/netstandard.library/2.0.3/build/netstandard2.0/NETStandard.Library.targets" Condition="Exists('/usr/share/dotnet/sdk/NuGetFallbackFolder/netstandard.library/2.0.3/build/netstandard2.0/NETStandard.Library.targets')" />
+ </ImportGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+{
+ "version": 3,
+ "targets": {
+ ".NETFramework,Version=v4.7.1": {
+ "Crow/0.8.1-beta": {
+ "type": "project",
+ "framework": ".NETFramework,Version=v4.7.1",
+ "compile": {
+ "bin/placeholder/Crow.dll": {}
+ },
+ "runtime": {
+ "bin/placeholder/Crow.dll": {}
+ }
+ }
+ },
+ ".NETStandard,Version=v2.0": {
+ "Microsoft.NETCore.Platforms/1.1.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "Microsoft.NETCore.Targets/1.1.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "NETStandard.Library/2.0.3": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0"
+ },
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "build": {
+ "build/netstandard2.0/NETStandard.Library.targets": {}
+ }
+ },
+ "System.IO/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.IO.dll": {}
+ }
+ },
+ "System.Reflection/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.Reflection.dll": {}
+ }
+ },
+ "System.Reflection.Emit.ILGeneration/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {}
+ }
+ },
+ "System.Reflection.Emit.Lightweight/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/System.Reflection.Emit.Lightweight.dll": {}
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": {}
+ }
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.0/System.Reflection.Primitives.dll": {}
+ }
+ },
+ "System.Runtime/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ },
+ "compile": {
+ "ref/netstandard1.5/System.Runtime.dll": {}
+ }
+ },
+ "System.Text.Encoding/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Text.Encoding.dll": {}
+ }
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ },
+ "compile": {
+ "ref/netstandard1.3/System.Threading.Tasks.dll": {}
+ }
+ },
+ "Crow/0.8.1-beta": {
+ "type": "project",
+ "framework": ".NETStandard,Version=v2.0",
+ "dependencies": {
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0"
+ },
+ "compile": {
+ "bin/placeholder/Crow.dll": {}
+ },
+ "runtime": {
+ "bin/placeholder/Crow.dll": {}
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.NETCore.Platforms/1.1.0": {
+ "sha512": "a/iSwnRZb+LHFk49hQOyThh/ZNC3vsbZsF65XwQIb863qF6msmhdQtxGXFL28Ob2NsCz/drEj28BJd/YPpLRBg==",
+ "type": "package",
+ "path": "microsoft.netcore.platforms/1.1.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/_._",
+ "microsoft.netcore.platforms.1.1.0.nupkg.sha512",
+ "microsoft.netcore.platforms.nuspec",
+ "runtime.json"
+ ]
+ },
+ "Microsoft.NETCore.Targets/1.1.0": {
+ "sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
+ "type": "package",
+ "path": "microsoft.netcore.targets/1.1.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/netstandard1.0/_._",
+ "microsoft.netcore.targets.1.1.0.nupkg.sha512",
+ "microsoft.netcore.targets.nuspec",
+ "runtime.json"
+ ]
+ },
+ "NETStandard.Library/2.0.3": {
+ "sha512": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
+ "type": "package",
+ "path": "netstandard.library/2.0.3",
+ "files": [
+ ".nupkg.metadata",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "build/netstandard2.0/NETStandard.Library.targets",
+ "build/netstandard2.0/ref/Microsoft.Win32.Primitives.dll",
+ "build/netstandard2.0/ref/System.AppContext.dll",
+ "build/netstandard2.0/ref/System.Collections.Concurrent.dll",
+ "build/netstandard2.0/ref/System.Collections.NonGeneric.dll",
+ "build/netstandard2.0/ref/System.Collections.Specialized.dll",
+ "build/netstandard2.0/ref/System.Collections.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.Composition.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.EventBasedAsync.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.Primitives.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.TypeConverter.dll",
+ "build/netstandard2.0/ref/System.ComponentModel.dll",
+ "build/netstandard2.0/ref/System.Console.dll",
+ "build/netstandard2.0/ref/System.Core.dll",
+ "build/netstandard2.0/ref/System.Data.Common.dll",
+ "build/netstandard2.0/ref/System.Data.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Contracts.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Debug.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.FileVersionInfo.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Process.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.StackTrace.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.TextWriterTraceListener.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Tools.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.TraceSource.dll",
+ "build/netstandard2.0/ref/System.Diagnostics.Tracing.dll",
+ "build/netstandard2.0/ref/System.Drawing.Primitives.dll",
+ "build/netstandard2.0/ref/System.Drawing.dll",
+ "build/netstandard2.0/ref/System.Dynamic.Runtime.dll",
+ "build/netstandard2.0/ref/System.Globalization.Calendars.dll",
+ "build/netstandard2.0/ref/System.Globalization.Extensions.dll",
+ "build/netstandard2.0/ref/System.Globalization.dll",
+ "build/netstandard2.0/ref/System.IO.Compression.FileSystem.dll",
+ "build/netstandard2.0/ref/System.IO.Compression.ZipFile.dll",
+ "build/netstandard2.0/ref/System.IO.Compression.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.DriveInfo.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.Primitives.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.Watcher.dll",
+ "build/netstandard2.0/ref/System.IO.FileSystem.dll",
+ "build/netstandard2.0/ref/System.IO.IsolatedStorage.dll",
+ "build/netstandard2.0/ref/System.IO.MemoryMappedFiles.dll",
+ "build/netstandard2.0/ref/System.IO.Pipes.dll",
+ "build/netstandard2.0/ref/System.IO.UnmanagedMemoryStream.dll",
+ "build/netstandard2.0/ref/System.IO.dll",
+ "build/netstandard2.0/ref/System.Linq.Expressions.dll",
+ "build/netstandard2.0/ref/System.Linq.Parallel.dll",
+ "build/netstandard2.0/ref/System.Linq.Queryable.dll",
+ "build/netstandard2.0/ref/System.Linq.dll",
+ "build/netstandard2.0/ref/System.Net.Http.dll",
+ "build/netstandard2.0/ref/System.Net.NameResolution.dll",
+ "build/netstandard2.0/ref/System.Net.NetworkInformation.dll",
+ "build/netstandard2.0/ref/System.Net.Ping.dll",
+ "build/netstandard2.0/ref/System.Net.Primitives.dll",
+ "build/netstandard2.0/ref/System.Net.Requests.dll",
+ "build/netstandard2.0/ref/System.Net.Security.dll",
+ "build/netstandard2.0/ref/System.Net.Sockets.dll",
+ "build/netstandard2.0/ref/System.Net.WebHeaderCollection.dll",
+ "build/netstandard2.0/ref/System.Net.WebSockets.Client.dll",
+ "build/netstandard2.0/ref/System.Net.WebSockets.dll",
+ "build/netstandard2.0/ref/System.Net.dll",
+ "build/netstandard2.0/ref/System.Numerics.dll",
+ "build/netstandard2.0/ref/System.ObjectModel.dll",
+ "build/netstandard2.0/ref/System.Reflection.Extensions.dll",
+ "build/netstandard2.0/ref/System.Reflection.Primitives.dll",
+ "build/netstandard2.0/ref/System.Reflection.dll",
+ "build/netstandard2.0/ref/System.Resources.Reader.dll",
+ "build/netstandard2.0/ref/System.Resources.ResourceManager.dll",
+ "build/netstandard2.0/ref/System.Resources.Writer.dll",
+ "build/netstandard2.0/ref/System.Runtime.CompilerServices.VisualC.dll",
+ "build/netstandard2.0/ref/System.Runtime.Extensions.dll",
+ "build/netstandard2.0/ref/System.Runtime.Handles.dll",
+ "build/netstandard2.0/ref/System.Runtime.InteropServices.RuntimeInformation.dll",
+ "build/netstandard2.0/ref/System.Runtime.InteropServices.dll",
+ "build/netstandard2.0/ref/System.Runtime.Numerics.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Formatters.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Json.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Primitives.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.Xml.dll",
+ "build/netstandard2.0/ref/System.Runtime.Serialization.dll",
+ "build/netstandard2.0/ref/System.Runtime.dll",
+ "build/netstandard2.0/ref/System.Security.Claims.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Algorithms.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Csp.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Encoding.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.Primitives.dll",
+ "build/netstandard2.0/ref/System.Security.Cryptography.X509Certificates.dll",
+ "build/netstandard2.0/ref/System.Security.Principal.dll",
+ "build/netstandard2.0/ref/System.Security.SecureString.dll",
+ "build/netstandard2.0/ref/System.ServiceModel.Web.dll",
+ "build/netstandard2.0/ref/System.Text.Encoding.Extensions.dll",
+ "build/netstandard2.0/ref/System.Text.Encoding.dll",
+ "build/netstandard2.0/ref/System.Text.RegularExpressions.dll",
+ "build/netstandard2.0/ref/System.Threading.Overlapped.dll",
+ "build/netstandard2.0/ref/System.Threading.Tasks.Parallel.dll",
+ "build/netstandard2.0/ref/System.Threading.Tasks.dll",
+ "build/netstandard2.0/ref/System.Threading.Thread.dll",
+ "build/netstandard2.0/ref/System.Threading.ThreadPool.dll",
+ "build/netstandard2.0/ref/System.Threading.Timer.dll",
+ "build/netstandard2.0/ref/System.Threading.dll",
+ "build/netstandard2.0/ref/System.Transactions.dll",
+ "build/netstandard2.0/ref/System.ValueTuple.dll",
+ "build/netstandard2.0/ref/System.Web.dll",
+ "build/netstandard2.0/ref/System.Windows.dll",
+ "build/netstandard2.0/ref/System.Xml.Linq.dll",
+ "build/netstandard2.0/ref/System.Xml.ReaderWriter.dll",
+ "build/netstandard2.0/ref/System.Xml.Serialization.dll",
+ "build/netstandard2.0/ref/System.Xml.XDocument.dll",
+ "build/netstandard2.0/ref/System.Xml.XPath.XDocument.dll",
+ "build/netstandard2.0/ref/System.Xml.XPath.dll",
+ "build/netstandard2.0/ref/System.Xml.XmlDocument.dll",
+ "build/netstandard2.0/ref/System.Xml.XmlSerializer.dll",
+ "build/netstandard2.0/ref/System.Xml.dll",
+ "build/netstandard2.0/ref/System.dll",
+ "build/netstandard2.0/ref/mscorlib.dll",
+ "build/netstandard2.0/ref/netstandard.dll",
+ "build/netstandard2.0/ref/netstandard.xml",
+ "lib/netstandard1.0/_._",
+ "netstandard.library.2.0.3.nupkg.sha512",
+ "netstandard.library.nuspec"
+ ]
+ },
+ "System.IO/4.3.0": {
+ "sha512": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "type": "package",
+ "path": "system.io/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.IO.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.IO.dll",
+ "ref/netcore50/System.IO.dll",
+ "ref/netcore50/System.IO.xml",
+ "ref/netcore50/de/System.IO.xml",
+ "ref/netcore50/es/System.IO.xml",
+ "ref/netcore50/fr/System.IO.xml",
+ "ref/netcore50/it/System.IO.xml",
+ "ref/netcore50/ja/System.IO.xml",
+ "ref/netcore50/ko/System.IO.xml",
+ "ref/netcore50/ru/System.IO.xml",
+ "ref/netcore50/zh-hans/System.IO.xml",
+ "ref/netcore50/zh-hant/System.IO.xml",
+ "ref/netstandard1.0/System.IO.dll",
+ "ref/netstandard1.0/System.IO.xml",
+ "ref/netstandard1.0/de/System.IO.xml",
+ "ref/netstandard1.0/es/System.IO.xml",
+ "ref/netstandard1.0/fr/System.IO.xml",
+ "ref/netstandard1.0/it/System.IO.xml",
+ "ref/netstandard1.0/ja/System.IO.xml",
+ "ref/netstandard1.0/ko/System.IO.xml",
+ "ref/netstandard1.0/ru/System.IO.xml",
+ "ref/netstandard1.0/zh-hans/System.IO.xml",
+ "ref/netstandard1.0/zh-hant/System.IO.xml",
+ "ref/netstandard1.3/System.IO.dll",
+ "ref/netstandard1.3/System.IO.xml",
+ "ref/netstandard1.3/de/System.IO.xml",
+ "ref/netstandard1.3/es/System.IO.xml",
+ "ref/netstandard1.3/fr/System.IO.xml",
+ "ref/netstandard1.3/it/System.IO.xml",
+ "ref/netstandard1.3/ja/System.IO.xml",
+ "ref/netstandard1.3/ko/System.IO.xml",
+ "ref/netstandard1.3/ru/System.IO.xml",
+ "ref/netstandard1.3/zh-hans/System.IO.xml",
+ "ref/netstandard1.3/zh-hant/System.IO.xml",
+ "ref/netstandard1.5/System.IO.dll",
+ "ref/netstandard1.5/System.IO.xml",
+ "ref/netstandard1.5/de/System.IO.xml",
+ "ref/netstandard1.5/es/System.IO.xml",
+ "ref/netstandard1.5/fr/System.IO.xml",
+ "ref/netstandard1.5/it/System.IO.xml",
+ "ref/netstandard1.5/ja/System.IO.xml",
+ "ref/netstandard1.5/ko/System.IO.xml",
+ "ref/netstandard1.5/ru/System.IO.xml",
+ "ref/netstandard1.5/zh-hans/System.IO.xml",
+ "ref/netstandard1.5/zh-hant/System.IO.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.io.4.3.0.nupkg.sha512",
+ "system.io.nuspec"
+ ]
+ },
+ "System.Reflection/4.3.0": {
+ "sha512": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "type": "package",
+ "path": "system.reflection/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.Reflection.dll",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.Reflection.dll",
+ "ref/netcore50/System.Reflection.dll",
+ "ref/netcore50/System.Reflection.xml",
+ "ref/netcore50/de/System.Reflection.xml",
+ "ref/netcore50/es/System.Reflection.xml",
+ "ref/netcore50/fr/System.Reflection.xml",
+ "ref/netcore50/it/System.Reflection.xml",
+ "ref/netcore50/ja/System.Reflection.xml",
+ "ref/netcore50/ko/System.Reflection.xml",
+ "ref/netcore50/ru/System.Reflection.xml",
+ "ref/netcore50/zh-hans/System.Reflection.xml",
+ "ref/netcore50/zh-hant/System.Reflection.xml",
+ "ref/netstandard1.0/System.Reflection.dll",
+ "ref/netstandard1.0/System.Reflection.xml",
+ "ref/netstandard1.0/de/System.Reflection.xml",
+ "ref/netstandard1.0/es/System.Reflection.xml",
+ "ref/netstandard1.0/fr/System.Reflection.xml",
+ "ref/netstandard1.0/it/System.Reflection.xml",
+ "ref/netstandard1.0/ja/System.Reflection.xml",
+ "ref/netstandard1.0/ko/System.Reflection.xml",
+ "ref/netstandard1.0/ru/System.Reflection.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.xml",
+ "ref/netstandard1.3/System.Reflection.dll",
+ "ref/netstandard1.3/System.Reflection.xml",
+ "ref/netstandard1.3/de/System.Reflection.xml",
+ "ref/netstandard1.3/es/System.Reflection.xml",
+ "ref/netstandard1.3/fr/System.Reflection.xml",
+ "ref/netstandard1.3/it/System.Reflection.xml",
+ "ref/netstandard1.3/ja/System.Reflection.xml",
+ "ref/netstandard1.3/ko/System.Reflection.xml",
+ "ref/netstandard1.3/ru/System.Reflection.xml",
+ "ref/netstandard1.3/zh-hans/System.Reflection.xml",
+ "ref/netstandard1.3/zh-hant/System.Reflection.xml",
+ "ref/netstandard1.5/System.Reflection.dll",
+ "ref/netstandard1.5/System.Reflection.xml",
+ "ref/netstandard1.5/de/System.Reflection.xml",
+ "ref/netstandard1.5/es/System.Reflection.xml",
+ "ref/netstandard1.5/fr/System.Reflection.xml",
+ "ref/netstandard1.5/it/System.Reflection.xml",
+ "ref/netstandard1.5/ja/System.Reflection.xml",
+ "ref/netstandard1.5/ko/System.Reflection.xml",
+ "ref/netstandard1.5/ru/System.Reflection.xml",
+ "ref/netstandard1.5/zh-hans/System.Reflection.xml",
+ "ref/netstandard1.5/zh-hant/System.Reflection.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.reflection.4.3.0.nupkg.sha512",
+ "system.reflection.nuspec"
+ ]
+ },
+ "System.Reflection.Emit.ILGeneration/4.3.0": {
+ "sha512": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "type": "package",
+ "path": "system.reflection.emit.ilgeneration/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Reflection.Emit.ILGeneration.dll",
+ "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll",
+ "lib/portable-net45+wp8/_._",
+ "lib/wp80/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.dll",
+ "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/de/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/es/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/fr/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/it/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/ja/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/ko/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/ru/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.Emit.ILGeneration.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.Emit.ILGeneration.xml",
+ "ref/portable-net45+wp8/_._",
+ "ref/wp80/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/_._",
+ "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512",
+ "system.reflection.emit.ilgeneration.nuspec"
+ ]
+ },
+ "System.Reflection.Emit.Lightweight/4.3.0": {
+ "sha512": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "type": "package",
+ "path": "system.reflection.emit.lightweight/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/netcore50/System.Reflection.Emit.Lightweight.dll",
+ "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll",
+ "lib/portable-net45+wp8/_._",
+ "lib/wp80/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netstandard1.0/System.Reflection.Emit.Lightweight.dll",
+ "ref/netstandard1.0/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/de/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/es/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/fr/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/it/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/ja/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/ko/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/ru/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.Emit.Lightweight.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.Emit.Lightweight.xml",
+ "ref/portable-net45+wp8/_._",
+ "ref/wp80/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/aot/lib/netcore50/_._",
+ "system.reflection.emit.lightweight.4.3.0.nupkg.sha512",
+ "system.reflection.emit.lightweight.nuspec"
+ ]
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "sha512": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "type": "package",
+ "path": "system.reflection.primitives/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Reflection.Primitives.dll",
+ "ref/netcore50/System.Reflection.Primitives.xml",
+ "ref/netcore50/de/System.Reflection.Primitives.xml",
+ "ref/netcore50/es/System.Reflection.Primitives.xml",
+ "ref/netcore50/fr/System.Reflection.Primitives.xml",
+ "ref/netcore50/it/System.Reflection.Primitives.xml",
+ "ref/netcore50/ja/System.Reflection.Primitives.xml",
+ "ref/netcore50/ko/System.Reflection.Primitives.xml",
+ "ref/netcore50/ru/System.Reflection.Primitives.xml",
+ "ref/netcore50/zh-hans/System.Reflection.Primitives.xml",
+ "ref/netcore50/zh-hant/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/System.Reflection.Primitives.dll",
+ "ref/netstandard1.0/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/de/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/es/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/fr/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/it/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/ja/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/ko/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/ru/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/zh-hans/System.Reflection.Primitives.xml",
+ "ref/netstandard1.0/zh-hant/System.Reflection.Primitives.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.reflection.primitives.4.3.0.nupkg.sha512",
+ "system.reflection.primitives.nuspec"
+ ]
+ },
+ "System.Runtime/4.3.0": {
+ "sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "type": "package",
+ "path": "system.runtime/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/net462/System.Runtime.dll",
+ "lib/portable-net45+win8+wp80+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/net462/System.Runtime.dll",
+ "ref/netcore50/System.Runtime.dll",
+ "ref/netcore50/System.Runtime.xml",
+ "ref/netcore50/de/System.Runtime.xml",
+ "ref/netcore50/es/System.Runtime.xml",
+ "ref/netcore50/fr/System.Runtime.xml",
+ "ref/netcore50/it/System.Runtime.xml",
+ "ref/netcore50/ja/System.Runtime.xml",
+ "ref/netcore50/ko/System.Runtime.xml",
+ "ref/netcore50/ru/System.Runtime.xml",
+ "ref/netcore50/zh-hans/System.Runtime.xml",
+ "ref/netcore50/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.0/System.Runtime.dll",
+ "ref/netstandard1.0/System.Runtime.xml",
+ "ref/netstandard1.0/de/System.Runtime.xml",
+ "ref/netstandard1.0/es/System.Runtime.xml",
+ "ref/netstandard1.0/fr/System.Runtime.xml",
+ "ref/netstandard1.0/it/System.Runtime.xml",
+ "ref/netstandard1.0/ja/System.Runtime.xml",
+ "ref/netstandard1.0/ko/System.Runtime.xml",
+ "ref/netstandard1.0/ru/System.Runtime.xml",
+ "ref/netstandard1.0/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.0/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.2/System.Runtime.dll",
+ "ref/netstandard1.2/System.Runtime.xml",
+ "ref/netstandard1.2/de/System.Runtime.xml",
+ "ref/netstandard1.2/es/System.Runtime.xml",
+ "ref/netstandard1.2/fr/System.Runtime.xml",
+ "ref/netstandard1.2/it/System.Runtime.xml",
+ "ref/netstandard1.2/ja/System.Runtime.xml",
+ "ref/netstandard1.2/ko/System.Runtime.xml",
+ "ref/netstandard1.2/ru/System.Runtime.xml",
+ "ref/netstandard1.2/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.2/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.3/System.Runtime.dll",
+ "ref/netstandard1.3/System.Runtime.xml",
+ "ref/netstandard1.3/de/System.Runtime.xml",
+ "ref/netstandard1.3/es/System.Runtime.xml",
+ "ref/netstandard1.3/fr/System.Runtime.xml",
+ "ref/netstandard1.3/it/System.Runtime.xml",
+ "ref/netstandard1.3/ja/System.Runtime.xml",
+ "ref/netstandard1.3/ko/System.Runtime.xml",
+ "ref/netstandard1.3/ru/System.Runtime.xml",
+ "ref/netstandard1.3/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.3/zh-hant/System.Runtime.xml",
+ "ref/netstandard1.5/System.Runtime.dll",
+ "ref/netstandard1.5/System.Runtime.xml",
+ "ref/netstandard1.5/de/System.Runtime.xml",
+ "ref/netstandard1.5/es/System.Runtime.xml",
+ "ref/netstandard1.5/fr/System.Runtime.xml",
+ "ref/netstandard1.5/it/System.Runtime.xml",
+ "ref/netstandard1.5/ja/System.Runtime.xml",
+ "ref/netstandard1.5/ko/System.Runtime.xml",
+ "ref/netstandard1.5/ru/System.Runtime.xml",
+ "ref/netstandard1.5/zh-hans/System.Runtime.xml",
+ "ref/netstandard1.5/zh-hant/System.Runtime.xml",
+ "ref/portable-net45+win8+wp80+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.runtime.4.3.0.nupkg.sha512",
+ "system.runtime.nuspec"
+ ]
+ },
+ "System.Text.Encoding/4.3.0": {
+ "sha512": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "type": "package",
+ "path": "system.text.encoding/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Text.Encoding.dll",
+ "ref/netcore50/System.Text.Encoding.xml",
+ "ref/netcore50/de/System.Text.Encoding.xml",
+ "ref/netcore50/es/System.Text.Encoding.xml",
+ "ref/netcore50/fr/System.Text.Encoding.xml",
+ "ref/netcore50/it/System.Text.Encoding.xml",
+ "ref/netcore50/ja/System.Text.Encoding.xml",
+ "ref/netcore50/ko/System.Text.Encoding.xml",
+ "ref/netcore50/ru/System.Text.Encoding.xml",
+ "ref/netcore50/zh-hans/System.Text.Encoding.xml",
+ "ref/netcore50/zh-hant/System.Text.Encoding.xml",
+ "ref/netstandard1.0/System.Text.Encoding.dll",
+ "ref/netstandard1.0/System.Text.Encoding.xml",
+ "ref/netstandard1.0/de/System.Text.Encoding.xml",
+ "ref/netstandard1.0/es/System.Text.Encoding.xml",
+ "ref/netstandard1.0/fr/System.Text.Encoding.xml",
+ "ref/netstandard1.0/it/System.Text.Encoding.xml",
+ "ref/netstandard1.0/ja/System.Text.Encoding.xml",
+ "ref/netstandard1.0/ko/System.Text.Encoding.xml",
+ "ref/netstandard1.0/ru/System.Text.Encoding.xml",
+ "ref/netstandard1.0/zh-hans/System.Text.Encoding.xml",
+ "ref/netstandard1.0/zh-hant/System.Text.Encoding.xml",
+ "ref/netstandard1.3/System.Text.Encoding.dll",
+ "ref/netstandard1.3/System.Text.Encoding.xml",
+ "ref/netstandard1.3/de/System.Text.Encoding.xml",
+ "ref/netstandard1.3/es/System.Text.Encoding.xml",
+ "ref/netstandard1.3/fr/System.Text.Encoding.xml",
+ "ref/netstandard1.3/it/System.Text.Encoding.xml",
+ "ref/netstandard1.3/ja/System.Text.Encoding.xml",
+ "ref/netstandard1.3/ko/System.Text.Encoding.xml",
+ "ref/netstandard1.3/ru/System.Text.Encoding.xml",
+ "ref/netstandard1.3/zh-hans/System.Text.Encoding.xml",
+ "ref/netstandard1.3/zh-hant/System.Text.Encoding.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.text.encoding.4.3.0.nupkg.sha512",
+ "system.text.encoding.nuspec"
+ ]
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "sha512": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "type": "package",
+ "path": "system.threading.tasks/4.3.0",
+ "files": [
+ ".nupkg.metadata",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net45/_._",
+ "lib/portable-net45+win8+wp8+wpa81/_._",
+ "lib/win8/_._",
+ "lib/wp80/_._",
+ "lib/wpa81/_._",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net45/_._",
+ "ref/netcore50/System.Threading.Tasks.dll",
+ "ref/netcore50/System.Threading.Tasks.xml",
+ "ref/netcore50/de/System.Threading.Tasks.xml",
+ "ref/netcore50/es/System.Threading.Tasks.xml",
+ "ref/netcore50/fr/System.Threading.Tasks.xml",
+ "ref/netcore50/it/System.Threading.Tasks.xml",
+ "ref/netcore50/ja/System.Threading.Tasks.xml",
+ "ref/netcore50/ko/System.Threading.Tasks.xml",
+ "ref/netcore50/ru/System.Threading.Tasks.xml",
+ "ref/netcore50/zh-hans/System.Threading.Tasks.xml",
+ "ref/netcore50/zh-hant/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/System.Threading.Tasks.dll",
+ "ref/netstandard1.0/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/de/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/es/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/fr/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/it/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/ja/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/ko/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/ru/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/zh-hans/System.Threading.Tasks.xml",
+ "ref/netstandard1.0/zh-hant/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/System.Threading.Tasks.dll",
+ "ref/netstandard1.3/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/de/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/es/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/fr/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/it/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/ja/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/ko/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/ru/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/zh-hans/System.Threading.Tasks.xml",
+ "ref/netstandard1.3/zh-hant/System.Threading.Tasks.xml",
+ "ref/portable-net45+win8+wp8+wpa81/_._",
+ "ref/win8/_._",
+ "ref/wp80/_._",
+ "ref/wpa81/_._",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "system.threading.tasks.4.3.0.nupkg.sha512",
+ "system.threading.tasks.nuspec"
+ ]
+ },
+ "Crow/0.8.1-beta": {
+ "type": "project",
+ "path": "../../Crow/Crow.csproj",
+ "msbuildProject": "../../Crow/Crow.csproj"
+ }
+ },
+ "projectFileDependencyGroups": {
+ ".NETFramework,Version=v4.7.1": [
+ "Crow >= 0.8.1-beta"
+ ],
+ ".NETStandard,Version=v2.0": [
+ "Crow >= 0.8.1-beta",
+ "NETStandard.Library >= 2.0.3"
+ ]
+ },
+ "packageFolders": {
+ "/home/jp/.nuget/packages/": {},
+ "/usr/share/dotnet/sdk/NuGetFallbackFolder": {}
+ },
+ "project": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "/mnt/devel/Crow/Samples/ShowCase/ShowCase.csproj",
+ "projectName": "ShowCase",
+ "projectPath": "/mnt/devel/Crow/Samples/ShowCase/ShowCase.csproj",
+ "packagesPath": "/home/jp/.nuget/packages/",
+ "outputPath": "/mnt/devel/Crow/Samples/ShowCase/obj/",
+ "projectStyle": "PackageReference",
+ "crossTargeting": true,
+ "fallbackFolders": [
+ "/usr/share/dotnet/sdk/NuGetFallbackFolder"
+ ],
+ "configFilePaths": [
+ "/home/jp/.config/NuGet/NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "net471",
+ "netstandard2.0"
+ ],
+ "sources": {
+ "/opt/localNuget": {},
+ "https://api.nuget.org/v3/index.json": {},
+ "https://www.myget.org/F/opentk-develop": {},
+ "https://www.nuget.org/api/v2/": {}
+ },
+ "frameworks": {
+ "net471": {
+ "projectReferences": {
+ "/mnt/devel/Crow/Crow/Crow.csproj": {
+ "projectPath": "/mnt/devel/Crow/Crow/Crow.csproj"
+ }
+ }
+ },
+ "netstandard2.0": {
+ "projectReferences": {
+ "/mnt/devel/Crow/Crow/Crow.csproj": {
+ "projectPath": "/mnt/devel/Crow/Crow/Crow.csproj"
+ }
+ }
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ }
+ },
+ "frameworks": {
+ "net471": {},
+ "netstandard2.0": {
+ "dependencies": {
+ "NETStandard.Library": {
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[2.0.3, )",
+ "autoReferenced": true
+ }
+ },
+ "imports": [
+ "net461"
+ ],
+ "assetTargetFallback": true,
+ "warn": true
+ }
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="CVKL" version="0.1.2" targetFramework="net471" />
+ <package id="glTF2Loader" version="1.1.3-alpha" targetFramework="net471" />
+ <package id="Newtonsoft.Json" version="12.0.2" targetFramework="net471" />
+ <package id="System.Numerics.Vectors" version="4.6.0-preview4.19212.13" targetFramework="net471" />
+ <package id="System.Runtime.CompilerServices.Unsafe" version="4.6.0-preview4.19212.13" targetFramework="net471" />
+ <package id="Vulkan" version="0.1.2.6" targetFramework="net471" />
+</packages>
\ No newline at end of file
--- /dev/null
+<Label Font="{./Font}" Text="{./Caption}" Height="{./HeightPolicy}" Width="{./WidthPolicy}"
+ Margin="3"
+ Background="{./Background}"
+ Foreground="DimGrey"
+ TextAlignment="Center"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGrey}"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Background="SeaGreen"
+ MinimumSize="50,50"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="Lust" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="50%" Height="50%" Background="Maize"
+ MinimumSize="50,50"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="MediumSeaGreen" Margin="10" Fit="true">
+ <Widget Margin="10" Width="50%" Height="50%" Background="DarkGreen"
+ MinimumSize="50,50"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="DimGrey" Margin="10" Fit="true">
+ <Label Text="{fps}" Margin="10" Fit="true" Background="SeaGreen"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Background="DimGrey" Margin="10" Width="90%" Height="90%" Spacing="100" Focusable="true">
+ <Container Name="source" StartDrag="{Background=DimGrey}" EndDrag="{Background=SeaGreen}" Focusable="true" Fit="true"
+ Drop="{../target.Background=Green}"
+ MouseEnter="{/txt.Foreground=Red}" MouseLeave="{/txt.Foreground=White}" MouseClick="{Background=SeaGreen}"
+ AllowDrag="true" Width="200" Height="200" Background="SeaGreen">
+ <VerticalStack Margin="50">
+ <Label Name="txt" Text="Drag me" Foreground="Grey"/>
+ <Label Text="Dragged" Visible="{../../IsDragged}" Foreground="Grey"/>
+ </VerticalStack>
+ </Container>
+ <Container Name="target" DragEnter="{Background=SeaGreen}" DragLeave="{Background=DimGrey}" Focusable="true" Fit="true"
+ MouseEnter="{/txt.Foreground=Red}" MouseLeave="{/txt.Foreground=White}"
+ AllowDrop="true" Background="DimGrey">
+ <VerticalStack Margin="50">
+ <Label Name="txt" Text="Drop here" Foreground="Grey"/>
+ <Label Text="Dragged" Visible="{../../IsDragged}" Foreground="Grey"/>
+ </VerticalStack>
+ </Container>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!--<Widget Background="{./Background}"/>-->
+<Border BorderWidth="1" Foreground="Black" CornerRadius="{./CornerRadius}"
+ Background="{./Background}"
+ MouseEnter="./onBorderMouseEnter"
+ MouseLeave="./onBorderMouseLeave">
+ <VerticalStack Spacing="0">
+ <HorizontalStack Height="Fit">
+ <Label Text="{./Name}" TextAlignment="Left" Width="Fit"
+ Foreground="White" />
+ <Label Text="{./DockingPosition}" TextAlignment="Left" Width="Fit"
+ Foreground="White" />
+ </HorizontalStack>
+ <Label Text="{./Width}" TextAlignment="Left" Width="Fit"
+ Foreground="White" />
+ <Label Text="{./Height}" TextAlignment="Left" Width="Fit"
+ Foreground="White" />
+
+ <HorizontalStack Visible="{./IsDocked}" Height="Fit" Margin="1" Background="Grey">
+ <Label Text="{./Caption}" TextAlignment="Left" Width="Stretched"
+ Foreground="Jet" />
+ <Image Width="8" Height="8" Focusable="true" Margin="0" Path="#Crow.Icons.exit2.svg"
+ MouseClick="./butQuitPress"/>
+ </HorizontalStack>
+ <HorizontalStack Background="vgradient|0:0.5,0.6,0.5,0.5|1:0.2,0.3,0.3,0.7"
+ Name="hs" Margin="0" Spacing="0" Height="Fit" Visible="{./IsFloating}">
+ <Widget Width="5"/>
+ <Image Margin="1" Width="10" Height="10" Path="{./Icon}"/>
+ <Label Width="Stretched" Foreground="White" Margin="1" TextAlignment="Left" Text="{./Caption}" />
+ <Border CornerRadius="6" BorderWidth="1" Foreground="Transparent" Height="10" Width="10"
+ MouseEnter="{Foreground=White}" MouseLeave="{Foreground=Transparent}">
+ <Image Focusable="true" Name="Image" Margin="0" Path="#Crow.Icons.exit2.svg"
+ MouseClick="./butQuitPress"/>
+ </Border>
+ <Widget Width="5"/>
+ </HorizontalStack>
+ <Container Name="Content" MinimumSize="50,50"/>
+ </VerticalStack>
+</Border>
--- /dev/null
+<?xml version="1.0"?>
+<Window Width="Stretched" Height="Stretched" Background="Jet">
+ <DockStack Name="mainDock" Background="DarkRed" Margin="20">
+ </DockStack>
+</Window>
+<!---
+ <DockWindow Left="450" Top="450" Width="150" Height="150" Background="Maize"/>-->
+
+
+<!--<Group Background="DimGrey" Margin = "0" Focusable="true" >
+ <Window Top="100" Left="100" Focusable="true" Caption="View 1" Width="300" Height="300"><Widget Background="Green" Focusable="true" MouseEnter="{Background=Grey}" MouseLeave="{Background=Green}"/></Window>
+ <Window Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></Window>
+ <Window Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></Window>
+ <Window Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></Window>
+</Group>-->
+<!--<Docker >
+ <DockWindow Resizable = "true" Top="100" Left="100" Caption="View 1" Width="300" Height="300">
+ <VerticalStack Background="DarkGreen" Focusable="true">
+ <Label Text="{../../Left}" Background="Black" Width="Stretched"/>
+ <Label Text="{../../Top}" Background="Black"/>
+ <Label Text="{../../LogicalParent}" Background="Black"/>
+ </VerticalStack>
+ </DockWindow>
+ <DockWindow Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></DockWindow>
+ <DockWindow Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></DockWindow>
+ <DockWindow Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></DockWindow>
+</Docker>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Docker >
+ <DockWindow Left="100" Top="100" Width="150" Height="150" Background="DarkRed"/>
+ <DockWindow Left="200" Top="200" Width="150" Height="150" Background="DarkGreen"/>
+ <DockWindow Left="300" Top="300" Width="150" Height="150" Background="Blue"/>
+ <DockWindow Left="400" Top="400" Width="150" Height="150" Background="DarkYellow"/>
+ <DockWindow Left="500" Top="500" Width="150" Height="150" Background="Yellow"/>
+</Docker>
+<!--<Group Background="DimGrey" Margin = "0" Focusable="true" >
+ <Window Top="100" Left="100" Focusable="true" Caption="View 1" Width="300" Height="300"><Widget Background="Green" Focusable="true" MouseEnter="{Background=Grey}" MouseLeave="{Background=Green}"/></Window>
+ <Window Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></Window>
+ <Window Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></Window>
+ <Window Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></Window>
+</Group>-->
+<!--<Docker >
+ <DockWindow Resizable = "true" Top="100" Left="100" Caption="View 1" Width="300" Height="300">
+ <VerticalStack Background="DarkGreen" Focusable="true">
+ <Label Text="{../../Left}" Background="Black" Width="Stretched"/>
+ <Label Text="{../../Top}" Background="Black"/>
+ <Label Text="{../../LogicalParent}" Background="Black"/>
+ </VerticalStack>
+ </DockWindow>
+ <DockWindow Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></DockWindow>
+ <DockWindow Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></DockWindow>
+ <DockWindow Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></DockWindow>
+</Docker>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Width="600" Height="500">
+<VerticalStack Margin="20" Background="DimGrey" Spacing="10">
+ <Widget Height="100" Width="500" Background="Green"/>
+ <Splitter/>
+ <HorizontalStack>
+ <Widget Height="Stretched" Width="100" Background="Red"/>
+ <Splitter/>
+ <Widget Height="Stretched" Width="100" Background="DarkRed"/>
+ </HorizontalStack>
+ <Splitter/>
+ <Widget Height="100" Width="500" Background="Green"/>
+</VerticalStack>
+</Window>
+<!--<Group Background="DimGrey" Margin = "0" Focusable="true" >
+ <Window Top="100" Left="100" Focusable="true" Caption="View 1" Width="300" Height="300"><Widget Background="Green" Focusable="true" MouseEnter="{Background=Grey}" MouseLeave="{Background=Green}"/></Window>
+ <Window Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></Window>
+ <Window Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></Window>
+ <Window Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></Window>
+</Group>-->
+<!--<Docker >
+ <DockWindow Resizable = "true" Top="100" Left="100" Caption="View 1" Width="300" Height="300">
+ <VerticalStack Background="DarkGreen" Focusable="true">
+ <Label Text="{../../Left}" Background="Black" Width="Stretched"/>
+ <Label Text="{../../Top}" Background="Black"/>
+ <Label Text="{../../LogicalParent}" Background="Black"/>
+ </VerticalStack>
+ </DockWindow>
+ <DockWindow Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></DockWindow>
+ <DockWindow Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></DockWindow>
+ <DockWindow Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></DockWindow>
+</Docker>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+
+ <VerticalStack Height="Fit" Width="250" Name="hstack" Margin="0" Spacing="0">
+ <Border Height="Fit" Width="Stretched" BorderWidth="2" CornerRadius="10" Background="SteelBlue">
+ <Label Name="labName" Text="{Name}" Width="Stretched" Height="Fit" Margin="3"/>
+ </Border>
+ <ListBox Data="{Members}" Width="Stretched" Height="400" ItemTemplate="Interfaces/tmpMembers.goml" Focusable="true">
+
+ </ListBox>
+ </VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+
+ <Button CornerRadius="0" Background="Red"/>
+
--- /dev/null
+<?xml version="1.0"?>
+<Widget Margin="10" Width="150" Height="150" Background="SeaGreen"
+ MinimumSize="50,50"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Widget Margin="10" Width="50%" Height="50%"
+ Background="hgradient|0:Red|0.25:Blue|0.5:Green|0.75:Yellow|1:Red"
+ MinimumSize="50,50"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Fit="true">
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <ProgressBar CornerRadius="5" Background="DimGray" Margin="1" Maximum="1000" Value="{fps}" Width="200" Height="15"/>
+ <HorizontalStack Fit="true">
+ <Label Text="Memory:" Width="50" TextAlignment="Right"/>
+ <Label Text="{memory}" Font="droid,12" TextAlignment="Center"
+ Background="vgradient|0:BlueCrayola|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:AoEnglish|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Width="Stretched" Height="Fit" Margin="5" Background="Mantis">
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+ <GraphicObject Background="Carmine" Width="Stretched" Height="20"/>
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+</HorizontalStack>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true" Background="DimGray" Margin="5">
+<!-- <RadioButton/>-->
+ <Label Text="a" Width="Stretched" Background="Red"/>
+ <Label Text="{fps}" HorizontalAlignment="Right" Background="LimeGreen"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Height="Fit" Width="Fit">
+ <Label Width="0"/>
+ <Expandable Width="Fit" Background="Gray">
+ <Expandable Background="LightBlue">
+ <Expandable Background="Green">
+ <Expandable Background="LimeGreen">
+ <Expandable Background="DimGray">
+ <Expandable Width="0" Background="Yellow">
+ <Expandable Background="NavyBlue">
+ <Expandable Width="0" Background="Blue">
+ <Expandable Width="0" Background="BlueCrayola">
+ <Expandable Width="0" Background="Green">
+ <Label Background="Red"/>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ <Expandable Width="0" Background="Gray">
+ <Expandable Width="0" Background="LightBlue">
+ <Expandable Width="0" Background="Green">
+ <Expandable Width="0" Background="LimeGreen">
+ <Expandable Width="0" Background="DimGray">
+ <Expandable Width="0" Background="Yellow">
+ <Expandable Width="0" Background="NavyBlue">
+ <Expandable Width="0" Background="Blue">
+ <Expandable Width="0" Background="BlueCrayola">
+ <Expandable Width="0" Background="Green">
+ <Label Background="Red"/>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Group MinimumSize="50,50" Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ VerticalAlignment="Top"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ MinimumSize="10,10"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Background="DimGrey" Margin="10" Fit="true">
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Background="DimGrey" Margin="10" Width="70%" Height="50%">
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="100%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Background="DimGrey" Margin="10" Fit="true">
+ <Label Font="droid bold,40" Text="{fps}" Margin="10" Fit="true"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ MinimumSize="10,10"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Width="80%" Height="50%">
+ <Border Width="45%" CornerRadius="10" BorderWidth="1">
+ <VerticalStack>
+ <VerticalStack Height="45%">
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 1" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 2" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="true" Caption="Check 3" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 4" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ </VerticalStack>
+ <Splitter Thickness="3"/>
+ <VerticalStack Height="45%">
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 1" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 2" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="true" Caption="Check 3" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 4" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ </VerticalStack>
+ </VerticalStack>
+ </Border>
+ <Splitter Thickness="3"/>
+ <Border Width="45%" CornerRadius="10" BorderWidth="1">
+ <VerticalStack Width="50%" Height="50%" Background="DimGrey">
+ <RadioButton IsChecked="false" Caption="Choice 1" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <RadioButton IsChecked="false" Caption="Choice 2" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <RadioButton IsChecked="true" Caption="Choice 3" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <RadioButton IsChecked="false" Caption="Choice 4" Background="hgradient|0:DarkRed|1:Transparent"/>
+ </VerticalStack>
+ </Border>
+ <Splitter Thickness="3"/>
+</HorizontalStack>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true">
+ <GraphicObject CornerRadius="5" Height="10" Width="600" Background="vgradient|0:Transparent|0,5:White|1:Transparent"/>
+ <HorizontalStack Fit="true" HorizontalAlignment="Left">
+ <Border Fit="true" CornerRadius="10" BorderWidth="1">
+ <VerticalStack Margin="10">
+ <CheckBox IsChecked="false" Caption="Check 1" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox IsChecked="false" Caption="Check 2" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox IsChecked="true" Caption="Check 3" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox IsChecked="false" Caption="Check 4" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ </VerticalStack>
+ </Border>
+ <Splitter/>
+ <Border Fit="true" CornerRadius="10" BorderWidth="1">
+ <VerticalStack Margin="10">
+ <RadioButton IsChecked="false" Caption="Choice 1" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <Splitter/>
+ <RadioButton Width="Stretched" IsChecked="false" Caption="Choice 2" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <RadioButton IsChecked="true" Caption="Choice 3" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <RadioButton IsChecked="false" Caption="Choice 4" Background="hgradient|0:DarkRed|1:Transparent"/>
+ </VerticalStack>
+ </Border>
+ <Splitter Thickness="3" />
+ <Border Fit="true" CornerRadius="10" BorderWidth="1" MaximumSize="150;150" MinimumSize="50;50">
+ <VerticalStack Margin="10">
+ <Label Text="label 1" Background="hgradient|0:BlueCrayola|1:Transparent"/>
+ <Label Text="label 2" Background="hgradient|0:BlueCrayola|1:Transparent"/>
+ <Label Text="label 3" Background="hgradient|0:BlueCrayola|1:Transparent"/>
+ <Label Text="label 4" Width="Stretched" Background="hgradient|0:BlueCrayola|1:Transparent"/>
+ </VerticalStack>
+ </Border>
+ <Splitter/>
+ <Border Fit="true" CornerRadius="10" BorderWidth="1">
+ <VerticalStack Margin="10">
+ <Button Caption="Button 1" Background="hgradient|0:Red|1:DarkRed" CornerRadius="5"/>
+ <Button Caption="Button 2" Background="hgradient|0:AoEnglish|1:Arsenic" CornerRadius="3"/>
+ <Button Caption="Button 3" Background="hgradient|0:DarkRed|1:Transparent" CornerRadius="0"/>
+ <Button Caption="Button 4" Background="hgradient|0:DarkRed|1:Transparent" CornerRadius="8"/>
+ </VerticalStack>
+ </Border>
+ <Splitter/>
+ </HorizontalStack>
+ <GraphicObject CornerRadius="5" Height="10" Width="600" Background="vgradient|0:Transparent|0,5:White|1:Transparent"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack MinimumSize="50,50" Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack MinimumSize="50,50" Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="Stretched" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="60%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="Stretched" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="60%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Background="DimGrey" Margin="10" Width="90%" Height="100%">
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Background="DimGrey" Margin="10" Width="90%" Height="100%">
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack>
+ <HorizontalStack Background="DimGrey" Margin="10" Width="90%" Height="20%">
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Width="100%" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ </HorizontalStack>
+ <HorizontalStack Background="DimGrey" Margin="10" Width="Fit" Height="20%">
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Width="100%" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ </HorizontalStack>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<GenericStack Orientation="Vertical" Spacing="0"
+ Background="{./Background}"
+ MouseEnter="{/caption.Foreground=White}"
+ MouseLeave="{/caption.Foreground=Grey}">
+ <HorizontalStack Left="{./TabOffset}"
+ Name="TabTitle"
+ HorizontalAlignment="Left"
+ Height="{./TabHeight}"
+ Width="{./TabWidth}">
+ <Label Name="caption" Text="{./Caption}" Foreground="Grey" Width="Stretched"/>
+ <Label Text="{./ViewIndex}" Foreground="Green"/>
+ <Label Text="{./TabOffset}" Foreground="Red"/>
+ <Border CornerRadius="5" BorderWidth="1" Foreground="Transparent" Height="12" Width="12"
+ MouseEnter="{Foreground=White}" MouseLeave="{Foreground=Transparent}">
+ <Image Focusable="true" Name="Image" Margin="0" Width="Stretched" Height="Stretched" Path="#Crow.Icons.exit2.svg"
+ MouseClick="./butCloseTabClick"/>
+ </Border>
+ </HorizontalStack>
+ <Container Margin="20">
+ <Container Background="DimGrey" Name="Content"/>
+ </Container>
+</GenericStack>
+
--- /dev/null
+<?xml version="1.0"?>
+<Expandable Fit="true" Caption="Test expandable" Background="DimGrey">
+ <VerticalStack Margin="5" >
+ <CheckBox Name="chk1" />
+ <CheckBox Name="chk2" IsChecked="true"/>
+ <CheckBox Name="chk3" />
+ <CheckBox Name="chk4" />
+ <HorizontalStack Fit="true" Margin="2" Background="SeaGreen">
+ <Label Name="captionFps" Text="Fps:" Width="30" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="Fit" TextAlignment="Center" Background="SeaGreen"/>
+ </HorizontalStack>
+ </VerticalStack>
+</Expandable>
--- /dev/null
+<Expandable Width="Stretched" Background="Grey">
+ <Expandable Width="Stretched" Background="LightBlue">
+ <Expandable Width="Stretched" Background="Green">
+ <Expandable Width="Stretched" Background="LimeGreen">
+ <Expandable Width="Stretched" Background="DimGrey">
+ <Expandable Width="Stretched" Background="Yellow">
+ <Expandable Width="Stretched" Background="SeaGreen">
+ <Expandable Width="Stretched" Background="Blue">
+ <Expandable Width="Stretched" Background="RoyalBlue">
+ <Expandable Width="Stretched" Background="Green">
+ <Label Background="Red" Text="{fps}"/>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Height="Fit" Width="Fit">
+ <Label Width="Stretched"/>
+ <Expandable Width="Fit" Background="Grey">
+ <Expandable Background="LightBlue">
+ <Expandable Background="Green">
+ <Expandable Background="LimeGreen">
+ <Expandable Background="DimGrey">
+ <Expandable Width="Stretched" Background="Yellow">
+ <Expandable Background="SeaGreen">
+ <Expandable Width="Stretched" Background="Blue">
+ <Expandable Width="Stretched" Background="RoyalBlue">
+ <Expandable Width="Stretched" Background="Green">
+ <Label Background="Red" Text="{fps}"/>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<!--<Container Background="vgradient|0:DarkGrey|1:DimGrey">-->
+ <GroupBox Fit="true" Background="vgradient|0:SteelBlue|1:Transparent"
+ Foreground="White">
+<!-- <Label/>-->
+ </GroupBox>
+<!--</Container>-->
--- /dev/null
+<?xml version="1.0"?>
+<MessageBox Caption="message" Message="this is a message box"/>
+<!-- Ok="onMsgBoxOk"
+ Cancel="onMsgBoxCancel"/>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack>
+ <Border Fit="true" Margin="10">
+ <VerticalStack Width="150" Height="Fit">
+ <RadioButton Caption="Left" IsChecked="true" Checked="change_alignment"/>
+ <RadioButton Caption="Right" Checked="change_alignment"/>
+ <RadioButton Caption="Top" Checked="change_alignment"/>
+ <RadioButton Caption="Bottom" Checked="change_alignment"/>
+ </VerticalStack>
+ </Border>
+ <Widget Height="200"/>
+ <Popper Caption="TestPopper" Width="100" Background="DimGrey" PopDirection="{alignment}">
+ <Border Fit="True" Background="SteelBlue">
+ <Image Fit="true" Path="#go.Images.Icons.tetra.png" Margin="10"/>
+ <VerticalStack Fit="true" Margin="10" Background="CornflowerBlue">
+ <CheckBox Name="chk1" Background="Red"/>
+ <CheckBox Name="chk2" IsChecked="true"/>
+ <CheckBox Name="chk3"/>
+ <CheckBox Name="chk4"/>
+ <HorizontalStack Fit="true" Margin="20">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center" Background="SeaGreen"/>
+ </HorizontalStack>
+ </VerticalStack>
+ </Border>
+ </Popper>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<Group Height="90%" Width="95%">
+<VerticalStack >
+ <HorizontalStack Height="Fit">
+ <Label Text="Selected Tab:"/>
+ <Label Text="{../../tabview1.SelectedTab}"/>
+ </HorizontalStack>
+ <TabView Name="tabview1" Background="DimGrey" Orientation="Horizontal">
+ <TabItem Name="TabItem1" Caption="tab item 1" Background="DimGrey">
+ <VerticalStack Margin="20">
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="tab item 2" Background="DimGrey">
+ <VerticalStack Height="Fit" Margin="10">
+ <RadioButton Fit="true"/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem3" Background="DimGrey" Caption="tab item 3">
+ <Container Margin="5" CornerRadius="2" >
+ <TextBox Margin="5" Multiline="true" TextAlignment="TopLeft"/>
+ </Container>
+ </TabItem>
+ <TabItem Name="TabItem4" Background="DimGrey" Caption="tab item 4" Margin="0">
+ <TextBox/>
+ </TabItem>
+ </TabView>
+ <Button Background="vgradient|0:DimGrey|1:Black" HorizontalAlignment="Right"
+ Caption="Add new tab" Width="Fit" Height="30" MouseDown="onAddTabButClick"/>
+</VerticalStack>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<HorizontalStack Height="90%" Width="99%" Spacing="50">
+ <VerticalStack Width="40%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Selected Tab:"/>
+ <Label Text="{../../tabview1.SelectedTab}"/>
+ </HorizontalStack>
+ <TabView Name="tabview1" Background="DimGrey" Orientation="Horizontal" Margin="5" >
+ <TabItem Name="TabItem1" Caption="tab-1.1" Background="DimGrey">
+ <VerticalStack Margin="20">
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="tab-1.2" Background="DimGrey">
+ <VerticalStack Height="Fit" Margin="10">
+ <RadioButton Fit="true"/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem3" Background="DimGrey" Caption="tab-1.3">
+ <Container Margin="5" CornerRadius="2" >
+ <TextBox Margin="5" Multiline="true" TextAlignment="TopLeft"/>
+ </Container>
+ </TabItem>
+ </TabView>
+ <Button Background="vgradient|0:DimGrey|1:Black" HorizontalAlignment="Right"
+ Caption="Add new tab" Width="Fit" Height="30" MouseDown="onAddTabButClick"/>
+ </VerticalStack>
+ <VerticalStack Width="40%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Selected Tab:"/>
+ <Label Text="{../../tabview2.SelectedTab}"/>
+ </HorizontalStack>
+ <TabView Name="tabview2" Background="DimGrey" Orientation="Horizontal" >
+ <TabItem Name="TabItem1" Caption="tab-2.1" Background="DimGrey">
+ <VerticalStack Margin="20">
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="tab-2.2" Background="DimGrey">
+ <VerticalStack Height="Fit" Margin="10">
+ <RadioButton Fit="true"/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem3" Background="DimGrey" Caption="tab-2.3">
+ <Container Margin="5" CornerRadius="2" >
+ <TextBox Margin="5" Multiline="true" TextAlignment="TopLeft"/>
+ </Container>
+ </TabItem>
+ </TabView>
+ <Button Background="vgradient|0:DimGrey|1:Black" HorizontalAlignment="Right"
+ Caption="Add new tab" Width="Fit" Height="30" MouseDown="onAddTabButClick2"/>
+ </VerticalStack>
+</HorizontalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Border Margin="5" Height="90%" Width="50%">
+ <DirectoryView Name="dv" CurrentDirectory="/" Margin="1"/>
+</Border>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Left="10" Top="10" Caption="Test window"
+ Width="250" Height="550" >
+ <VerticalStack Name="contentVSStack" Margin="10" Spacing="10" Background="0.4,0.4,0.4,0.4">
+ <Slider Name="slider" Height="12" Width="Stretched" CornerRadius="3"/>
+ <GroupBox Caption="test" Height="Fit" Width="Stretched" Margin="5">
+ <VerticalStack Height="Fit" Width="Stretched" >
+ <RadioButton Caption="Radio 1" Background="Red" Width="Stretched"/>
+ <RadioButton Caption="Radio 2" IsChecked="true" />
+ <RadioButton Caption="Radio 3" />
+ <RadioButton Caption="Radio 1" Background="SkyBlue" Width="Stretched"/>
+ </VerticalStack>
+ </GroupBox>
+ <HorizontalStack Width="Stretched" Height="Fit" Margin="10" CornerRadius="5" Background="SkyBlue">
+ <RadioButton Width="80" Height="Fit" Caption="Radio 2" IsChecked="true" />
+ <Widget Width="Stretched"/>
+ <RadioButton Width="80" Height="Fit" Caption="Radio 3" />
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Stretched" MinimumSize="10,40" Margin="0" CornerRadius="5"
+ Background="vgradient|0:White|0.1:SteelBlue|0.9:SteelBlue|1:Transparent">
+ <CheckBox Height="Fit" Width="80"/>
+ <Widget Width="Stretched"/>
+ <CheckBox Height="Fit" Width="80" IsChecked="true"/>
+ </HorizontalStack>
+ <Border Fit="true" CornerRadius="5" BorderWidth="1" >
+ <Container Name="MainGrp" Background="0.5,0.5,0.5,0.4" Width="120" Fit="true"
+ Margin="10" Focusable="True" >
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Clipping:" Width="50" TextAlignment="Right"/>
+ <Label Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ </Container>
+ </Border>
+ <HorizontalStack Fit="true" Background="RoyalBlue" Margin="3">
+ <Widget Margin="10" Background="LimeGreen" Width="5" Height="5"/>
+ <TextBox Font="droid, 16" Multiline="true" Text="this is a test\nmultiline" Margin="2"/>
+ <Widget Margin="10" Background="LimeGreen" Width="5" Height="5"/>
+ </HorizontalStack>
+ </VerticalStack>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Focusable="true" Caption="Measures" Width="30%" Height="Fit" MinimumSize="100,100">
+ <VerticalStack Width="90%" Height="Fit" Spacing="1" Margin="10">
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="FpsLabel"/>
+ <Label Text="{fps}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="FpsLabel"/>
+ <Label Text="{fpsMin}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="FpsLabel"/>
+ <Label Text="{fpsMax}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="FpsLabel"/>
+ <Label Text="{update}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="FpsLabel"/>
+ <Label Text="{layouting}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Clipping:" Style="FpsLabel"/>
+ <Label Text="{clipping}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="FpsLabel"/>
+ <Label Text="{drawing}" Style="FpsDisp"/>
+ </HorizontalStack>
+ </VerticalStack>
+</Window>
--- /dev/null
+<?xml version="1.0"?>
+<Window Left="10" Top="10" Caption="Test window" Width="200" Height="200" Background="0.5,0.5,0.5,0.8"
+ Focusable="True" CornerRadius="20" MinimumSize="100,100" MaximumSize="500,500">
+ <Template>
+ <Container Margin="20" Name="Content" Height="{../HeightPolicy}" Width="{../WidthPolicy}" Background="0.5,0.5,0.5,0.5"/>
+ </Template>
+<!-- <Group Background="Green">-->
+ <Widget Height="50" Width="50" Background="Red" Margin="5"/>
+<!-- <Scrollbar Orientation="Vertical" Height="Stretched" Width="10" Background="Blue" Margin="0" HorizontalAlignment="Right"/>-->
+<!-- </Group>-->
+</Window>
--- /dev/null
+<?xml version="1.0"?>
+<!--<ListBox Data="{TestList}" Focusable="true"/>-->
+<Border Margin="50">
+ <VerticalStack >
+ <Label Text="{../ColorList.SelectedItem}" Background="DarkGreen"/>
+ <Label Text="{Hover}" Background="DarkGreen"/>
+ <Button Caption="Clear" Width="Stretched" MouseClick="OnClear"/>
+ <ListBox Name="ColorList" Data="{TestList}" Width="200" Height="200"
+ ItemTemplate="#Tests.Interfaces.colorItem.crow">
+ </ListBox>
+ <Button Caption="Load list" Width="Stretched" MouseClick="OnLoadList"/>
+ </VerticalStack>
+</Border>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true" Background="vgradient|0:DimGrey|1:Black">
+ <HorizontalStack Fit="True">
+ <Button Caption="but" MouseClick="onButClick"/>
+ <Button Caption="but" MouseClick="onButClick" Fit="true"/>
+ <Button Width="60" Height="40" MouseClick="onButClick"/>
+ <Button Caption="Long text button" MouseClick="onButClick"/>
+ <Button Font="droid, 20" Caption="Button"/>
+ </HorizontalStack>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true" Margin="100" Background="DimGrey" >
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="DimGrey" Width="300">
+ <ComboBox Data="{TestList}" ItemTemplate="#Tests.Interfaces.colorItem.crow"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Border BorderWidth="2" Fit="true">
+ <VerticalStack Fit="true" Margin="5">
+ <ListBox Data="{TestList}" Background="0.5,0.5,0.5,0.7"
+ HorizontalAlignment="Center" Width="200" Height="200" Margin="5">
+ <Template>
+ <Border BorderWidth="1">
+ <HorizontalStack Margin="1">
+ <Scroller Name="scroller1" Margin="2">
+ <VerticalStack Height="Fit" MinimumSize="10,10"
+ Name="ItemsContainer" Margin="0" VerticalAlignment="Top"/>
+ </Scroller>
+ <ScrollBar Name="scrollbar1" Value="{²../scroller1.ScrollY}"
+ LargeIncrement="{../scroller1.PageHeight}" SmallIncrement="30" CursorSize="{../scroller1.ChildHeightRatio}"
+ Maximum="{../scroller1.MaxScrollY}" Orientation="Vertical"
+ Width="14" />
+ </HorizontalStack>
+ </Border>
+ </Template>
+ <ItemTemplate DataType="Crow.Color">
+ <HorizontalStack
+ HorizontalAlignment="Left"
+ Height="Fit" Width="200" Margin="1" Focusable="true"
+ MouseEnter="{Background=hgradient|0:DarkRed|1:Transparent}"
+ MouseLeave="{Background=Transparent}">
+ <Widget Height="12" Width="20" Background="{}" Margin="0" CornerRadius="3"/>
+ <Label Text="{}" Margin="0" Width="Stretched"/>
+ </HorizontalStack>
+ </ItemTemplate>
+ </ListBox>
+ <HorizontalStack Fit="true" HorizontalAlignment="Right">
+ <Button Caption="Load list" MouseDown="OnLoadList"/>
+ <Button Caption="Clear" MouseDown="OnClear"/>
+ </HorizontalStack>
+ </VerticalStack>
+</Border>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Width="200" Height="Fit" Margin="20" Background="DimGrey">
+ <RadioButton Caption="Radio1"/>
+ <RadioButton Caption="Radio2" IsChecked="true"/>
+ <RadioButton Caption="Radio3"/>
+ <RadioButton Caption="Radio4"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Group Name="TopContainer" Width="400" Height="400"
+ Focusable="True" Background="Grey">
+ <ScrollBar Height="16" Orientation="Horizontal" Width="Stretched" Maximum="100"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Name="TopContainer" Width="400" Height="Fit"
+ Margin="20" Background="DarkGrey">
+
+ <HorizontalStack Fit="true" Margin="5" Background="SkyBlue">
+ <Spinner Name="sp1" Value="5" ValueChanged="onSpinnerValueChange"/>
+ <Spinner Value="5"/>
+ <Spinner Value="5"/>
+ </HorizontalStack>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Menu>
+ <MenuItem Caption="File" Width="Fit">
+ <MenuItem Caption="New" />
+ <MenuItem Caption="Open"/>
+ <MenuItem Caption="Save"/>
+ <MenuItem Caption="Quit"/>
+ </MenuItem>
+ <MenuItem Caption="Edit" Name="edit" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ <MenuItem Caption="Special" Name="special" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ </MenuItem>
+ <MenuItem Caption="Special2" Name="special" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ </MenuItem>
+ </MenuItem>
+ <MenuItem Caption="Help" Width="Fit">
+ <MenuItem Caption="About"/>
+ <MenuItem Caption="Help"/>
+ </MenuItem>
+</Menu>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Menu>
+ <MenuItem Caption="File">
+ <MenuItem Caption="New"/>
+ <MenuItem Caption="Open"/>
+ <MenuItem Caption="Save"/>
+ <MenuItem Caption="Quit"/>
+ </MenuItem>
+</Menu>
--- /dev/null
+<?xml version="1.0"?>
+<Menu>
+ <MenuItem Caption="Menu">
+ <MenuItem Caption="File">
+ <MenuItem Caption="New"></MenuItem>
+ <MenuItem Caption="Open"></MenuItem>
+ <MenuItem Caption="Save"></MenuItem>
+ <MenuItem Caption="Quit"></MenuItem>
+ </MenuItem>
+ <MenuItem Caption="Edit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ <MenuItem Caption="Special">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ </MenuItem>
+ </MenuItem>
+ <MenuItem Caption="Help">
+ <MenuItem Caption="About"/>
+ <MenuItem Caption="Help"/>
+ </MenuItem>
+ </MenuItem>
+</Menu>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!--<VerticalStack Height="{../HeightPolicy}" Width="{../WidthPolicy}" MouseClick="../onMouseClick">
+ <Label Text="{../../Caption}" Width="{../../WidthPolicy}"/>
+ <Container Name="Content" Visible="false" Height="{../../HeightPolicy}" Width="{../../WidthPolicy}"/>
+</VerticalStack>-->
+<Group BorderWidth="1" Foreground="LightGray"
+ MouseClick="../onMouseClick">
+ <VerticalStack>
+ <Label Text="{../../../Caption}"/>
+ <Container Name="Content" Visible="false"/>
+ </VerticalStack>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Vertical Wrapper" Width="50%" Height="50%">
+ <Wrapper Orientation="Vertical" Height="Fit" Width="90%" Margin="5" Background="MediumSeaGreen" Spacing="1" >
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ </Wrapper>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Vertical Wrapper" Width="50%" Height="50%">
+ <Wrapper Orientation="Vertical" Height="Fit" Width="Fit" Margin="5" Background="MediumSeaGreen" Spacing="1" >
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ </Wrapper>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Horizontal Wrapper" Width="50%" Height="50%">
+ <Wrapper Orientation="Horizontal" Height="90%" Width="Fit" Margin="5" Background="MediumSeaGreen" Spacing="1" >
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ </Wrapper>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Horizontal Wrapper" Width="50%" Height="50%">
+ <Wrapper HorizontalAlignment="Left" Orientation="Horizontal" Height="100%" Width="Fit" Margin="0" Background="MediumSeaGreen" Spacing="1" >
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ </Wrapper>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Horizontal Wrapper" Width="50%" Height="50%">
+ <Wrapper Orientation="Horizontal" Height="Fit" Width="Fit" Margin="5" Background="MediumSeaGreen" Spacing="1" >
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ </Wrapper>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Title="Showcase" Height="90%" Width="90%">
+ <HorizontalStack >
+ <VerticalStack Width="33%" Margin="5">
+ <GroupBox Caption="Performance" Height="Fit">
+ <VerticalStack Width="90%" Height="Fit" Spacing="2" >
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="FpsLabel"/>
+ <Label Text="{fps}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="FpsLabel"/>
+ <Label Text="{fpsMin}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="FpsLabel"/>
+ <Label Text="{fpsMax}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="FpsLabel"/>
+ <Label Text="{update}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="FpsLabel"/>
+ <Label Text="{layouting}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Clipping:" Style="FpsLabel"/>
+ <Label Text="{clipping}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="FpsLabel"/>
+ <Label Text="{drawing}" Style="FpsDisp"/>
+ </HorizontalStack>
+ </VerticalStack>
+ </GroupBox>
+ <Label Width="Stretched" Margin="3" Background="Onyx"/>
+ <TextBox Text="TextBox" Multiline="true" Margin="3"/>
+ <HorizontalStack Height="Fit" Margin="5" Background="Onyx" CornerRadius="10">
+ <VerticalStack Spacing="5" Width="50%">
+ <CheckBox Fit="true"/>
+ <CheckBox Fit="true"/>
+ <CheckBox Fit="true"/>
+ <CheckBox Fit="true"/>
+ </VerticalStack>
+ <VerticalStack Spacing="5" Width="50%">
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true"/>
+ </VerticalStack>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Margin="5">
+ <Label Text="MouseEvents" Width="50%" Margin="3"
+ Background="Onyx"
+ Foreground="DimGray"
+ TextAlignment="Center"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGray}"
+ MouseDown="{Background=DarkRed}"
+ MouseUp="{Background=Onyx}"/>
+ <Label Text="MouseEvents" Width="50%" Margin="3"
+ Background="Onyx"
+ Foreground="DimGray"
+ TextAlignment="Center"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGray}"
+ MouseDown="{Background=Mantis}"
+ MouseUp="{Background=Onyx}"/>
+ </HorizontalStack>
+ <GroupBox Caption="Templated controls" Height="Fit" Margin="5">
+ <HorizontalStack Height="Fit">
+ <VerticalStack Width="50%">
+ <CheckBox Template="#Tests.Interfaces.CheckBox2.imlt" Style="CheckBox2"/>
+ <CheckBox Template="#Tests.Interfaces.CheckBox2.imlt" Style="CheckBox2"/>
+ <CheckBox Template="#Tests.Interfaces.CheckBox2.imlt" Style="CheckBox2"/>
+ <CheckBox Template="#Tests.Interfaces.CheckBox2.imlt" Style="CheckBox2"/>
+ </VerticalStack>
+ <Splitter/>
+ <VerticalStack Width="50%">
+ <RadioButton Template="#Tests.Interfaces.CheckBox2.imlt" Style="RadioButton2"/>
+ <RadioButton Template="#Tests.Interfaces.CheckBox2.imlt" Style="RadioButton2"/>
+ <RadioButton Template="#Tests.Interfaces.CheckBox2.imlt" Style="RadioButton2"/>
+ <RadioButton Template="#Tests.Interfaces.CheckBox2.imlt" Style="RadioButton2"/>
+ </VerticalStack>
+ </HorizontalStack>
+ </GroupBox>
+ <Spinner Fit="true"/>
+ </VerticalStack>
+ <VerticalStack Width="33%" Margin="5" Spacing="5">
+ <Expandable Background="DimGray">
+ <Image Path="#Crow.Icons.crow.svg"/>
+ </Expandable>
+ <Popper Background="DimGray" PopDirection="Bottom">
+ <Border Fit="True" Background="DimGray" CornerRadius="0" BorderWidth="1">
+ <Image Path="#Crow.Icons.crow.svg" Width="100" Height="100" Margin="10"
+ MouseEnter="{Background=LightGray}"
+ MouseLeave="{Background=Transparent}"/>
+ </Border>
+ </Popper>
+ <Slider Height="10" Width="90%"/>
+ <Container Height="Fit" Background="Onyx" Margin="2" CornerRadius="5">
+ <ProgressBar Background="DimGray" Height="10" Value="50"/>
+ </Container>
+ <Image Path="#Crow.Icons.crow.svg" Width="60" Height="60" Background="LightGray" />
+ <TabView Name="tabview1"
+ Height="120" Orientation="Horizontal" Spacing="15">
+ <TabItem Name="TabItem1" Caption="Tab 1" Margin="0">
+ <VerticalStack Fit="true">
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="Tab 2" Background="Gray">
+ <VerticalStack Fit="true">
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="Tab 3" Background="Gray">
+ <Container Margin="5" CornerRadius="2">
+ <TextBox Height="Stretched" Margin="5" Multiline="true" TextAlignment="TopLeft"/>
+ </Container>
+ </TabItem>
+ </TabView>
+ <MessageBox Movable="false"/>
+ </VerticalStack>
+ <VerticalStack Width="33%" Margin="5">
+ <Border Margin="5" Background="Onyx" Height="Fit">
+ <Label Width="Stretched" Margin="1" Text="{../../dv.SelectedItem}"/>
+ </Border>
+ <Border Margin="5" Background="Onyx" Height="50%">
+ <DirectoryView Name="dv" Root="./" Margin="1"/>
+ </Border>
+ <ListBox Data="{TestList}" Background="Onyx" Margin="5"
+ ItemTemplate="#Tests.Interfaces.colorItem.crow"
+ Template="#Crow.Templates.ScrollingListBox.goml"/>
+ </VerticalStack>
+ </HorizontalStack>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Border Foreground="Transparent" Focusable="true" HorizontalAlignment="Left" Height="Fit" Width="200">
+ <HorizontalStack Margin="0"
+ MouseEnter="{Background=hgradient|0:DarkRed|1:Transparent}"
+ MouseLeave="{Background=Transparent}">
+ <Widget Height="12" Width="20" Background="{}" Margin="0" CornerRadius="3"/>
+ <Label Text="{}" Margin="0" Width="Stretched"/>
+ </HorizontalStack>
+</Border>
+
--- /dev/null
+<?xml version="1.0"?>
+<Border Foreground="Transparent" Focusable="true" HorizontalAlignment="Left" Height="Fit">
+ <HorizontalStack Margin="0"
+ MouseEnter="{Background=CornflowerBlue}"
+ MouseLeave="{Background=Transparent}">
+ <Widget Height="8" Width="14" Background="{}" Margin="0" CornerRadius="2"/>
+ <Label Text="{}" Margin="0" Width="Stretched" Font="mono, 8"/>
+ </HorizontalStack>
+</Border>
+
--- /dev/null
+<?xml version="1.0"?>
+<Border BorderWidth="3">
+ <Label Text="{Name}" Focusable="true" Width="Stretched" Height="Fit" Margin="0"
+ MouseEnter="{Background=Red}"
+ MouseLeave="{Background=Transparent}"
+ />
+</Border>
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<Container Name="topContainer" HorizontalAlignment="Center" VerticalAlignment="Top"
+ Margin="2"
+ Width="600" Height="-1">
+ <Border Margin="2" BorderWidth="1" Background="0,6;0,6;0,6;0,6" Height="-1">
+ <Group Width="0" Name="logs">
+ <VerticalStack Name="VerticalStack" Width="0" Focusable="False">
+ <Label Name="line1" Width="0" Text="Line1" Margin="0"/>
+ <Label Name="line2" Width="0" Text="Line2" Margin="0"/>
+ <Label Name="line3" Width="0" Text="Line3" Margin="0"/>
+ <Label Name="line4" Width="0" Text="Line4" Margin="0"/>
+ </VerticalStack>
+ <Button Name="btOk" Background="Gray" Fit="True"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseClick="BtOk_MouseClick">
+ <Label Text="Ok" Margin="3" Foreground="White" />
+ </Button>
+ </Group>
+ </Border>
+</Container>
+
--- /dev/null
+<?xml version="1.0"?>
+
+ <VerticalStack Spacing="1" Height="Fit" Width="Stretched">
+ <HorizontalStack Background="DarkSlateGrey">
+ <Label Text="{Name}" Width="Stretched" Font="doid bold, 10" Margin="2"/>
+ <Button Caption="Reset" MouseClick="onResetClick" Height="Fit"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Current:" Style="FpsLabel"/>
+ <Label Text="{current}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Minimum:" Style="FpsLabel"/>
+ <Label Text="{minimum}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Mean:" Style="FpsLabel"/>
+ <Label Text="{mean}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Maximum:" Style="FpsLabel"/>
+ <Label Text="{maximum}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <Border Foreground="White" Width="Stretched" Height="60">
+ <Trend Background="Black" NewValue="{current}" Minimum="0" Maximum="100"/>
+ </Border>
+<!-- <HorizontalStack>
+ <Label Text="Total:" Style="FpsLabel"/>
+ <Label Text="{total}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Cpt:" Style="FpsLabel"/>
+ <Label Text="{cptMeasures}" Style="FpsDisp"/>
+ </HorizontalStack>-->
+ </VerticalStack>
+
--- /dev/null
+<?xml version="1.0"?>
+<AnalogMeter Width="Fit" Height="Fit" Background="White" Foreground="Black" Value="{fps}" Minimum="Stretched" Maximum="100"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!--<Group>-->
+<Window Name="window1" Left="10" Top="10" Title="Test window"
+ Width="250" Height="300" >
+ <VerticalStack Name="contentVSStack" Margin="10" Spacing="10">
+ <Slider Name="slider" Height="10" Width="0"/>
+
+ <HorizontalStack Width="0" Height="-1" Margin="10" Background="BlueCrayola">
+ <Checkbox Height="-1" Width="80"/>
+ <GraphicObject Width="0"/>
+ <Checkbox Height="-1" Width="80"/>
+ </HorizontalStack>
+ <Groupbox Text="test" Height="-1" Width="-1" Margin="5">
+ <VerticalStack Height="-1" Width="0" >
+ <RadioButton Caption="Radio 1" Background="Red" />
+ <RadioButton Caption="Radio 2" IsChecked="true" />
+ <RadioButton Caption="Radio 3" />
+ </VerticalStack>
+ </Groupbox>
+<!-- <Checkbox Height="-1" Width="-1" Background="Red" Margin="0" VerticalAlignment="Center" HorizontalAlignment="Right"/>-->
+ </VerticalStack>
+</Window>
+<!--</Group>-->
+<!-- <Label Text="{fps}" Background="DarkRed"/>
+ <Label Text="{fpsMin}" />
+ <Label Text="{fpsMax}" />-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+ <HorizontalStack Width="Fit" Height="Fit" Focusable="true"
+ HorizontalAlignment="Left"
+ MouseEnter="{Background=RoyalBlue}"
+ MouseLeave="{Background=Transparent}">
+ <Image Width="16" Height="16" Path="#Tests.image.folder1.svg" SvgSub="{Attributes}"/>
+ <Label Text="{Name}" Width="Fit" Height="Fit" Margin="0"/>
+ <Label Text="{Attributes}" Width="Fit" Height="Fit" Margin="0"/>
+ <Label Text="{Extension}" Width="Fit" Height="Fit" Margin="0"/>
+ </HorizontalStack>
+
--- /dev/null
+<?xml version="1.0"?>
+ <HorizontalStack Width="Stretched" Height="Fit" Focusable="true"
+ MouseEnter="{Background=SkyBlue}"
+ MouseLeave="{Background=Transparent}">
+ <Image Width="8" Height="8" Path="#Crow.Images.Icons.member.svg" SvgSub="{GetIcon}"/>
+ <Label Text="{Name}" Width="Stretched" Height="Fit" Margin="1"/>
+ <Label Text="{MemberType}" Width="Fit" Height="Fit" Margin="0"/>
+ </HorizontalStack>
+
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Height="Fit" Name="List"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Showcase" Height="90%" Width="90%">
+ <HorizontalStack >
+ <VerticalStack Width="30%" Margin="5">
+ <GroupBox Caption="Performance" Height="Fit">
+ <VerticalStack DataSource="{drawingMeasure}" Width="90%" Height="Fit" Spacing="2" >
+ <HorizontalStack Height="Fit" Tooltip="Frame per second">
+ <Label Text="Fps:" Style="FpsLabel"/>
+ <Label Text="{minimum}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Tooltip="Minimum Frame per second">
+ <Label Text="Min:" Style="FpsLabel"/>
+ <Label Text="{fpsMin}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Tooltip="Maximum Frame per second">
+ <Label Text="Max:" Style="FpsLabel"/>
+ <Label Text="{fpsMax}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Tooltip="Update loop duration">
+ <Label Text="Update:" Style="FpsLabel"/>
+ <Label Text="{update}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Tooltip="Layouting process duration">
+ <Label Text="Layouting:" Style="FpsLabel"/>
+ <Label Text="{layouting}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Tooltip="Clipping duration">
+ <Label Text="Clipping:" Style="FpsLabel"/>
+ <Label Text="{clipping}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="FpsLabel"/>
+ <Label Text="{drawing}" Style="FpsDisp"/>
+ </HorizontalStack>
+ </VerticalStack>
+ </GroupBox>
+ <Label Width="Stretched" Margin="3" Background="DimGrey"/>
+ <TextBox Text="TextBox" Multiline="true" Margin="3"/>
+ <HorizontalStack Height="Fit" Margin="5" Background="DimGrey" CornerRadius="10">
+ <VerticalStack Spacing="5" Width="50%">
+ <CheckBox Fit="true" Caption="test"/>
+ <CheckBox Fit="true"/>
+ <CheckBox Fit="true"/>
+ <CheckBox Fit="true" IsChecked="true"/>
+ </VerticalStack>
+ <VerticalStack Spacing="5" Width="50%">
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true" IsChecked="true"/>
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true"/>
+ </VerticalStack>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Margin="5">
+ <Label Text="MouseEvents" Width="50%" Margin="3" Focusable="true"
+ Background="Jet"
+ Foreground="DimGrey"
+ TextAlignment="Center"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGrey}"
+ MouseDown="{Background=DarkRed}"
+ MouseClick="{Foreground=Green}"
+ MouseDoubleClick="{Foreground=Yellow}"
+ MouseUp="{Background=Jet}"/>
+ <Label Text="MouseEvents" Width="50%" Margin="3"
+ Background="Jet"
+ Foreground="DimGrey"
+ TextAlignment="Center"
+ MouseClick="{Foreground=Green}"
+ MouseDoubleClick="{Foreground=Yellow}"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGrey}"
+ MouseDown="{Background=SeaGreen}"
+ MouseUp="{Background=DimGrey}"/>
+ </HorizontalStack>
+ <GroupBox Caption="Templated controls" Height="Fit" Margin="5">
+ <HorizontalStack Height="Fit">
+ <VerticalStack Width="50%">
+ <CheckBox IsChecked="true" Style="CheckBox2"/>
+ <CheckBox Style="CheckBox2"/>
+ <CheckBox Style="CheckBox2"/>
+ <CheckBox Style="CheckBox2"/>
+ </VerticalStack>
+ <Splitter/>
+ <VerticalStack Width="50%">
+ <RadioButton Style="RadioButton2"/>
+ <RadioButton Style="RadioButton2"/>
+ <RadioButton Style="RadioButton2"/>
+ <RadioButton Style="RadioButton2"/>
+ </VerticalStack>
+ </HorizontalStack>
+ </GroupBox>
+ <HorizontalStack Height="Fit">
+ <Label Text="Spinner"/>
+ <Spinner Fit="true"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Button Caption="Button"/>
+ <Button Caption="Button" IsEnabled="false"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <Splitter/>
+ <VerticalStack Width="40%" Margin="5" Spacing="5">
+ <Expandable>
+ <Image Path="#Crow.Icons.crow.svg"/>
+ </Expandable>
+ <Popper>
+ <Border Fit="True" Background="DimGrey" CornerRadius="0" BorderWidth="1">
+ <Image Path="#Crow.Icons.crow.svg" Width="100" Height="100" Margin="10"
+ MouseEnter="{Background=LightGrey}"
+ MouseLeave="{Background=Transparent}"/>
+ </Border>
+ </Popper>
+ <Slider Height="10" Width="90%"/>
+ <Container Height="Fit" Width="200" Background="DimGrey" Margin="2" CornerRadius="5">
+ <ProgressBar Background="DimGrey" Height="10" Value="50"/>
+ </Container>
+ <Image Path="#Crow.Icons.crow.svg" Width="60" Height="60" Background="LightGrey" />
+<!-- <TabView Name="tabview1"
+ Height="120" Orientation="Horizontal" Spacing="15">
+ <TabItem Name="TabItem1" Caption="Tab 1" Margin="0">
+ <VerticalStack Fit="true">
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="Tab 2" Background="Grey">
+ <VerticalStack Fit="true">
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem3" Caption="Tab 3" Background="Grey">
+ <Container Margin="5" CornerRadius="2">
+ <TextBox Height="Stretched" Margin="5" Multiline="true" TextAlignment="TopLeft"/>
+ </Container>
+ </TabItem>
+ </TabView>-->
+ <MessageBox Movable="false"/>
+ <ColorPicker SelectedColor="{²../go.Background}" Name="colorPicker" Margin="5" Fit="True" />
+ <Widget Name="go" Width="100" Height="60" Background="{../../colorList.SelectedItem}"/>
+ <Label Text="{../colorPicker.SelectedColor}"/>
+ </VerticalStack>
+ <Splitter/>
+ <VerticalStack Width="30%" Margin="5">
+<!-- <Border Margin="5" Height="Fit">
+ <Label Width="Stretched" Margin="1" Text="{../../dv.SelectedItem}"/>
+ </Border>
+ <Border Margin="5" Height="30%">
+ <DirectoryView Name="dv" CurrentDirectory="/" Margin="1"/>
+ </Border>
+ <Splitter/>-->
+ <ListBox Name="colorList" Data="{TestList}" Margin="5"
+ ItemTemplate="Interfaces/colorItem.crow"
+ Template="#Crow.ScrollingListBox.template"
+ />
+ </VerticalStack>
+ </HorizontalStack>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true">
+ <TextBox Font="droid, 20" Text="test text box" Width="Stretched"/>
+ <HorizontalStack Margin="5" Fit="true" MouseEnter="{Background=White}" MouseLeave="{Background=Transparent}">
+ <Label Text="centered" Width="80" Height="30" Background="DarkBlue" TextAlignment="Center"/>
+ <Label Text="top left" Width="80" Height="30" Background="DarkBlue" TextAlignment="TopLeft"/>
+ <Label Text="top right" Width="80" Height="30" Background="DarkBlue" TextAlignment="TopRight"/>
+ <Label Text="right center" Width="80" Height="30" Background="DarkBlue" TextAlignment="Right"/>
+ <Label Text="bottom left" Width="80" Height="30" Background="DarkBlue" TextAlignment="BottomLeft"/>
+ <Label Text="bottom center" Width="80" Height="30" Background="DarkBlue" TextAlignment="Bottom"/>
+ <Label Text="bottom right" Width="80" Height="30" Background="DarkBlue" TextAlignment="BottomRight"/>
+ </HorizontalStack>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Fit="true">
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <ProgressBar CornerRadius="5" Background="DimGrey" Margin="1" Maximum="1000" Value="{fps}" Width="200" Height="15"/>
+ <HorizontalStack Fit="true">
+ <Label Text="Memory:" Width="50" TextAlignment="Right"/>
+ <Label Text="{memory}" Font="droid,12" TextAlignment="Center"
+ Background="vgradient|0:RoyalBlue|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Fit="true" Margin="5">
+ <VerticalStack Fit="true" Margin="2" Spacing="2">
+ <TextRun Text="text run test"/>
+<!-- <Label Text="label test"/>
+ <TextBox Text="text box test"/>
+ <Button Caption="test button"/>-->
+<!-- <CheckBox Caption="test checkbox"/>
+ <RadioButton Caption="test radiobutton"/>
+ <ComboBox/>
+ <Popper Caption="test popper">
+ <Label Text="label test"/>
+ </Popper>
+ <Expandable Caption="test expandable">
+ <Label Text="label test"/>
+ </Expandable>
+ <Border >
+ <Label Text="border test" Margin="3"/>
+ </Border>
+ <GroupBox Caption="Group box" >
+ <Label Text="border test" Margin="3"/>
+ </GroupBox>
+ <Container Fit="true" Background="DimGrey" Margin="3">
+ <Widget Width="20" Height="20" Background="LightGrey"/>
+ </Container>-->
+<!-- <ProgressBar Height="10" Width="150" Background="DimGrey" Value="50" />
+ <Slider Value="5" Width="150" Height="10"/>
+ <ScrollBar Orientation="Horizontal" Maximum="100" Value="50" Height="16" Width="150"/>
+ <Spinner Value="100"/>-->
+ </VerticalStack>
+<!-- <VerticalStack Width="150" Height="Fit" Margin="2" Spacing="2">
+ <TextRun Text="text run test" Width="Stretched"/>
+ <Label Text="label test" Width="Stretched"/>
+ <TextBox Text="text box test" Width="Stretched"/>
+ <Button Caption="test button" Width="Stretched"/>
+ <CheckBox Caption="test checkbox" Width="Stretched"/>
+ <RadioButton Caption="test radiobutton" Width="Stretched"/>
+ <ComboBox Width="Stretched"/>
+ <Popper Caption="test popper" Width="Stretched">
+ <Label Text="label test"/>
+ </Popper>
+ <Expandable Caption="test expandable" Width="Stretched">
+ <Label Text="label test"/>
+ </Expandable>
+ <Border Width="Stretched">
+ <Label Text="border test" Margin="3"/>
+ </Border>
+ <GroupBox Caption="Group box" Width="Stretched">
+ <Label Text="border test" Margin="3"/>
+ </GroupBox>
+ <Container Height="Fit" Width="Stretched" Background="DimGrey" Margin="3">
+ <Widget Width="20" Height="20" Background="LightGrey"/>
+ </Container>
+ <ProgressBar Height="10" Width="Stretched" Background="DimGrey" Value="50" />
+ <Slider Value="5" Width="Stretched" Height="10"/>
+ <ScrollBar Orientation="Horizontal" Maximum="100" Value="50" Height="16" Width="Stretched"/>
+ <Spinner Value="100" Width="Stretched"/>
+ </VerticalStack>-->
+</HorizontalStack>
+<!--<HorizontalStack Fit="true" Background="RoyalBlue" Margin="5">
+ <Widget Background="Red" Width="30" Height="20"/>
+ <Spinner Maximum="10000000000" SmallIncrement="10" Value="0"/>
+ <Widget Background="Green" Width="30" Height="20"/>
+</HorizontalStack>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true" Background="DimGrey" Margin="5">
+<!-- <RadioButton/>-->
+ <Label Text="a" Width="Stretched" Background="Red"/>
+ <Label Text="{fps}" HorizontalAlignment="Right" Background="LimeGreen"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Container Fit="true" Margin="50" Background="LimeGreen" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="false"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{drawing}" Background="RoyalBlue"/>
+ </Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Fit="true" Margin="20" Background="SkyBlue" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=LightGrey}"
+ MouseLeave="{Background=SkyBlue}">
+ <Container Fit="true" Margin="20" Background="Red" CacheEnabled="true"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=White}"
+ MouseLeave="{Background=Red}">
+ <Container Fit="true" Margin="20" Background="Yellow" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Blue}"
+ MouseLeave="{Background=Yellow}">
+ <Container Margin="50" Background="LimeGreen" CacheEnabled="true"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="1" Text="{drawing}" Background="RoyalBlue"/>
+ </Container>
+ </Container>
+ </Container>
+ </Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Fit="true" Margin="50" Background="Yellow" CacheEnabled="true"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=DimGrey}"
+ MouseLeave="{Background=Yellow}">
+<Group Width="300" Height="200" Margin="50" Background="LimeGreen" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+ <Label Left="10" HorizontalAlignment="Right" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{drawing}" Background="RoyalBlue"/>
+ </Group>
+ </Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Fit="true" Margin="50" Background="Yellow" CacheEnabled="true"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=DimGrey}"
+ MouseLeave="{Background=Yellow}">
+ <HorizontalStack Fit="true">
+ <VerticalStack Fit="true" Margin="50" Background="LimeGreen" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{fps}" Background="RoyalBlue"/>
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{drawing}" Background="RoyalBlue"/>
+ </VerticalStack>
+ <VerticalStack Fit="true" Margin="50" Background="LimeGreen" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{fpsMax}" Background="RoyalBlue"/>
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{fpsMin}" Background="RoyalBlue"/>
+ </VerticalStack>
+ </HorizontalStack>
+ </Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Border Fit="true" BorderWidth="2" >
+<Scroller CornerRadius="2" Height="200" Width="300" Background="DimGrey" Margin="2">
+ <VerticalStack Margin="10" VerticalAlignment="Top" Fit="true" Background="vgradient|0:RoyalBlue|1:Black" >
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 1"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 2"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 3"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 4"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 5"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 6"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 7"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 8"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 9"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 10"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 11"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 12"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 13"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 14"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 15"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 16"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 17"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 18"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 19"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 20"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 21"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 22"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 23"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 24"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 25"/>
+ </VerticalStack>
+</Scroller>
+</Border>
+<!--<VerticalStack Fit="true" Margin="50" Background="LimeGreen" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+
+ <CheckBox Margin="20" Background="RoyalBlue"/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ <CheckBox/>
+
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{fps}" Background="RoyalBlue"/>
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{drawing}" Background="RoyalBlue"/>
+ </VerticalStack>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack>
+ <ColorPicker SelectedColor="{²../go.Background}" Name="colorPicker" Background="DimGrey" Margin="5" Fit="True" />
+ <Widget Name="go" Width="100" Height="60" Background="DarkBlue"/>
+ <Widget Name="go" Width="100" Height="60" Background="{../colorPicker.SelectedColor}"/>
+ <Label Text="{../colorPicker.SelectedColor}"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Border Fit="true" CornerRadius="5" BorderWidth="1">
+ <Container Name="MainGrp" Background="0.5,0.5,0.5,0.4" Width="120" Fit="true"
+ Margin="10" Focusable="True" >
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Margin="5" Name="labUpdate" Text="{update}" Font="droid,12" Background="SeaGreen" Width="50" TextAlignment="Center"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Margin="5" Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center" Background="SeaGreen"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Margin="5" Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center" Background="SeaGreen"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Margin="5" Text="{fpsMax}" Font="droid , 12" Background="SeaGreen" Width="50" TextAlignment="Center"/>
+ </HorizontalStack>
+ </VerticalStack>
+ </Container>
+</Border>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Focusable="true" Caption="Measures" Width="30%" Height="300" MinimumSize="100,100">
+ <ListBox Data="{PerfMeasures}"
+ ItemTemplate="#ui.perfMsr.crow"/>
+</Window>
--- /dev/null
+<?xml version="1.0"?>
+<Group Name="TopGroup" Width="500" Height="400" Margin="5"
+ Focusable="True" Background="Yellow">
+ <Group Name="InnerGroup" Width="Fit" Height="Fit" Margin="50"
+ VerticalAlignment="Top" HorizontalAlignment="Left"
+ Focusable="True" Background="Green">
+ <Image VerticalAlignment="Bottom"
+ Name="PhaseOverlay1" Width="100" Height="100" Path="image/u.svg" Background="Red"/>
+ <Image Top="100"
+ Name="PhaseOverlay2" Width="100" Height="100" Path="image/u.svg" Background="Red"/>
+ </Group>
+ <Image VerticalAlignment="Center" HorizontalAlignment="Right"
+ Name="PhaseOverlay0" Width="100" Height="100" Path="image/u.svg" Background="Red"/>
+
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="Green" Height="400" Width="400">
+<VerticalStack Margin="10" Background="DarkBlue" Height="Fit" Width="Stretched">
+ <Label Text="label11" Width="Stretched"/>
+ <Label Text="label21"/>
+ <HorizontalStack Width="Fit" Height="Fit" Margin="5"
+ Focusable="True" Background="Blue">
+ <Label Text="label12"/>
+ <Label Text="label22"/>
+ <Label Text="label32"/>
+ <Label Text="label42"/>
+ <Label Text="label52"/>
+ </HorizontalStack>
+ <Label Text="label33" Background="Green" Width="Stretched"/>
+ <Button/>
+ <Label Text="label43"/>
+ <Label Text="label53"/>
+
+</VerticalStack>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Name="TopContainer" Width="400" Height="350"
+ Margin="20" Focusable="True" Background="Yellow">
+ <Container Name="MiddleContainer" Width="50%" Height="Stretched"
+ Margin="20" Focusable="True" Background="Green">
+ <Image VerticalAlignment="Bottom"
+ Name="PhaseOverlay" Width="100" Height="100" Path="image/u.svg" Background="Red"/>
+ </Container>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true">
+ <CheckBox IsChecked="{²BoolVal}"/>
+ <CheckBox Caption="second" IsChecked="{²BoolVal}"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true">
+ <TextBox Text="{Datas}" Width="100" />
+ <Button Text="Set Text to Null" MouseClick="onSetDataToNull"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Widget Margin="10" Width="50%" Height="50%" Focusable="true"
+ Background="hgradient|0:Red|0.25:Blue|0.5:Green|0.75:Yellow|1:Red"
+ MinimumSize="50,50" ContextCommands="{Commands}"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true" VerticalAlignment="Top" Background="0.7,0.7,0.7,0.5"
+ Margin="10" CornerRadius="10" ClipToClientRect="false">
+ <Label Font="20" Text="Enable / Disable test"/>
+ <Label Text="{fps}" IsEnabled="false" Font="30"/>
+ <Label Text="{fps}" IsEnabled="true" Font="30"/>
+ <Label Text="{fps}" IsEnabled="false" Font="30" Background="SeaGreen"/>
+ <Label Text="{fps}" IsEnabled="true" Font="30" Background="SeaGreen"/>
+ <Button Caption="Button" IsEnabled="true" Background="Grey"/>
+ <Button Caption="Button" IsEnabled="false" Background="Grey"/>
+ <Button Caption="Button" IsEnabled="true" />
+ <Button Caption="Button" IsEnabled="false" />
+ <Spinner Fit="true"/>
+ <Spinner IsEnabled="false" Fit="true"/>
+ <CheckBox/>
+ <CheckBox IsEnabled="false"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<FileDialog Caption="Open File" CurrentDirectory="/" SearchPattern="*.*"/>
+
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack>
+ <Menu>
+ <MenuItem Caption="File" Width="Fit">
+ <MenuItem Command="{CMDTest}"/>
+ <MenuItem Caption="Open"/>
+ <MenuItem Caption="Save"/>
+ <MenuItem Caption="Quit"/>
+ </MenuItem>
+ <MenuItem Caption="Edit" Name="edit" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ <MenuItem Caption="Special" Name="special" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ </MenuItem>
+ <MenuItem Caption="Special2" Name="special" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ </MenuItem>
+ </MenuItem>
+ <MenuItem Caption="Help" Width="Fit">
+ <MenuItem Caption="About"/>
+ <MenuItem Caption="Help"/>
+ </MenuItem>
+ </Menu>
+ <HorizontalStack Height="Fit">
+ <Label Text="Hover:" Width="50" Foreground="Grey"/>
+ <Label Text="{HoverWidget}"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Focus:" Width="50" Foreground="Grey"/>
+ <Label Text="{FocusedWidget}"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Active:" Width="50" Foreground="Grey"/>
+ <Label Text="{ActiveWidget}"/>
+ </HorizontalStack>
+ <Container Fit="true" Margin="50" Background="SlateGrey">
+ <Label Text="MouseEvents" Margin="3" Focusable="true" Fit="true"
+ Background="Jet"
+ Foreground="DimGrey"
+ TextAlignment="Center"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGrey}"
+ MouseDown="{Background=DarkRed}"
+ MouseClick="{Foreground=Green}"
+ MouseDoubleClick="{Foreground=Yellow}"
+ MouseUp="{Background=Jet}"/>
+ </Container>
+ <TextBox Width="300" Margin="10"/>
+ <Slider Width="300" Height="12"/>
+ <ComboBox Data="{TestList}" Width="120">
+ <ItemTemplate DataType="Crow.Color">
+ <HorizontalStack
+ HorizontalAlignment="Left"
+ Height="Fit" Width="200" Margin="1" Focusable="true"
+ MouseEnter="{Background=hgradient|0:DarkRed|1:Transparent}"
+ MouseLeave="{Background=Transparent}">
+ <Widget Height="12" Width="20" Background="{}" Margin="0" CornerRadius="3"/>
+ <Label Text="{}" Margin="0" Width="Stretched"/>
+ </HorizontalStack>
+ </ItemTemplate>
+ </ComboBox>
+ <HorizontalStack Height="Fit" Margin="1" Background="DimGrey" Width="200">
+ <VerticalStack Spacing="2" Width="50%">
+ <CheckBox Caption="test" MouseEnter="{Background=Blue}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox />
+ <CheckBox />
+ <CheckBox IsChecked="true"/>
+ </VerticalStack>
+ <VerticalStack Spacing="2" Width="50%">
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true" IsChecked="true"/>
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true"/>
+ </VerticalStack>
+ </HorizontalStack>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<IMLContainer Path="Interfaces/Divers/colorPicker.crow"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true">
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="SCALED PROPORTIONNAL" Width="150"/>
+ <Image Width="10%" Height="Fit" Background="vgradient|0:SkyBlue|1:White" Path="#Tests.image.crow0.svg"/>
+ <Image Margin="10" Background="vgradient|0:SkyBlue|1:White" Path="#Tests.image.crow0.svg" />
+ <Image Background="vgradient|0:SkyBlue|1:White" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image Margin="2" Background="vgradient|0:SkyBlue|1:White" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image Background="vgradient|0:SkyBlue|1:White" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image Background="vgradient|0:SkyBlue|1:White" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image Background="vgradient|0:SkyBlue|1:White" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ <Image Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ </HorizontalStack>
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="SCALED NOT PROPORTIONNAL" Width="150"/>
+ <Image KeepProportions="false" Background="vgradient|0:SkyBlue|1:White" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Margin="10" Background="vgradient|0:SkyBlue|1:White" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Background="vgradient|0:SkyBlue|1:White" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Margin="2" Background="vgradient|0:SkyBlue|1:White" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Background="vgradient|0:SkyBlue|1:White" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ </HorizontalStack>
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="UNSCALED" Width="150"/>
+ <Image Scaled="false" Background="Blue" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Margin="10" Background="Blue" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Background="Blue" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Margin="2" Background="Blue" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Background="Blue" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Margin="10" Background="Blue" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Background="Blue" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Margin="10" Background="Blue" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Background="Blue" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Margin="10" Background="Blue" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ </HorizontalStack>
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="SCALED PROPORTIONNAL" Width="150"/>
+ <Image Background="Blue" Path="#Crow.Icons.tetra.png"/>
+ <Image Margin="10" Background="Blue" Path="#Crow.Icons.tetra.png"/>
+ <Image Background="Blue" Width="20" Height="20" Path="#Crow.Icons.tetra.png"/>
+ <Image Margin="2" Background="Blue" Width="20" Height="20" Path="#Crow.Icons.tetra.png"/>
+ <Image Background="Blue" Width="50" Height="100" Path="#Crow.Icons.tetra.png"/>
+ <Image Margin="10" Background="Blue" Width="50" Height="100" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Background="Blue" Width="100" Height="50" Path="#Crow.Icons.tetra.png"/>
+ <Image Margin="10" Background="Blue" Width="100" Height="50" Path="#Crow.Icons.tetra.png"/>
+ <Image Background="Blue" Width="50" Height="Fit" Path="#Crow.Icons.tetra.png"/>
+ <Image Margin="10" Background="Blue" Width="50" Height="Fit" Path="#Crow.Icons.tetra.png"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="SCALED NOT PROPORTIONNAL" Width="150"/>
+ <Image KeepProportions="false" Background="Blue" Path="#Crow.Icons.tetra.png"/>
+ <Image KeepProportions="false" Margin="10" Background="Blue" Path="#Crow.Icons.tetra.png"/>
+ <Image KeepProportions="false" Background="Blue" Width="20" Height="20" Path="#Crow.Icons.tetra.png"/>
+ <Image KeepProportions="false" Margin="2" Background="Blue" Width="20" Height="20" Path="#Crow.Icons.tetra.png"/>
+ <Image KeepProportions="false" Background="Blue" Width="50" Height="100" Path="#Crow.Icons.tetra.png"/>
+ <Image KeepProportions="false" Margin="10" Background="Blue" Width="50" Height="100" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image KeepProportions="false" Background="Blue" Width="100" Height="50" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image KeepProportions="false" Margin="10" Background="Blue" Width="100" Height="50" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image KeepProportions="false" Background="Blue" Width="50" Height="Fit" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image KeepProportions="false" Margin="10" Background="Blue" Width="50" Height="Fit" Path="#Crow.Images.Icons.tetra.png"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="UNSCALED" Width="150"/>
+ <Image Scaled="false" Background="Blue" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Margin="10" Background="Blue" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Background="Blue" Width="20" Height="20" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Margin="2" Background="Blue" Width="20" Height="20" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Background="Blue" Width="50" Height="100" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Margin="10" Background="Blue" Width="50" Height="100" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Background="Blue" Width="100" Height="50" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Margin="10" Background="Blue" Width="100" Height="50" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Background="Blue" Width="50" Height="Fit" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Margin="10" Background="Blue" Width="50" Height="Fit" Path="#Crow.Images.Icons.tetra.png"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Fit" Height="100" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Image Background="Blue" Path="#Tests.image.crow0.svg" />
+ <Image Margin="10" Background="White" Path="#Tests.image.crow0.svg" />
+ <Image Background="White" Width="20" Height="10" Path="#Tests.image.crow0.svg" />
+ <Image Margin="1" Background="White" Width="20" Height="10" Path="#Tests.image.crow0.svg" />
+ </HorizontalStack>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Menu>
+ <MenuItem Caption="File" Width="Fit">
+ <MenuItem Command="{CMDTest}"/>
+ </MenuItem>
+</Menu>
--- /dev/null
+<?xml version="1.0"?>
+<Container Width="200" Height="100" Background="DimGrey" Margin="5">
+ <Container Width="Stretched" Height="800" Background="DarkBlue">
+ <Label Text="{fps}" Background="RoyalBlue" VerticalAlignment="Center"/>
+ </Container>
+</Container>
--- /dev/null
+<?xml version="1.0"?>
+<Label Margin="50" MinimumSize="10,10" Background="DimGrey" Text="{PropertyLessBinding}"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Fit="true" Background="Red" Tooltip="test tooltip" >
+ <Shape Foreground="Transparent" Background="DimGrey" Path="M 5.5,0.5 L 10.5,10.5 L 0.5,10.5 Z"
+ MouseEnter="{Background=hgradient|0:DimGrey|0.5:RoyalBlue|1:Black}"
+ MouseLeave="{Background=DimGrey}"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Width="500" Height="300" MinimumSize="50,50">
+<HorizontalStack Margin="5" Background="DimGrey">
+ <VerticalStack Width="200" Margin="5" Background="Grey">
+ <VerticalStack Fit="true" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </VerticalStack>
+ <VerticalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun Background="SkyBlue" Height="Stretched"/>
+ </VerticalStack>
+ <HorizontalStack Fit="true" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Stretched" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="Stretched" Height="Stretched" Margin="5" Background="Grey">
+ <VerticalStack Fit="true" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </VerticalStack>
+ <VerticalStack Width="Stretched" Height="Stretched" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun TextAlignment="Center" Background="SkyBlue" Width="Stretched" Height="Stretched"/>
+ </VerticalStack>
+ <HorizontalStack Fit="true" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="Fit" Margin="5" Background="Grey">
+ <VerticalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue" HorizontalAlignment="Left"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </VerticalStack>
+ <VerticalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun Background="SkyBlue" Height="Stretched"/>
+ </VerticalStack>
+ <HorizontalStack Fit="true" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Stretched" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ </VerticalStack>
+</HorizontalStack>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Background="SteelBlue" Fit="true">
+ <HorizontalStack Fit="true">
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="TopLeft"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Top"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="TopRight"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Left"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Center"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Right"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="BottomLeft"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Bottom"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="BottomRight"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <TextBox Background="DarkGrey" Height="30" Width="70" TextAlignment="Top" HorizontalStretch="true" Text="TopStretch"/>
+ <TextBox Background="DarkGrey" Height="30" Width="60" TextAlignment="Center" HorizontalStretch="true" Text="HorizontalStretch" />
+ <TextBox Background="DarkGrey" Height="30" Width="60" TextAlignment="Bottom" HorizontalStretch="true" Text="BottomStretch"/>
+ <TextBox Background="DarkGrey" Height="10" Width="70" TextAlignment="Left" VerticalStretch="true" Text="LeftStretch"/>
+ <TextBox Background="DarkGrey" Height="10" Width="70" TextAlignment="Center" VerticalStretch="true" Text="VerticalStretch"/>
+ <TextBox Background="DarkGrey" Height="10" Width="70" TextAlignment="Right" VerticalStretch="true" Text="RightStretch"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" HorizontalStretch="true" VerticalStretch="true" Text="Fit"/>
+ </HorizontalStack>
+ <TextBox Name="tb" Multiline="true" Font="droid,16" Margin="5" Text="A\nBB\nCCC\nDDDD"/>
+ <TextBox Multiline="true" Font="droid,16" Name="tb5" Margin="5" Text="{../tb.SelectedText}"/>
+<!-- <TextBox Font="droid,10" Name="tb1" Margin="5" Text="this is a test of a text box"/>
+ <TextBox Width="300" Height="35" Text="this is a test of a text box"/>-->
+ <TextBox Font="droid,10" Name="tb2" Margin="0" Text="this is a test of a text box"/>
+ <TextBox Font="droid,10" Name="tb3" Margin="5" Text="this is a test of a text box"/>
+ <TextBox Font="droid,10" Name="tb4" Margin="5" Text="this is a test of a text box"/>
+ <TextBox Font="droid,10" Name="tb5" Margin="20" Text="this is a test of a text box"/>
+ <TextBox Multiline="true" Font="droid,10" Name="tb6" Margin="5" Text="this is a test of a text box\nthis is a test of a text box"/>
+ <TextBox Multiline="true" Font="droid,10" Name="tb7" Margin="1" TextAlignment="Center"
+ Text="this is a test of a text box\nthis is a test\nthis is a test when line are centered"/>
+ <TextBox Multiline="true" Font="droid,10" Name="tb8" Margin="1" TextAlignment="Center"
+ Text="this is a test of a text box\n\n\nthis is a test\nthis is a test when line are centered"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Margin="20" Background="Red" >
+ <Container Margin="20" Background="Green" MouseDown="{../go1.Visible=True}" >
+ <Widget Name="go1" Margin="20" Background="DimGrey" Visible="false" MouseDown="{Visible=false}"
+ MouseEnter="{Background=Blue}"
+ MouseLeave="{Background=DimGrey}"/>
+ </Container>
+</Container>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Background="DarkBlue" Height="300" Width="200">
+<!-- <Label Text="label11" Width="Stretched" Background="Green"/>
+ <Label Text="label21"/>-->
+ <HorizontalStack Width="Fit" Height="Fit" Margin="5"
+ Focusable="True" Background="Blue">
+
+ <Label Text="label12"/>
+ <VerticalStack Background="Red" Fit="true">
+ <Label Text="label99"/>
+ <Label Text="label999"/>
+ </VerticalStack>
+ <Label Text="label22"/>
+<!-- <Label Text="label32"/>
+ <Label Text="label42"/>
+ <Label Text="label52"/>-->
+ </HorizontalStack>
+<!-- <Label Text="label33" Background="Green" Width="Stretched"/>-->
+<!-- <Label Text="label43"/>-->
+<!-- <Border Margin="10">
+ <Label Text="label53" Background="Red" Height="Stretched" CornerRadius="10"/>
+ </Border>-->
+ <Label Text="label43"/>
+ <Label Text="label43"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Border BorderStyle="Sunken" Fit="true" Background="0.7,0.7,0.7,0.5" CornerRadius="10">
+ <VerticalStack Margin="20">
+ <Image Path="#Crow.Icons.crow.svg"/>
+<!-- <Label Font="Times bold, 60" Text="C.R.O.W"/>-->
+ <HorizontalStack Fit="true" DataSource="{CrowVersion}" Spacing="0">
+ <Label Foreground="Black" Font="mono, 12" Text="version: "/>
+ <Label Foreground="Black" Font="mono, 12" Text="{Major}"/>
+ <Label Foreground="Black" Font="mono, 12" Text="."/>
+ <Label Foreground="Black" Font="mono, 12" Text="{Minor}"/>
+ <Label Foreground="Black" Font="mono, 12" Text="."/>
+ <Label Foreground="DimGrey" Font="mono, 12" Text="{Build}"/>
+ </HorizontalStack>
+ <Widget Height="30"/>
+ <Label Font="20" Text="Press <F2> and <F3> to cycle into the examples"/>
+ <Label Font="20" Text="Those are basic tests used to validate changes,"/>
+ <Widget Height="30"/>
+ <Label Foreground="DimGrey" Font="20" Text="<F5> => File dialog example"/>
+ <Label Foreground="DimGrey" Font="20" Text="<F6> => Window example"/>
+ </VerticalStack>
+</Border>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Hello World" Icon="#Crow.Icons.crow.svg" Width="40%" Height="40%" CornerRadius="5">
+ <VerticalStack>
+ <Label Text="Hello World" Font="mono, 20"/>
+ <Image Path="#Crow.Icons.crow.svg"/>
+ </VerticalStack>
+</Window>
+
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Background="Jet" Margin="5">
+ <DirectoryView Name="dv" CurrentDirectory="Interfaces" Width="25%" SelectedItemChanged="Dv_SelectedItemChanged"/>
+ <Splitter Width="6"/>
+ <VerticalStack>
+ <Container Name="CrowContainer" Height="60%" Background="DimGrey"/>
+ <Splitter/>
+ <HorizontalStack>
+ <Scroller Name="scroller1" Background="White"
+ Margin="2" ScrollY="{../scrollbar1.Value}"
+ ValueChanged="./_scroller_ValueChanged">
+ <TextBox VerticalAlignment="Top" TextChanged="Tb_TextChanged"
+ Text="{source}" Multiline="true" TextAlignment="TopLeft"
+ Font="Courriernew 10"/>
+ </Scroller>
+ <ScrollBar Name="scrollbar1" Value="{../scroller1.ScrollY}"
+ LargeIncrement="{../scroller1.PageHeight}" SmallIncrement="30"
+ CursorSize="{../scroller1.ChildHeightRatio}"
+ Maximum="{../scroller1.MaxScrollY}" Orientation="Vertical"
+ Width="14" />
+ </HorizontalStack>
+ <Label Visible="{ShowError}" Text="{ErrorMessage}" Background="Red" Foreground="White" Width="Stretched" Margin="2"
+ Multiline="true"/>
+ </VerticalStack>
+</HorizontalStack>
--- /dev/null
+using System;
+using System.Threading;
+using Crow;
+using CVKL;
+using VK;
+
+namespace Crow
+{
+ public class CrowVkWin : VkWindow, IValueChange {
+ #region IValueChange implementation
+ public event EventHandler<Crow.ValueChangeEventArgs> ValueChanged;
+ public virtual void NotifyValueChanged(string MemberName, object _value)
+ {
+ if (ValueChanged != null)
+ ValueChanged.Invoke(this, new Crow.ValueChangeEventArgs(MemberName, _value));
+ }
+ #endregion
+
+ protected Crow.Interface crow;
+ protected CVKL.Image uiImage;
+ protected vkvg.Device vkvgDev;
+ bool isRunning;
+
+ protected CrowVkWin() : base()
+ {
+ Thread crowThread = new Thread(crow_thread_func);
+ crowThread.IsBackground = true;
+ crowThread.Start();
+
+ while (crow == null)
+ Thread.Sleep(2);
+
+ initUISurface();
+ }
+
+ protected override void render () {
+ int idx = swapChain.GetNextImage ();
+
+ if (idx < 0) {
+ OnResize ();
+ return;
+ }
+
+ lock (crow.RenderMutex) {
+ presentQueue.Submit (cmds[idx], swapChain.presentComplete, drawComplete[idx]);
+ presentQueue.Present (swapChain, drawComplete[idx]);
+ presentQueue.WaitIdle ();
+ }
+ Thread.Sleep (1);
+ }
+
+ void crow_thread_func () {
+ vkvgDev = new vkvg.Device (instance.Handle, phy.Handle, dev.VkDev.Handle, presentQueue.qFamIndex,
+ vkvg.SampleCount.Sample_8, presentQueue.index);
+
+ crow = new Crow.Interface (vkvgDev, 800, 600);
+
+ isRunning = true;
+ while (isRunning) {
+ crow.Update ();
+ Thread.Sleep (3);
+ }
+
+ crow.Dispose ();
+ vkvgDev.Dispose ();
+ crow = null;
+ }
+
+ void initUISurface () {
+ lock (crow.UpdateMutex) {
+ uiImage?.Dispose ();
+ uiImage = new CVKL.Image (dev, new VkImage ((ulong)crow.surf.VkImage.ToInt64 ()), VkFormat.B8g8r8a8Unorm,
+ VkImageUsageFlags.Sampled, swapChain.Width, swapChain.Height);
+ uiImage.SetName ("uiImage");
+ uiImage.CreateView (VkImageViewType.ImageView2D, VkImageAspectFlags.Color);
+ uiImage.CreateSampler (VkFilter.Nearest, VkFilter.Nearest, VkSamplerMipmapMode.Nearest, VkSamplerAddressMode.ClampToBorder);
+ uiImage.Descriptor.imageLayout = VkImageLayout.ShaderReadOnlyOptimal;
+ }
+ }
+
+ protected virtual void recordDraw (CommandBuffer cmd, int imageIndex) { }
+
+ void buildCommandBuffers () {
+ for (int i = 0; i < swapChain.ImageCount; ++i) {
+ cmds[i]?.Free ();
+ cmds[i] = cmdPool.AllocateAndStart ();
+
+ CommandBuffer cmd = cmds [i];
+
+ recordDraw (cmd, i);
+
+ swapChain.images [i].SetLayout (cmd, VkImageAspectFlags.Color,
+ VkImageLayout.Undefined, VkImageLayout.TransferDstOptimal,
+ VkPipelineStageFlags.BottomOfPipe, VkPipelineStageFlags.Transfer);
+ uiImage.SetLayout (cmd, VkImageAspectFlags.Color,
+ VkImageLayout.ColorAttachmentOptimal, VkImageLayout.TransferSrcOptimal,
+ VkPipelineStageFlags.ColorAttachmentOutput, VkPipelineStageFlags.Transfer);
+
+ VkImageSubresourceLayers imgSubResLayer = new VkImageSubresourceLayers {
+ aspectMask = VkImageAspectFlags.Color,
+ mipLevel = 0,
+ baseArrayLayer = 0,
+ layerCount = 1
+ };
+ VkImageCopy cregion = new VkImageCopy {
+ srcSubresource = imgSubResLayer,
+ srcOffset = default (VkOffset3D),
+ dstSubresource = imgSubResLayer,
+ dstOffset = default (VkOffset3D),
+ extent = new VkExtent3D { width = swapChain.Width, height = swapChain.Height }
+ };
+ Vk.vkCmdCopyImage (cmds [i].Handle, uiImage.Handle, VkImageLayout.TransferSrcOptimal,
+ swapChain.images [i].Handle, VkImageLayout.TransferDstOptimal, 1, ref cregion);
+
+ swapChain.images [i].SetLayout (cmd, VkImageAspectFlags.Color,
+ VkImageLayout.TransferDstOptimal, VkImageLayout.PresentSrcKHR,
+ VkPipelineStageFlags.Transfer, VkPipelineStageFlags.BottomOfPipe);
+ uiImage.SetLayout (cmd, VkImageAspectFlags.Color,
+ VkImageLayout.TransferSrcOptimal, VkImageLayout.ColorAttachmentOptimal,
+ VkPipelineStageFlags.Transfer, VkPipelineStageFlags.ColorAttachmentOutput);
+
+ cmds [i].End ();
+ }
+ }
+
+ /// <summary>
+ /// rebuild command buffers if needed
+ /// </summary>
+ public override void Update () {
+ if (rebuildBuffers) {
+ buildCommandBuffers ();
+ rebuildBuffers = false;
+ }
+ }
+
+ protected override void OnResize () {
+ dev.WaitIdle ();
+
+ crow.ProcessResize (new Crow.Rectangle (0, 0, (int)swapChain.Width, (int)swapChain.Height));
+
+ initUISurface ();
+
+ buildCommandBuffers ();
+ dev.WaitIdle ();
+ }
+
+ #region Mouse and keyboard
+ //protected override void onScroll (double xOffset, double yOffset)
+ //{
+ // if (KeyModifiers.HasFlag (Glfw.Modifier.Shift))
+ // crow.ProcessMouseWheelChanged ((float)xOffset);
+ // else
+ // crow.ProcessMouseWheelChanged ((float)yOffset);
+ //}
+ protected override void onMouseMove (double xPos, double yPos)
+ {
+ if (crow.ProcessMouseMove ((int)xPos, (int)yPos))
+ return;
+ }
+ protected override void onMouseButtonDown (Glfw.MouseButton button)
+ {
+ if (crow.ProcessMouseButtonDown ((Crow.MouseButton)button))
+ return;
+ base.onMouseButtonDown (button);
+ }
+ protected override void onMouseButtonUp (Glfw.MouseButton button)
+ {
+ if (crow.ProcessMouseButtonUp ((Crow.MouseButton)button))
+ return;
+ base.onMouseButtonUp (button);
+ }
+ protected override void onKeyDown (Glfw.Key key, int scanCode, Glfw.Modifier modifiers)
+ {
+ if (crow.ProcessKeyDown ((Crow.Key)key))
+ return;
+ }
+ protected override void onKeyUp (Glfw.Key key, int scanCode, Glfw.Modifier modifiers)
+ {
+ if (crow.ProcessKeyUp ((Crow.Key)key))
+ return;
+ }
+ //protected override void onChar (Glfw.CodePoint cp)
+ //{
+ // if (crow.ProcessKeyPress (cp.ToChar ()))
+ // return;
+ //}
+ #endregion
+
+ #region dispose
+ protected override void Dispose (bool disposing) {
+ if (disposing) {
+ if (!isDisposed) {
+ dev.WaitIdle ();
+
+ isRunning = false;
+ uiImage?.Dispose ();
+ while (crow != null)
+ Thread.Sleep (1);
+ }
+ }
+
+ base.Dispose (disposing);
+ }
+ #endregion
+ }
+}
\ No newline at end of file
--- /dev/null
+using System;
+using System.Threading;
+using Crow;
+using CVKL;
+using VK;
+
+namespace Crow
+{
+ public class CrowVkWin : VkWindow, IValueChange {
+ #region IValueChange implementation
+ public event EventHandler<Crow.ValueChangeEventArgs> ValueChanged;
+ public virtual void NotifyValueChanged(string MemberName, object _value)
+ {
+ if (ValueChanged != null)
+ ValueChanged.Invoke(this, new Crow.ValueChangeEventArgs(MemberName, _value));
+ }
+ #endregion
+
+ protected Crow.Interface crow;
+ protected CVKL.Image uiImage;
+ protected vkvg.Device vkvgDev;
+ bool isRunning;
+
+ protected CrowVkWin() : base()
+ {
+
+ Thread crowThread = new Thread(crow_thread_func);
+ crowThread.IsBackground = true;
+ crowThread.Start();
+
+ while (crow == null)
+ Thread.Sleep(2);
+
+ initUISurface();
+ }
+
+ protected virtual void onLoad () { }
+ public override void Run ()
+ {
+ onLoad ();
+ base.Run ();
+ }
+ protected override void render () {
+ int idx = swapChain.GetNextImage ();
+
+ if (idx < 0) {
+ OnResize ();
+ return;
+ }
+
+ lock (crow.RenderMutex) {
+ presentQueue.Submit (cmds[idx], swapChain.presentComplete, drawComplete[idx]);
+ presentQueue.Present (swapChain, drawComplete[idx]);
+ presentQueue.WaitIdle ();
+ }
+ Thread.Sleep (1);
+ }
+
+ void crow_thread_func () {
+ vkvgDev = new vkvg.Device (instance.Handle, phy.Handle, dev.VkDev.Handle, presentQueue.qFamIndex,
+ vkvg.SampleCount.Sample_8, presentQueue.index);
+
+ crow = new Crow.Interface (vkvgDev, 800, 600);
+ crow.MouseCursorChanged +=Crow_MouseCursorChanged;;
+
+ isRunning = true;
+ while (isRunning) {
+ crow.Update ();
+ Thread.Sleep (1);
+ }
+
+ crow.Dispose ();
+ vkvgDev.Dispose ();
+ crow = null;
+ }
+
+ void Crow_MouseCursorChanged (object sender, MouseCursorChangedEventArgs e)
+ {
+ switch (e.NewCursor) {
+ case MouseCursor.Arrow:
+ SetCursor (Glfw.CursorShape.Arrow);
+ break;
+ case MouseCursor.IBeam:
+ SetCursor (Glfw.CursorShape.IBeam);
+ break;
+ case MouseCursor.Crosshair:
+ SetCursor (Glfw.CursorShape.Crosshair);
+ break;
+ case MouseCursor.Hand:
+ SetCursor (Glfw.CursorShape.Hand);
+ break;
+ case MouseCursor.HResize:
+ SetCursor (Glfw.CursorShape.HResize);
+ break;
+ case MouseCursor.VResize:
+ SetCursor (Glfw.CursorShape.VResize);
+ break;
+ default:
+ SetCursor (Glfw.CursorShape.Crosshair);
+ break;
+ }
+ }
+
+ void initUISurface () {
+ lock (crow.UpdateMutex) {
+ uiImage?.Dispose ();
+ uiImage = new CVKL.Image (dev, new VkImage ((ulong)crow.surf.VkImage.ToInt64 ()), VkFormat.B8g8r8a8Unorm,
+ VkImageUsageFlags.Sampled, swapChain.Width, swapChain.Height);
+ uiImage.SetName ("uiImage");
+ uiImage.CreateView (VkImageViewType.ImageView2D, VkImageAspectFlags.Color);
+ uiImage.CreateSampler (VkFilter.Nearest, VkFilter.Nearest, VkSamplerMipmapMode.Nearest, VkSamplerAddressMode.ClampToBorder);
+ uiImage.Descriptor.imageLayout = VkImageLayout.ShaderReadOnlyOptimal;
+ }
+ }
+
+ protected virtual void recordDraw (CommandBuffer cmd, int imageIndex) { }
+
+ void buildCommandBuffers () {
+ for (int i = 0; i < swapChain.ImageCount; ++i) {
+ cmds[i]?.Free ();
+ cmds[i] = cmdPool.AllocateAndStart ();
+
+ CommandBuffer cmd = cmds [i];
+
+ recordDraw (cmd, i);
+
+ swapChain.images [i].SetLayout (cmd, VkImageAspectFlags.Color,
+ VkImageLayout.Undefined, VkImageLayout.TransferDstOptimal,
+ VkPipelineStageFlags.BottomOfPipe, VkPipelineStageFlags.Transfer);
+ uiImage.SetLayout (cmd, VkImageAspectFlags.Color,
+ VkImageLayout.Undefined, VkImageLayout.TransferSrcOptimal,
+ VkPipelineStageFlags.Transfer, VkPipelineStageFlags.Transfer);
+
+ VkImageSubresourceLayers imgSubResLayer = new VkImageSubresourceLayers {
+ aspectMask = VkImageAspectFlags.Color,
+ mipLevel = 0,
+ baseArrayLayer = 0,
+ layerCount = 1
+ };
+ VkImageCopy cregion = new VkImageCopy {
+ srcSubresource = imgSubResLayer,
+ srcOffset = default (VkOffset3D),
+ dstSubresource = imgSubResLayer,
+ dstOffset = default (VkOffset3D),
+ extent = new VkExtent3D { width = swapChain.Width, height = swapChain.Height }
+ };
+ Vk.vkCmdCopyImage (cmds [i].Handle, uiImage.Handle, VkImageLayout.TransferSrcOptimal,
+ swapChain.images [i].Handle, VkImageLayout.TransferDstOptimal, 1, ref cregion);
+
+ swapChain.images [i].SetLayout (cmd, VkImageAspectFlags.Color,
+ VkImageLayout.TransferDstOptimal, VkImageLayout.PresentSrcKHR,
+ VkPipelineStageFlags.Transfer, VkPipelineStageFlags.BottomOfPipe);
+ uiImage.SetLayout (cmd, VkImageAspectFlags.Color,
+ VkImageLayout.TransferSrcOptimal, VkImageLayout.ColorAttachmentOptimal,
+ VkPipelineStageFlags.Transfer, VkPipelineStageFlags.ColorAttachmentOutput);
+
+ cmds [i].End ();
+ }
+ }
+
+ /// <summary>
+ /// rebuild command buffers if needed
+ /// </summary>
+ public override void Update () {
+ if (rebuildBuffers) {
+ buildCommandBuffers ();
+ rebuildBuffers = false;
+ }
+ }
+
+ protected override void OnResize () {
+ dev.WaitIdle ();
+
+ crow.ProcessResize (new Crow.Rectangle (0, 0, (int)swapChain.Width, (int)swapChain.Height));
+
+ initUISurface ();
+
+ buildCommandBuffers ();
+ dev.WaitIdle ();
+ }
+
+ #region Mouse and keyboard
+ protected override void onScroll (double xOffset, double yOffset)
+ {
+ if (KeyModifiers.HasFlag (Glfw.Modifier.Shift))
+ crow.ProcessMouseWheelChanged ((float)xOffset);
+ else
+ crow.ProcessMouseWheelChanged ((float)yOffset);
+ }
+ protected override void onMouseMove (double xPos, double yPos)
+ {
+ if (crow.ProcessMouseMove ((int)xPos, (int)yPos))
+ return;
+ }
+ protected override void onMouseButtonDown (Glfw.MouseButton button)
+ {
+ if (crow.ProcessMouseButtonDown ((Crow.MouseButton)button))
+ return;
+ base.onMouseButtonDown (button);
+ }
+ protected override void onMouseButtonUp (Glfw.MouseButton button)
+ {
+ if (crow.ProcessMouseButtonUp ((Crow.MouseButton)button))
+ return;
+ base.onMouseButtonUp (button);
+ }
+ protected override void onKeyDown (Glfw.Key key, int scanCode, Glfw.Modifier modifiers)
+ {
+ if (crow.ProcessKeyDown ((Crow.Key)key))
+ return;
+ }
+ protected override void onKeyUp (Glfw.Key key, int scanCode, Glfw.Modifier modifiers)
+ {
+ if (crow.ProcessKeyUp ((Crow.Key)key))
+ return;
+ }
+ protected override void onChar (Glfw.CodePoint cp)
+ {
+ if (crow.ProcessKeyPress (cp.ToChar ()))
+ return;
+ }
+ #endregion
+
+ #region dispose
+ protected override void Dispose (bool disposing) {
+ if (disposing) {
+ if (!isDisposed) {
+ dev.WaitIdle ();
+
+ isRunning = false;
+ uiImage?.Dispose ();
+ while (crow != null)
+ Thread.Sleep (1);
+ }
+ }
+
+ base.Dispose (disposing);
+ }
+ #endregion
+ }
+}
\ No newline at end of file
--- /dev/null
+<Label Font="{./Font}" Text="{./Caption}" Height="{./HeightPolicy}" Width="{./WidthPolicy}"
+ Margin="3"
+ Background="{./Background}"
+ Foreground="DimGrey"
+ TextAlignment="Center"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGrey}"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Background="SeaGreen"
+ MinimumSize="50,50"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="Yellow" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="50%" Height="50%" Background="Yellow"
+ MinimumSize="50,50"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="MediumSeaGreen" Margin="10" Fit="true">
+ <Widget Margin="10" Width="50%" Height="50%" Background="DarkGreen"
+ MinimumSize="50,50"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="DimGrey" Margin="10" Fit="true">
+ <Label Text="{fps}" Margin="10" Fit="true" Background="SeaGreen"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Showcase" Height="90%" Width="90%">
+ <HorizontalStack >
+ <VerticalStack Width="30%" Margin="5">
+ <GroupBox Caption="Performance" Height="Fit">
+ <VerticalStack DataSource="{drawingMeasure}" Width="90%" Height="Fit" Spacing="2" >
+ <HorizontalStack Height="Fit" Tooltip="Frame per second">
+ <Label Text="Fps:" Style="FpsLabel"/>
+ <Label Text="{minimum}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Tooltip="Minimum Frame per second">
+ <Label Text="Min:" Style="FpsLabel"/>
+ <Label Text="{fpsMin}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Tooltip="Maximum Frame per second">
+ <Label Text="Max:" Style="FpsLabel"/>
+ <Label Text="{fpsMax}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Tooltip="Update loop duration">
+ <Label Text="Update:" Style="FpsLabel"/>
+ <Label Text="{update}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Tooltip="Layouting process duration">
+ <Label Text="Layouting:" Style="FpsLabel"/>
+ <Label Text="{layouting}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Tooltip="Clipping duration">
+ <Label Text="Clipping:" Style="FpsLabel"/>
+ <Label Text="{clipping}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="FpsLabel"/>
+ <Label Text="{drawing}" Style="FpsDisp"/>
+ </HorizontalStack>
+ </VerticalStack>
+ </GroupBox>
+ <Label Width="Stretched" Margin="3" Background="DimGrey"/>
+ <TextBox Text="TextBox" Multiline="true" Margin="3"/>
+ <HorizontalStack Height="Fit" Margin="5" Background="DimGrey" CornerRadius="10">
+ <VerticalStack Spacing="5" Width="50%">
+ <CheckBox Fit="true" Caption="test"/>
+ <CheckBox Fit="true"/>
+ <CheckBox Fit="true"/>
+ <CheckBox Fit="true" IsChecked="true"/>
+ </VerticalStack>
+ <VerticalStack Spacing="5" Width="50%">
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true" IsChecked="true"/>
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true"/>
+ </VerticalStack>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Margin="5">
+ <Label Text="MouseEvents" Width="50%" Margin="3" Focusable="true"
+ Background="Jet"
+ Foreground="DimGrey"
+ TextAlignment="Center"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGrey}"
+ MouseDown="{Background=DarkRed}"
+ MouseClick="{Foreground=Green}"
+ MouseDoubleClick="{Foreground=Yellow}"
+ MouseUp="{Background=Jet}"/>
+ <Label Text="MouseEvents" Width="50%" Margin="3"
+ Background="Jet"
+ Foreground="DimGrey"
+ TextAlignment="Center"
+ MouseClick="{Foreground=Green}"
+ MouseDoubleClick="{Foreground=Yellow}"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGrey}"
+ MouseDown="{Background=SeaGreen}"
+ MouseUp="{Background=DimGrey}"/>
+ </HorizontalStack>
+ <GroupBox Caption="Templated controls" Height="Fit" Margin="5">
+ <HorizontalStack Height="Fit">
+ <VerticalStack Width="50%">
+ <CheckBox IsChecked="true" Style="CheckBox2"/>
+ <CheckBox Style="CheckBox2"/>
+ <CheckBox Style="CheckBox2"/>
+ <CheckBox Style="CheckBox2"/>
+ </VerticalStack>
+ <Splitter/>
+ <VerticalStack Width="50%">
+ <RadioButton Style="RadioButton2"/>
+ <RadioButton Style="RadioButton2"/>
+ <RadioButton Style="RadioButton2"/>
+ <RadioButton Style="RadioButton2"/>
+ </VerticalStack>
+ </HorizontalStack>
+ </GroupBox>
+ <HorizontalStack Height="Fit">
+ <Label Text="Spinner"/>
+ <Spinner Fit="true"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Button Caption="Button"/>
+ <Button Caption="Button" IsEnabled="false"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <Splitter/>
+ <VerticalStack Width="40%" Margin="5" Spacing="5">
+ <Expandable>
+ <Image Path="#Crow.Icons.crow.svg"/>
+ </Expandable>
+ <Popper>
+ <Border Fit="True" Background="DimGrey" CornerRadius="0" BorderWidth="1">
+ <Image Path="#Crow.Icons.crow.svg" Width="100" Height="100" Margin="10"
+ MouseEnter="{Background=LightGrey}"
+ MouseLeave="{Background=Transparent}"/>
+ </Border>
+ </Popper>
+ <Slider Height="10" Width="90%"/>
+ <Container Height="Fit" Width="200" Background="DimGrey" Margin="2" CornerRadius="5">
+ <ProgressBar Background="DimGrey" Height="10" Value="50"/>
+ </Container>
+ <Image Path="#Crow.Icons.crow.svg" Width="60" Height="60" Background="LightGrey" />
+<!-- <TabView Name="tabview1"
+ Height="120" Orientation="Horizontal" Spacing="15">
+ <TabItem Name="TabItem1" Caption="Tab 1" Margin="0">
+ <VerticalStack Fit="true">
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="Tab 2" Background="Grey">
+ <VerticalStack Fit="true">
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem3" Caption="Tab 3" Background="Grey">
+ <Container Margin="5" CornerRadius="2">
+ <TextBox Height="Stretched" Margin="5" Multiline="true" TextAlignment="TopLeft"/>
+ </Container>
+ </TabItem>
+ </TabView>-->
+ <MessageBox Movable="false"/>
+ <ColorPicker SelectedColor="{²../go.Background}" Name="colorPicker" Margin="5" Fit="True" />
+ <Widget Name="go" Width="100" Height="60" Background="{../../colorList.SelectedItem}"/>
+ <Label Text="{../colorPicker.SelectedColor}"/>
+ </VerticalStack>
+ <Splitter/>
+ <VerticalStack Width="30%" Margin="5">
+<!-- <Border Margin="5" Height="Fit">
+ <Label Width="Stretched" Margin="1" Text="{../../dv.SelectedItem}"/>
+ </Border>
+ <Border Margin="5" Height="30%">
+ <DirectoryView Name="dv" CurrentDirectory="/" Margin="1"/>
+ </Border>
+ <Splitter/>-->
+ <ListBox Name="colorList" Data="{TestList}" Margin="5"
+ ItemTemplate="Interfaces/colorItem.crow"
+ Template="#Crow.ScrollingListBox.template"
+ />
+ </VerticalStack>
+ </HorizontalStack>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true">
+ <TextBox Font="droid, 20" Text="test text box" Width="Stretched"/>
+ <HorizontalStack Margin="5" Fit="true" MouseEnter="{Background=White}" MouseLeave="{Background=Transparent}">
+ <Label Text="centered" Width="80" Height="30" Background="DarkBlue" TextAlignment="Center"/>
+ <Label Text="top left" Width="80" Height="30" Background="DarkBlue" TextAlignment="TopLeft"/>
+ <Label Text="top right" Width="80" Height="30" Background="DarkBlue" TextAlignment="TopRight"/>
+ <Label Text="right center" Width="80" Height="30" Background="DarkBlue" TextAlignment="Right"/>
+ <Label Text="bottom left" Width="80" Height="30" Background="DarkBlue" TextAlignment="BottomLeft"/>
+ <Label Text="bottom center" Width="80" Height="30" Background="DarkBlue" TextAlignment="Bottom"/>
+ <Label Text="bottom right" Width="80" Height="30" Background="DarkBlue" TextAlignment="BottomRight"/>
+ </HorizontalStack>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Fit="true">
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <ProgressBar CornerRadius="5" Background="DimGrey" Margin="1" Maximum="1000" Value="{fps}" Width="200" Height="15"/>
+ <HorizontalStack Fit="true">
+ <Label Text="Memory:" Width="50" TextAlignment="Right"/>
+ <Label Text="{memory}" Font="droid,12" TextAlignment="Center"
+ Background="vgradient|0:RoyalBlue|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="15%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Memory:" Style="labPerf" />
+ <Label Text="{memory}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="labPerf" />
+ <Label Text="{update}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="labPerf" />
+ <Label Text="{layouting}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="labPerf" />
+ <Label Text="{drawing}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="labPerf" />
+ <Label Text="{fps}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="labPerf" />
+ <Label Text="{fpsMin}" Style="labPerfVal"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="labPerf" />
+ <Label Text="{fpsMax}" Style="labPerfVal"/>
+ </HorizontalStack>
+ </VerticalStack>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Fit="true" Margin="5">
+ <VerticalStack Fit="true" Margin="2" Spacing="2">
+ <TextRun Text="text run test"/>
+<!-- <Label Text="label test"/>
+ <TextBox Text="text box test"/>
+ <Button Caption="test button"/>-->
+<!-- <CheckBox Caption="test checkbox"/>
+ <RadioButton Caption="test radiobutton"/>
+ <ComboBox/>
+ <Popper Caption="test popper">
+ <Label Text="label test"/>
+ </Popper>
+ <Expandable Caption="test expandable">
+ <Label Text="label test"/>
+ </Expandable>
+ <Border >
+ <Label Text="border test" Margin="3"/>
+ </Border>
+ <GroupBox Caption="Group box" >
+ <Label Text="border test" Margin="3"/>
+ </GroupBox>
+ <Container Fit="true" Background="DimGrey" Margin="3">
+ <Widget Width="20" Height="20" Background="LightGrey"/>
+ </Container>-->
+<!-- <ProgressBar Height="10" Width="150" Background="DimGrey" Value="50" />
+ <Slider Value="5" Width="150" Height="10"/>
+ <ScrollBar Orientation="Horizontal" Maximum="100" Value="50" Height="16" Width="150"/>
+ <Spinner Value="100"/>-->
+ </VerticalStack>
+<!-- <VerticalStack Width="150" Height="Fit" Margin="2" Spacing="2">
+ <TextRun Text="text run test" Width="Stretched"/>
+ <Label Text="label test" Width="Stretched"/>
+ <TextBox Text="text box test" Width="Stretched"/>
+ <Button Caption="test button" Width="Stretched"/>
+ <CheckBox Caption="test checkbox" Width="Stretched"/>
+ <RadioButton Caption="test radiobutton" Width="Stretched"/>
+ <ComboBox Width="Stretched"/>
+ <Popper Caption="test popper" Width="Stretched">
+ <Label Text="label test"/>
+ </Popper>
+ <Expandable Caption="test expandable" Width="Stretched">
+ <Label Text="label test"/>
+ </Expandable>
+ <Border Width="Stretched">
+ <Label Text="border test" Margin="3"/>
+ </Border>
+ <GroupBox Caption="Group box" Width="Stretched">
+ <Label Text="border test" Margin="3"/>
+ </GroupBox>
+ <Container Height="Fit" Width="Stretched" Background="DimGrey" Margin="3">
+ <Widget Width="20" Height="20" Background="LightGrey"/>
+ </Container>
+ <ProgressBar Height="10" Width="Stretched" Background="DimGrey" Value="50" />
+ <Slider Value="5" Width="Stretched" Height="10"/>
+ <ScrollBar Orientation="Horizontal" Maximum="100" Value="50" Height="16" Width="Stretched"/>
+ <Spinner Value="100" Width="Stretched"/>
+ </VerticalStack>-->
+</HorizontalStack>
+<!--<HorizontalStack Fit="true" Background="RoyalBlue" Margin="5">
+ <Widget Background="Red" Width="30" Height="20"/>
+ <Spinner Maximum="10000000000" SmallIncrement="10" Value="0"/>
+ <Widget Background="Green" Width="30" Height="20"/>
+</HorizontalStack>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true" Background="DimGrey" Margin="5">
+<!-- <RadioButton/>-->
+ <Label Text="a" Width="Stretched" Background="Red"/>
+ <Label Text="{fps}" HorizontalAlignment="Right" Background="LimeGreen"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Container Fit="true" Margin="50" Background="LimeGreen" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="false"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{drawing}" Background="RoyalBlue"/>
+ </Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Fit="true" Margin="20" Background="SkyBlue" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=LightGrey}"
+ MouseLeave="{Background=SkyBlue}">
+ <Container Fit="true" Margin="20" Background="Red" CacheEnabled="true"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=White}"
+ MouseLeave="{Background=Red}">
+ <Container Fit="true" Margin="20" Background="Yellow" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Blue}"
+ MouseLeave="{Background=Yellow}">
+ <Container Margin="50" Background="LimeGreen" CacheEnabled="true"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="1" Text="{drawing}" Background="RoyalBlue"/>
+ </Container>
+ </Container>
+ </Container>
+ </Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Fit="true" Margin="50" Background="Yellow" CacheEnabled="true"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=DimGrey}"
+ MouseLeave="{Background=Yellow}">
+<Group Width="300" Height="200" Margin="50" Background="LimeGreen" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+ <Label Left="10" HorizontalAlignment="Right" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{drawing}" Background="RoyalBlue"/>
+ </Group>
+ </Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Fit="true" Margin="50" Background="Yellow" CacheEnabled="true"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=DimGrey}"
+ MouseLeave="{Background=Yellow}">
+ <HorizontalStack Fit="true">
+ <VerticalStack Fit="true" Margin="50" Background="LimeGreen" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{fps}" Background="RoyalBlue"/>
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{drawing}" Background="RoyalBlue"/>
+ </VerticalStack>
+ <VerticalStack Fit="true" Margin="50" Background="LimeGreen" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{fpsMax}" Background="RoyalBlue"/>
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{fpsMin}" Background="RoyalBlue"/>
+ </VerticalStack>
+ </HorizontalStack>
+ </Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Border Fit="true" BorderWidth="2" >
+<Scroller CornerRadius="2" Height="200" Width="300" Background="DimGrey" Margin="2">
+ <VerticalStack Margin="10" VerticalAlignment="Top" Fit="true" Background="vgradient|0:RoyalBlue|1:Black" >
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 1"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 2"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 3"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 4"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 5"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 6"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 7"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 8"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 9"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 10"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 11"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 12"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 13"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 14"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 15"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 16"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 17"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 18"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 19"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 20"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 21"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 22"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 23"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 24"/>
+ <Label MouseEnter="{Background=Grey}" MouseLeave="{Background=hgradient|0:DarkRed|1:Transparent}" Margin="5" Background="hgradient|0:DarkRed|1:Transparent" Font="droid,20" Text="label 25"/>
+ </VerticalStack>
+</Scroller>
+</Border>
+<!--<VerticalStack Fit="true" Margin="50" Background="LimeGreen" CacheEnabled="false"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseEnter="{Background=Grey}"
+ MouseLeave="{Background=LimeGreen}">
+
+ <CheckBox Margin="20" Background="RoyalBlue"/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ <CheckBox/>
+
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{fps}" Background="RoyalBlue"/>
+ <Label HorizontalAlignment="Center" VerticalAlignment="Center" CacheEnabled="true"
+ MouseEnter="{Background=DimGrey}" Width="100"
+ MouseLeave="{Background=RoyalBlue}"
+ Margin="10" Text="{drawing}" Background="RoyalBlue"/>
+ </VerticalStack>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack>
+ <ColorPicker SelectedColor="{²../go.Background}" Name="colorPicker" Background="DimGrey" Margin="5" Fit="True" />
+ <Widget Name="go" Width="100" Height="60" Background="DarkBlue"/>
+ <Widget Name="go" Width="100" Height="60" Background="{../colorPicker.SelectedColor}"/>
+ <Label Text="{../colorPicker.SelectedColor}"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Border Fit="true" CornerRadius="5" BorderWidth="1">
+ <Container Name="MainGrp" Background="0.5,0.5,0.5,0.4" Width="120" Fit="true"
+ Margin="10" Focusable="True" >
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Margin="5" Name="labUpdate" Text="{update}" Font="droid,12" Background="SeaGreen" Width="50" TextAlignment="Center"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Margin="5" Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center" Background="SeaGreen"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Margin="5" Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center" Background="SeaGreen"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Margin="5" Text="{fpsMax}" Font="droid , 12" Background="SeaGreen" Width="50" TextAlignment="Center"/>
+ </HorizontalStack>
+ </VerticalStack>
+ </Container>
+</Border>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Focusable="true" Caption="Measures" Width="30%" Height="300" MinimumSize="100,100">
+ <ListBox Data="{PerfMeasures}"
+ ItemTemplate="#ui.perfMsr.crow"/>
+</Window>
--- /dev/null
+<?xml version="1.0"?>
+<Group Name="TopGroup" Width="500" Height="400" Margin="5"
+ Focusable="True" Background="Yellow">
+ <Group Name="InnerGroup" Width="Fit" Height="Fit" Margin="50"
+ VerticalAlignment="Top" HorizontalAlignment="Left"
+ Focusable="True" Background="Green">
+ <Image VerticalAlignment="Bottom"
+ Name="PhaseOverlay1" Width="100" Height="100" Path="image/u.svg" Background="Red"/>
+ <Image Top="100"
+ Name="PhaseOverlay2" Width="100" Height="100" Path="image/u.svg" Background="Red"/>
+ </Group>
+ <Image VerticalAlignment="Center" HorizontalAlignment="Right"
+ Name="PhaseOverlay0" Width="100" Height="100" Path="image/u.svg" Background="Red"/>
+
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="Green" Height="400" Width="400">
+<VerticalStack Margin="10" Background="DarkBlue" Height="Fit" Width="Stretched">
+ <Label Text="label11" Width="Stretched"/>
+ <Label Text="label21"/>
+ <HorizontalStack Width="Fit" Height="Fit" Margin="5"
+ Focusable="True" Background="Blue">
+ <Label Text="label12"/>
+ <Label Text="label22"/>
+ <Label Text="label32"/>
+ <Label Text="label42"/>
+ <Label Text="label52"/>
+ </HorizontalStack>
+ <Label Text="label33" Background="Green" Width="Stretched"/>
+ <Button/>
+ <Label Text="label43"/>
+ <Label Text="label53"/>
+
+</VerticalStack>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Name="TopContainer" Width="400" Height="350"
+ Margin="20" Focusable="True" Background="Yellow">
+ <Container Name="MiddleContainer" Width="50%" Height="Stretched"
+ Margin="20" Focusable="True" Background="Green">
+ <Image VerticalAlignment="Bottom"
+ Name="PhaseOverlay" Width="100" Height="100" Path="image/u.svg" Background="Red"/>
+ </Container>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true">
+ <CheckBox IsChecked="{²BoolVal}"/>
+ <CheckBox Caption="second" IsChecked="{²BoolVal}"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true">
+ <TextBox Text="{Datas}" Width="100" />
+ <Button Text="Set Text to Null" MouseClick="onSetDataToNull"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Widget Margin="10" Width="50%" Height="50%" Focusable="true"
+ Background="hgradient|0:Red|0.25:Blue|0.5:Green|0.75:Yellow|1:Red"
+ MinimumSize="50,50" ContextCommands="{Commands}"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true" VerticalAlignment="Top" Background="0.7,0.7,0.7,0.5"
+ Margin="10" CornerRadius="10" ClipToClientRect="false">
+ <Label Font="20" Text="Enable / Disable test"/>
+ <Label Text="{fps}" IsEnabled="false" Font="30"/>
+ <Label Text="{fps}" IsEnabled="true" Font="30"/>
+ <Label Text="{fps}" IsEnabled="false" Font="30" Background="SeaGreen"/>
+ <Label Text="{fps}" IsEnabled="true" Font="30" Background="SeaGreen"/>
+ <Button Caption="Button" IsEnabled="true" Background="Grey"/>
+ <Button Caption="Button" IsEnabled="false" Background="Grey"/>
+ <Button Caption="Button" IsEnabled="true" />
+ <Button Caption="Button" IsEnabled="false" />
+ <Spinner Fit="true"/>
+ <Spinner IsEnabled="false" Fit="true"/>
+ <CheckBox/>
+ <CheckBox IsEnabled="false"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<FileDialog Caption="Open File" CurrentDirectory="/" SearchPattern="*.*"/>
+
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack>
+ <Menu>
+ <MenuItem Caption="File" Width="Fit">
+ <MenuItem Command="{CMDTest}"/>
+ <MenuItem Caption="Open"/>
+ <MenuItem Caption="Save"/>
+ <MenuItem Caption="Quit"/>
+ </MenuItem>
+ <MenuItem Caption="Edit" Name="edit" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ <MenuItem Caption="Special" Name="special" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ </MenuItem>
+ <MenuItem Caption="Special2" Name="special" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ </MenuItem>
+ </MenuItem>
+ <MenuItem Caption="Help" Width="Fit">
+ <MenuItem Caption="About"/>
+ <MenuItem Caption="Help"/>
+ </MenuItem>
+ </Menu>
+ <HorizontalStack Height="Fit">
+ <Label Text="Hover:" Width="50" Foreground="Grey"/>
+ <Label Text="{HoverWidget}"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Focus:" Width="50" Foreground="Grey"/>
+ <Label Text="{FocusedWidget}"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Active:" Width="50" Foreground="Grey"/>
+ <Label Text="{ActiveWidget}"/>
+ </HorizontalStack>
+ <Container Fit="true" Margin="50" Background="SlateGrey">
+ <Label Text="MouseEvents" Margin="3" Focusable="true" Fit="true"
+ Background="Jet"
+ Foreground="DimGrey"
+ TextAlignment="Center"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGrey}"
+ MouseDown="{Background=DarkRed}"
+ MouseClick="{Foreground=Green}"
+ MouseDoubleClick="{Foreground=Yellow}"
+ MouseUp="{Background=Jet}"/>
+ </Container>
+ <TextBox Width="300" Margin="10"/>
+ <Slider Width="300" Height="12"/>
+ <ComboBox Data="{TestList}" Width="120">
+ <ItemTemplate DataType="Crow.Color">
+ <HorizontalStack
+ HorizontalAlignment="Left"
+ Height="Fit" Width="200" Margin="1" Focusable="true"
+ MouseEnter="{Background=hgradient|0:DarkRed|1:Transparent}"
+ MouseLeave="{Background=Transparent}">
+ <Widget Height="12" Width="20" Background="{}" Margin="0" CornerRadius="3"/>
+ <Label Text="{}" Margin="0" Width="Stretched"/>
+ </HorizontalStack>
+ </ItemTemplate>
+ </ComboBox>
+ <HorizontalStack Height="Fit" Margin="1" Background="DimGrey" Width="200">
+ <VerticalStack Spacing="2" Width="50%">
+ <CheckBox Caption="test" MouseEnter="{Background=Blue}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox />
+ <CheckBox />
+ <CheckBox IsChecked="true"/>
+ </VerticalStack>
+ <VerticalStack Spacing="2" Width="50%">
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true" IsChecked="true"/>
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true"/>
+ </VerticalStack>
+ </HorizontalStack>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<IMLContainer Path="Interfaces/Divers/colorPicker.crow"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true">
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="SCALED PROPORTIONNAL" Width="150"/>
+ <Image Width="10%" Height="Fit" Background="vgradient|0:SkyBlue|1:White" Path="#Tests.image.crow0.svg"/>
+ <Image Margin="10" Background="vgradient|0:SkyBlue|1:White" Path="#Tests.image.crow0.svg" />
+ <Image Background="vgradient|0:SkyBlue|1:White" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image Margin="2" Background="vgradient|0:SkyBlue|1:White" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image Background="vgradient|0:SkyBlue|1:White" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image Background="vgradient|0:SkyBlue|1:White" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image Background="vgradient|0:SkyBlue|1:White" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ <Image Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ </HorizontalStack>
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="SCALED NOT PROPORTIONNAL" Width="150"/>
+ <Image KeepProportions="false" Background="vgradient|0:SkyBlue|1:White" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Margin="10" Background="vgradient|0:SkyBlue|1:White" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Background="vgradient|0:SkyBlue|1:White" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Margin="2" Background="vgradient|0:SkyBlue|1:White" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Background="vgradient|0:SkyBlue|1:White" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ <Image KeepProportions="false" Margin="10" Background="vgradient|0:SkyBlue|1:White" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ </HorizontalStack>
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="UNSCALED" Width="150"/>
+ <Image Scaled="false" Background="Blue" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Margin="10" Background="Blue" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Background="Blue" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Margin="2" Background="Blue" Width="20" Height="20" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Background="Blue" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Margin="10" Background="Blue" Width="50" Height="100" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Background="Blue" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Margin="10" Background="Blue" Width="100" Height="50" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Background="Blue" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ <Image Scaled="false" Margin="10" Background="Blue" Width="50" Height="Fit" Path="#Tests.image.crow0.svg" />
+ </HorizontalStack>
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="SCALED PROPORTIONNAL" Width="150"/>
+ <Image Background="Blue" Path="#Crow.Icons.tetra.png"/>
+ <Image Margin="10" Background="Blue" Path="#Crow.Icons.tetra.png"/>
+ <Image Background="Blue" Width="20" Height="20" Path="#Crow.Icons.tetra.png"/>
+ <Image Margin="2" Background="Blue" Width="20" Height="20" Path="#Crow.Icons.tetra.png"/>
+ <Image Background="Blue" Width="50" Height="100" Path="#Crow.Icons.tetra.png"/>
+ <Image Margin="10" Background="Blue" Width="50" Height="100" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Background="Blue" Width="100" Height="50" Path="#Crow.Icons.tetra.png"/>
+ <Image Margin="10" Background="Blue" Width="100" Height="50" Path="#Crow.Icons.tetra.png"/>
+ <Image Background="Blue" Width="50" Height="Fit" Path="#Crow.Icons.tetra.png"/>
+ <Image Margin="10" Background="Blue" Width="50" Height="Fit" Path="#Crow.Icons.tetra.png"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="SCALED NOT PROPORTIONNAL" Width="150"/>
+ <Image KeepProportions="false" Background="Blue" Path="#Crow.Icons.tetra.png"/>
+ <Image KeepProportions="false" Margin="10" Background="Blue" Path="#Crow.Icons.tetra.png"/>
+ <Image KeepProportions="false" Background="Blue" Width="20" Height="20" Path="#Crow.Icons.tetra.png"/>
+ <Image KeepProportions="false" Margin="2" Background="Blue" Width="20" Height="20" Path="#Crow.Icons.tetra.png"/>
+ <Image KeepProportions="false" Background="Blue" Width="50" Height="100" Path="#Crow.Icons.tetra.png"/>
+ <Image KeepProportions="false" Margin="10" Background="Blue" Width="50" Height="100" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image KeepProportions="false" Background="Blue" Width="100" Height="50" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image KeepProportions="false" Margin="10" Background="Blue" Width="100" Height="50" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image KeepProportions="false" Background="Blue" Width="50" Height="Fit" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image KeepProportions="false" Margin="10" Background="Blue" Width="50" Height="Fit" Path="#Crow.Images.Icons.tetra.png"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Label Text="UNSCALED" Width="150"/>
+ <Image Scaled="false" Background="Blue" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Margin="10" Background="Blue" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Background="Blue" Width="20" Height="20" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Margin="2" Background="Blue" Width="20" Height="20" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Background="Blue" Width="50" Height="100" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Margin="10" Background="Blue" Width="50" Height="100" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Background="Blue" Width="100" Height="50" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Margin="10" Background="Blue" Width="100" Height="50" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Background="Blue" Width="50" Height="Fit" Path="#Crow.Images.Icons.tetra.png"/>
+ <Image Scaled="false" Margin="10" Background="Blue" Width="50" Height="Fit" Path="#Crow.Images.Icons.tetra.png"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Fit" Height="100" Background="hgradient|0:DarkRed|1:Transparent" Margin="5">
+ <Image Background="Blue" Path="#Tests.image.crow0.svg" />
+ <Image Margin="10" Background="White" Path="#Tests.image.crow0.svg" />
+ <Image Background="White" Width="20" Height="10" Path="#Tests.image.crow0.svg" />
+ <Image Margin="1" Background="White" Width="20" Height="10" Path="#Tests.image.crow0.svg" />
+ </HorizontalStack>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Menu>
+ <MenuItem Caption="File" Width="Fit">
+ <MenuItem Command="{CMDTest}"/>
+ </MenuItem>
+</Menu>
--- /dev/null
+<?xml version="1.0"?>
+<Container Width="200" Height="100" Background="DimGrey" Margin="5">
+ <Container Width="Stretched" Height="800" Background="DarkBlue">
+ <Label Text="{fps}" Background="RoyalBlue" VerticalAlignment="Center"/>
+ </Container>
+</Container>
--- /dev/null
+<?xml version="1.0"?>
+<Label Margin="50" MinimumSize="10,10" Background="DimGrey" Text="{PropertyLessBinding}"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Fit="true" Background="Red" Tooltip="test tooltip" >
+ <Shape Foreground="Transparent" Background="DimGrey" Size="11,11" Path="M 5.5,0.5 L 10.5,10.5 L 0.5,10.5 Z"
+ MouseEnter="{Background=hgradient|0:DimGrey|0.5:RoyalBlue|1:Black}"
+ MouseLeave="{Background=DimGrey}"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Width="500" Height="300" MinimumSize="50,50">
+<HorizontalStack Margin="5" Background="DimGrey">
+ <VerticalStack Width="200" Margin="5" Background="Grey">
+ <VerticalStack Fit="true" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </VerticalStack>
+ <VerticalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun Background="SkyBlue" Height="Stretched"/>
+ </VerticalStack>
+ <HorizontalStack Fit="true" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Stretched" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="Stretched" Height="Stretched" Margin="5" Background="Grey">
+ <VerticalStack Fit="true" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </VerticalStack>
+ <VerticalStack Width="Stretched" Height="Stretched" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun TextAlignment="Center" Background="SkyBlue" Width="Stretched" Height="Stretched"/>
+ </VerticalStack>
+ <HorizontalStack Fit="true" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Width="Fit" Margin="5" Background="Grey">
+ <VerticalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue" HorizontalAlignment="Left"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </VerticalStack>
+ <VerticalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun Background="SkyBlue" Height="Stretched"/>
+ </VerticalStack>
+ <HorizontalStack Fit="true" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Fit" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Stretched" Background="DimGrey" Margin="5">
+ <TextRun Background="SkyBlue"/>
+ <TextRun Background="SkyBlue" Width="Stretched"/>
+ <TextRun Background="SkyBlue"/>
+ </HorizontalStack>
+ </VerticalStack>
+</HorizontalStack>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Background="SteelBlue" Fit="true">
+ <HorizontalStack Fit="true">
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="TopLeft"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Top"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="TopRight"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Left"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Center"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Right"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="BottomLeft"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Bottom"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="BottomRight"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <TextBox Background="DarkGrey" Height="30" Width="70" TextAlignment="Top" HorizontalStretch="true" Text="TopStretch"/>
+ <TextBox Background="DarkGrey" Height="30" Width="60" TextAlignment="Center" HorizontalStretch="true" Text="HorizontalStretch" />
+ <TextBox Background="DarkGrey" Height="30" Width="60" TextAlignment="Bottom" HorizontalStretch="true" Text="BottomStretch"/>
+ <TextBox Background="DarkGrey" Height="10" Width="70" TextAlignment="Left" VerticalStretch="true" Text="LeftStretch"/>
+ <TextBox Background="DarkGrey" Height="10" Width="70" TextAlignment="Center" VerticalStretch="true" Text="VerticalStretch"/>
+ <TextBox Background="DarkGrey" Height="10" Width="70" TextAlignment="Right" VerticalStretch="true" Text="RightStretch"/>
+ <TextBox Background="DarkGrey" Height="30" Width="50" HorizontalStretch="true" VerticalStretch="true" Text="Fit"/>
+ </HorizontalStack>
+ <TextBox Name="tb" Multiline="true" Font="droid,16" Margin="5" Text="A\nBB\nCCC\nDDDD"/>
+ <TextBox Multiline="true" Font="droid,16" Name="tb5" Margin="5" Text="{../tb.SelectedText}"/>
+<!-- <TextBox Font="droid,10" Name="tb1" Margin="5" Text="this is a test of a text box"/>
+ <TextBox Width="300" Height="35" Text="this is a test of a text box"/>-->
+ <TextBox Font="droid,10" Name="tb2" Margin="0" Text="this is a test of a text box"/>
+ <TextBox Font="droid,10" Name="tb3" Margin="5" Text="this is a test of a text box"/>
+ <TextBox Font="droid,10" Name="tb4" Margin="5" Text="this is a test of a text box"/>
+ <TextBox Font="droid,10" Name="tb5" Margin="20" Text="this is a test of a text box"/>
+ <TextBox Multiline="true" Font="droid,10" Name="tb6" Margin="5" Text="this is a test of a text box\nthis is a test of a text box"/>
+ <TextBox Multiline="true" Font="droid,10" Name="tb7" Margin="1" TextAlignment="Center"
+ Text="this is a test of a text box\nthis is a test\nthis is a test when line are centered"/>
+ <TextBox Multiline="true" Font="droid,10" Name="tb8" Margin="1" TextAlignment="Center"
+ Text="this is a test of a text box\n\n\nthis is a test\nthis is a test when line are centered"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Container Margin="20" Background="Red" >
+ <Container Margin="20" Background="Green" MouseDown="{../go1.Visible=True}" >
+ <Widget Name="go1" Margin="20" Background="DimGrey" Visible="false" MouseDown="{Visible=false}"
+ MouseEnter="{Background=Blue}"
+ MouseLeave="{Background=DimGrey}"/>
+ </Container>
+</Container>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Background="DarkBlue" Height="300" Width="200">
+<!-- <Label Text="label11" Width="Stretched" Background="Green"/>
+ <Label Text="label21"/>-->
+ <HorizontalStack Width="Fit" Height="Fit" Margin="5"
+ Focusable="True" Background="Blue">
+
+ <Label Text="label12"/>
+ <VerticalStack Background="Red" Fit="true">
+ <Label Text="label99"/>
+ <Label Text="label999"/>
+ </VerticalStack>
+ <Label Text="label22"/>
+<!-- <Label Text="label32"/>
+ <Label Text="label42"/>
+ <Label Text="label52"/>-->
+ </HorizontalStack>
+<!-- <Label Text="label33" Background="Green" Width="Stretched"/>-->
+<!-- <Label Text="label43"/>-->
+<!-- <Border Margin="10">
+ <Label Text="label53" Background="Red" Height="Stretched" CornerRadius="10"/>
+ </Border>-->
+ <Label Text="label43"/>
+ <Label Text="label43"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Border BorderStyle="Sunken" Fit="true" Background="0.7,0.7,0.7,0.5" CornerRadius="10">
+ <VerticalStack Margin="20">
+ <Image Path="#Crow.Icons.crow.svg"/>
+<!-- <Label Font="Times bold, 60" Text="C.R.O.W"/>-->
+ <HorizontalStack Fit="true" DataSource="{CrowVersion}" Spacing="0">
+ <Label Foreground="Black" Font="mono, 12" Text="version: "/>
+ <Label Foreground="Black" Font="mono, 12" Text="{Major}"/>
+ <Label Foreground="Black" Font="mono, 12" Text="."/>
+ <Label Foreground="Black" Font="mono, 12" Text="{Minor}"/>
+ <Label Foreground="Black" Font="mono, 12" Text="."/>
+ <Label Foreground="DimGrey" Font="mono, 12" Text="{Build}"/>
+ </HorizontalStack>
+ <Widget Height="30"/>
+ <Label Font="20" Text="Press <F2> and <F3> to cycle into the examples"/>
+ <Label Font="20" Text="Those are basic tests used to validate changes,"/>
+ <Widget Height="30"/>
+ <Label Foreground="DimGrey" Font="20" Text="<F5> => File dialog example"/>
+ <Label Foreground="DimGrey" Font="20" Text="<F6> => Window example"/>
+ </VerticalStack>
+</Border>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Background="DimGrey" Margin="10" Width="90%" Height="90%" Spacing="100" Focusable="true">
+ <Container Name="source" StartDrag="{Background=DimGrey}" EndDrag="{Background=SeaGreen}" Focusable="true" Fit="true"
+ Drop="{../target.Background=Green}"
+ MouseEnter="{/txt.Foreground=Red}" MouseLeave="{/txt.Foreground=White}" MouseClick="{Background=SeaGreen}"
+ AllowDrag="true" Width="200" Height="200" Background="SeaGreen">
+ <VerticalStack Margin="50">
+ <Label Name="txt" Text="Drag me" Foreground="Grey"/>
+ <Label Text="Dragged" Visible="{../../IsDragged}" Foreground="Grey"/>
+ </VerticalStack>
+ </Container>
+ <Container Name="target" DragEnter="{Background=SeaGreen}" DragLeave="{Background=DimGrey}" Focusable="true" Fit="true"
+ MouseEnter="{/txt.Foreground=Red}" MouseLeave="{/txt.Foreground=White}"
+ AllowDrop="true" Background="DimGrey">
+ <VerticalStack Margin="50">
+ <Label Name="txt" Text="Drop here" Foreground="Grey"/>
+ <Label Text="Dragged" Visible="{../../IsDragged}" Foreground="Grey"/>
+ </VerticalStack>
+ </Container>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!--<Widget Background="{./Background}"/>-->
+<Border BorderWidth="1" Foreground="Black" CornerRadius="{./CornerRadius}"
+ Background="{./Background}"
+ MouseEnter="./onBorderMouseEnter"
+ MouseLeave="./onBorderMouseLeave">
+ <VerticalStack Spacing="0">
+ <HorizontalStack Height="Fit">
+ <Label Text="{./Name}" TextAlignment="Left" Width="Fit"
+ Foreground="White" />
+ <Label Text="{./DockingPosition}" TextAlignment="Left" Width="Fit"
+ Foreground="White" />
+ </HorizontalStack>
+ <Label Text="{./Width}" TextAlignment="Left" Width="Fit"
+ Foreground="White" />
+ <Label Text="{./Height}" TextAlignment="Left" Width="Fit"
+ Foreground="White" />
+
+ <HorizontalStack Visible="{./IsDocked}" Height="Fit" Margin="1" Background="Grey">
+ <Label Text="{./Caption}" TextAlignment="Left" Width="Stretched"
+ Foreground="Jet" />
+ <Image Width="8" Height="8" Focusable="true" Margin="0" Path="#Crow.Icons.exit2.svg"
+ MouseClick="./butQuitPress"/>
+ </HorizontalStack>
+ <HorizontalStack Background="vgradient|0:0.5,0.6,0.5,0.5|1:0.2,0.3,0.3,0.7"
+ Name="hs" Margin="0" Spacing="0" Height="Fit" Visible="{./IsFloating}">
+ <Widget Width="5"/>
+ <Image Margin="1" Width="10" Height="10" Path="{./Icon}"/>
+ <Label Width="Stretched" Foreground="White" Margin="1" TextAlignment="Left" Text="{./Caption}" />
+ <Border CornerRadius="6" BorderWidth="1" Foreground="Transparent" Height="10" Width="10"
+ MouseEnter="{Foreground=White}" MouseLeave="{Foreground=Transparent}">
+ <Image Focusable="true" Name="Image" Margin="0" Path="#Crow.Icons.exit2.svg"
+ MouseClick="./butQuitPress"/>
+ </Border>
+ <Widget Width="5"/>
+ </HorizontalStack>
+ <Container Name="Content" MinimumSize="50,50"/>
+ </VerticalStack>
+</Border>
--- /dev/null
+<?xml version="1.0"?>
+<Window Width="Stretched" Height="Stretched" Background="Jet">
+ <DockStack Name="mainDock" Background="DarkRed" Margin="20">
+ </DockStack>
+</Window>
+<!---
+ <DockWindow Left="450" Top="450" Width="150" Height="150" Background="Yellow"/>-->
+
+
+<!--<Group Background="DimGrey" Margin = "0" Focusable="true" >
+ <Window Top="100" Left="100" Focusable="true" Caption="View 1" Width="300" Height="300"><Widget Background="Green" Focusable="true" MouseEnter="{Background=Grey}" MouseLeave="{Background=Green}"/></Window>
+ <Window Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></Window>
+ <Window Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></Window>
+ <Window Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></Window>
+</Group>-->
+<!--<Docker >
+ <DockWindow Resizable = "true" Top="100" Left="100" Caption="View 1" Width="300" Height="300">
+ <VerticalStack Background="DarkGreen" Focusable="true">
+ <Label Text="{../../Left}" Background="Black" Width="Stretched"/>
+ <Label Text="{../../Top}" Background="Black"/>
+ <Label Text="{../../LogicalParent}" Background="Black"/>
+ </VerticalStack>
+ </DockWindow>
+ <DockWindow Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></DockWindow>
+ <DockWindow Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></DockWindow>
+ <DockWindow Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></DockWindow>
+</Docker>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Docker >
+ <DockWindow Left="100" Top="100" Width="150" Height="150" Background="DarkRed"/>
+ <DockWindow Left="200" Top="200" Width="150" Height="150" Background="DarkGreen"/>
+ <DockWindow Left="300" Top="300" Width="150" Height="150" Background="Blue"/>
+ <DockWindow Left="400" Top="400" Width="150" Height="150" Background="Yellow"/>
+ <DockWindow Left="500" Top="500" Width="150" Height="150" Background="Yellow"/>
+</Docker>
+<!--<Group Background="DimGrey" Margin = "0" Focusable="true" >
+ <Window Top="100" Left="100" Focusable="true" Caption="View 1" Width="300" Height="300"><Widget Background="Green" Focusable="true" MouseEnter="{Background=Grey}" MouseLeave="{Background=Green}"/></Window>
+ <Window Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></Window>
+ <Window Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></Window>
+ <Window Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></Window>
+</Group>-->
+<!--<Docker >
+ <DockWindow Resizable = "true" Top="100" Left="100" Caption="View 1" Width="300" Height="300">
+ <VerticalStack Background="DarkGreen" Focusable="true">
+ <Label Text="{../../Left}" Background="Black" Width="Stretched"/>
+ <Label Text="{../../Top}" Background="Black"/>
+ <Label Text="{../../LogicalParent}" Background="Black"/>
+ </VerticalStack>
+ </DockWindow>
+ <DockWindow Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></DockWindow>
+ <DockWindow Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></DockWindow>
+ <DockWindow Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></DockWindow>
+</Docker>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Width="600" Height="500">
+<VerticalStack Margin="20" Background="DimGrey" Spacing="10">
+ <Widget Height="100" Width="500" Background="Green"/>
+ <Splitter/>
+ <HorizontalStack>
+ <Widget Height="Stretched" Width="100" Background="Red"/>
+ <Splitter/>
+ <Widget Height="Stretched" Width="100" Background="DarkRed"/>
+ </HorizontalStack>
+ <Splitter/>
+ <Widget Height="100" Width="500" Background="Green"/>
+</VerticalStack>
+</Window>
+<!--<Group Background="DimGrey" Margin = "0" Focusable="true" >
+ <Window Top="100" Left="100" Focusable="true" Caption="View 1" Width="300" Height="300"><Widget Background="Green" Focusable="true" MouseEnter="{Background=Grey}" MouseLeave="{Background=Green}"/></Window>
+ <Window Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></Window>
+ <Window Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></Window>
+ <Window Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></Window>
+</Group>-->
+<!--<Docker >
+ <DockWindow Resizable = "true" Top="100" Left="100" Caption="View 1" Width="300" Height="300">
+ <VerticalStack Background="DarkGreen" Focusable="true">
+ <Label Text="{../../Left}" Background="Black" Width="Stretched"/>
+ <Label Text="{../../Top}" Background="Black"/>
+ <Label Text="{../../LogicalParent}" Background="Black"/>
+ </VerticalStack>
+ </DockWindow>
+ <DockWindow Top="200" Left="200" Focusable="true" Caption="View 2" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Blue" MouseEnter="{Background=Grey}" MouseLeave="{Background=Blue}"/></DockWindow>
+ <DockWindow Top="300" Left="300" Focusable="true" Caption="View 3" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Yellow" MouseEnter="{Background=Grey}" MouseLeave="{Background=Yellow}"/></DockWindow>
+ <DockWindow Top="400" Left="400" Focusable="true" Caption="View 4" Resizable = "true" Width="300" Height="300"><Widget Focusable="true" Background="Black" MouseEnter="{Background=Grey}" MouseLeave="{Background=Black}"/></DockWindow>
+</Docker>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+
+ <VerticalStack Height="Fit" Width="250" Name="hstack" Margin="0" Spacing="0">
+ <Border Height="Fit" Width="Stretched" BorderWidth="2" CornerRadius="10" Background="SteelBlue">
+ <Label Name="labName" Text="{Name}" Width="Stretched" Height="Fit" Margin="3"/>
+ </Border>
+ <ListBox Data="{Members}" Width="Stretched" Height="400" ItemTemplate="Interfaces/tmpMembers.goml" Focusable="true">
+
+ </ListBox>
+ </VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Height="Fit" Width="20" Margin="1" Spacing="2" Background="White" >
+ <Widget Height="50" Background="Green"/>
+ <Widget Height="50" Background="Red"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Widget Margin="10" Width="150" Height="150" Background="SeaGreen"
+ MinimumSize="50,50"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Widget Margin="10" Width="50%" Height="50%"
+ Background="hgradient|0:Red|0.25:Blue|0.5:Green|0.75:Yellow|1:Red"
+ MinimumSize="50,50"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Fit="true">
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <ProgressBar CornerRadius="5" Background="DimGrey" Margin="1" Maximum="1000" Value="{fps}" Width="200" Height="15"/>
+ <HorizontalStack Fit="true">
+ <Label Text="Memory:" Width="50" TextAlignment="Right"/>
+ <Label Text="{memory}" Font="droid,12" TextAlignment="Center"
+ Background="vgradient|0:Blue|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Update:" Width="50" TextAlignment="Right"/>
+ <Label Name="labUpdate" Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:Green|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Width="Stretched" Height="Fit" Margin="5" Background="Mantis">
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+ <GraphicObject Background="Carmine" Width="Stretched" Height="20"/>
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+ <GraphicObject Background="Carmine" Width="10%" Height="20"/>
+</HorizontalStack>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true" Background="DimGrey" Margin="5">
+<!-- <RadioButton/>-->
+ <Label Text="a" Width="Stretched" Background="Red"/>
+ <Label Text="{fps}" HorizontalAlignment="Right" Background="LimeGreen"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Height="Fit" Width="Fit">
+ <Label Width="0"/>
+ <Expandable Width="Fit" Background="Grey">
+ <Expandable Background="LightBlue">
+ <Expandable Background="Green">
+ <Expandable Background="LimeGreen">
+ <Expandable Background="DimGrey">
+ <Expandable Width="0" Background="Yellow">
+ <Expandable Background="Blue">
+ <Expandable Width="0" Background="Blue">
+ <Expandable Width="0" Background="Blue">
+ <Expandable Width="0" Background="Green">
+ <Label Background="Red"/>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ <Expandable Width="0" Background="Grey">
+ <Expandable Width="0" Background="LightBlue">
+ <Expandable Width="0" Background="Green">
+ <Expandable Width="0" Background="LimeGreen">
+ <Expandable Width="0" Background="DimGrey">
+ <Expandable Width="0" Background="Yellow">
+ <Expandable Width="0" Background="Blue">
+ <Expandable Width="0" Background="Blue">
+ <Expandable Width="0" Background="Blue">
+ <Expandable Width="0" Background="Green">
+ <Label Background="Red"/>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Group MinimumSize="50,50" Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ VerticalAlignment="Top"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ MinimumSize="10,10"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Background="DimGrey" Margin="10" Fit="true">
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Background="DimGrey" Margin="10" Width="70%" Height="50%">
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="100%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Left"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Bottom"
+ HorizontalAlignment="Right"
+ MinimumSize="10,10"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Group Background="DimGrey" Margin="10" Fit="true">
+ <Label Font="droid bold,40" Text="{fps}" Margin="10" Fit="true"/>
+ <Widget Margin="10" Width="20%" Height="20%" Background="SeaGreen"
+ VerticalAlignment="Top"
+ MinimumSize="10,10"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Width="80%" Height="50%">
+ <Border Width="45%" CornerRadius="10" BorderWidth="1">
+ <VerticalStack>
+ <VerticalStack Height="45%">
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 1" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 2" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="true" Caption="Check 3" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 4" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ </VerticalStack>
+ <Splitter Thickness="3"/>
+ <VerticalStack Height="45%">
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 1" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 2" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="true" Caption="Check 3" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox Height="25%" IsChecked="false" Caption="Check 4" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ </VerticalStack>
+ </VerticalStack>
+ </Border>
+ <Splitter Thickness="3"/>
+ <Border Width="45%" CornerRadius="10" BorderWidth="1">
+ <VerticalStack Width="50%" Height="50%" Background="DimGrey">
+ <RadioButton IsChecked="false" Caption="Choice 1" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <RadioButton IsChecked="false" Caption="Choice 2" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <RadioButton IsChecked="true" Caption="Choice 3" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <RadioButton IsChecked="false" Caption="Choice 4" Background="hgradient|0:DarkRed|1:Transparent"/>
+ </VerticalStack>
+ </Border>
+ <Splitter Thickness="3"/>
+</HorizontalStack>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true">
+ <Widget CornerRadius="5" Height="10" Width="600" Background="vgradient|0:Transparent|0.5:White|1:Transparent"/>
+ <HorizontalStack Fit="true" HorizontalAlignment="Left">
+ <Border Fit="true" CornerRadius="10" BorderWidth="1">
+ <VerticalStack Margin="10">
+ <CheckBox IsChecked="false" Caption="Check 1" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox IsChecked="false" Caption="Check 2" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox IsChecked="true" Caption="Check 3" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ <CheckBox IsChecked="false" Caption="Check 4" Background="hgradient|0:LimeGreen|1:Transparent"/>
+ </VerticalStack>
+ </Border>
+ <Splitter/>
+ <Border Fit="true" CornerRadius="10" BorderWidth="1">
+ <VerticalStack Margin="10">
+ <RadioButton IsChecked="false" Caption="Choice 1" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <Splitter/>
+ <RadioButton Width="Stretched" IsChecked="false" Caption="Choice 2" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <RadioButton IsChecked="true" Caption="Choice 3" Background="hgradient|0:DarkRed|1:Transparent"/>
+ <RadioButton IsChecked="false" Caption="Choice 4" Background="hgradient|0:DarkRed|1:Transparent"/>
+ </VerticalStack>
+ </Border>
+ <Splitter Thickness="3" />
+ <Border Fit="true" CornerRadius="10" BorderWidth="1" MaximumSize="150,150" MinimumSize="50,50">
+ <VerticalStack Margin="10">
+ <Label Text="label 1" Background="hgradient|0:Blue|1:Transparent"/>
+ <Label Text="label 2" Background="hgradient|0:Blue|1:Transparent"/>
+ <Label Text="label 3" Background="hgradient|0:Blue|1:Transparent"/>
+ <Label Text="label 4" Width="Stretched" Background="hgradient|0:Blue|1:Transparent"/>
+ </VerticalStack>
+ </Border>
+ <Splitter/>
+ <Border Fit="true" CornerRadius="10" BorderWidth="1">
+ <VerticalStack Margin="10">
+ <Button Caption="Button 1" Background="hgradient|0:Red|1:DarkRed" CornerRadius="5"/>
+ <Button Caption="Button 2" Background="hgradient|0:Green|1:Blue" CornerRadius="3"/>
+ <Button Caption="Button 3" Background="hgradient|0:DarkRed|1:Transparent" CornerRadius="0"/>
+ <Button Caption="Button 4" Background="hgradient|0:DarkRed|1:Transparent" CornerRadius="8"/>
+ </VerticalStack>
+ </Border>
+ <Splitter/>
+ </HorizontalStack>
+ <Widget CornerRadius="5" Height="10" Width="600" Background="vgradient|0:Transparent|0.5:White|1:Transparent"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack MinimumSize="50,50" Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack MinimumSize="50,50" Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="Stretched" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="60%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="10" Width="Stretched" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="60%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="20%" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Background="DimGrey" Margin="10" Width="90%" Height="100%">
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Background="DimGrey" Margin="10" Width="90%" Height="100%">
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="10,10"/>
+ <Widget Margin="10" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="10,10"/>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<HorizontalStack Background="DimGrey" Margin="10" Width="90%" Height="90%">
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Stretched" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+ <Widget Margin="1" Width="Stretched" Height="Fit" Background="SeaGreen"
+ MinimumSize="2,2"/>
+</HorizontalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack>
+ <HorizontalStack Background="DimGrey" Margin="10" Width="90%" Height="20%">
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Width="100%" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ </HorizontalStack>
+ <HorizontalStack Background="DimGrey" Margin="10" Width="Fit" Height="20%">
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Width="100%" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ <Label Font="droid bold, 20" Text="{fps}" Margin="5" Fit="true" Background="SeaGreen"/>
+ </HorizontalStack>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<GenericStack Orientation="Vertical" Spacing="0"
+ Background="{./Background}"
+ MouseEnter="{/caption.Foreground=White}"
+ MouseLeave="{/caption.Foreground=Grey}">
+ <HorizontalStack Left="{./TabOffset}"
+ Name="TabTitle"
+ HorizontalAlignment="Left"
+ Height="{./TabHeight}"
+ Width="{./TabWidth}">
+ <Label Name="caption" Text="{./Caption}" Foreground="Grey" Width="Stretched"/>
+ <Label Text="{./ViewIndex}" Foreground="Green"/>
+ <Label Text="{./TabOffset}" Foreground="Red"/>
+ <Border CornerRadius="5" BorderWidth="1" Foreground="Transparent" Height="12" Width="12"
+ MouseEnter="{Foreground=White}" MouseLeave="{Foreground=Transparent}">
+ <Image Focusable="true" Name="Image" Margin="0" Width="Stretched" Height="Stretched" Path="#Crow.Icons.exit2.svg"
+ MouseClick="./butCloseTabClick"/>
+ </Border>
+ </HorizontalStack>
+ <Container Margin="20">
+ <Container Background="DimGrey" Name="Content"/>
+ </Container>
+</GenericStack>
+
--- /dev/null
+<?xml version="1.0"?>
+<Expandable Fit="true" Caption="Test expandable" Background="DimGrey">
+ <VerticalStack Margin="5" >
+ <CheckBox Name="chk1" />
+ <CheckBox Name="chk2" IsChecked="true"/>
+ <CheckBox Name="chk3" />
+ <CheckBox Name="chk4" />
+ <HorizontalStack Fit="true" Margin="2" Background="SeaGreen">
+ <Label Name="captionFps" Text="Fps:" Width="30" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="Fit" TextAlignment="Center" Background="SeaGreen"/>
+ </HorizontalStack>
+ </VerticalStack>
+</Expandable>
--- /dev/null
+<Expandable Width="Stretched" Background="Grey">
+ <Expandable Width="Stretched" Background="LightBlue">
+ <Expandable Width="Stretched" Background="Green">
+ <Expandable Width="Stretched" Background="LimeGreen">
+ <Expandable Width="Stretched" Background="DimGrey">
+ <Expandable Width="Stretched" Background="Yellow">
+ <Expandable Width="Stretched" Background="SeaGreen">
+ <Expandable Width="Stretched" Background="Blue">
+ <Expandable Width="Stretched" Background="RoyalBlue">
+ <Expandable Width="Stretched" Background="Green">
+ <Label Background="Red" Text="{fps}"/>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Height="Fit" Width="Fit">
+ <Label Width="Stretched"/>
+ <Expandable Width="Fit" Background="Grey">
+ <Expandable Background="LightBlue">
+ <Expandable Background="Green">
+ <Expandable Background="LimeGreen">
+ <Expandable Background="DimGrey">
+ <Expandable Width="Stretched" Background="Yellow">
+ <Expandable Background="SeaGreen">
+ <Expandable Width="Stretched" Background="Blue">
+ <Expandable Width="Stretched" Background="RoyalBlue">
+ <Expandable Width="Stretched" Background="Green">
+ <Label Background="Red" Text="{fps}"/>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+ </Expandable>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<!--<Container Background="vgradient|0:DarkGrey|1:DimGrey">-->
+ <GroupBox Fit="true" Background="vgradient|0:SteelBlue|1:Transparent"
+ Foreground="White">
+<!-- <Label/>-->
+ </GroupBox>
+<!--</Container>-->
--- /dev/null
+<?xml version="1.0"?>
+<MessageBox Caption="message" Message="this is a message box"/>
+<!-- Ok="onMsgBoxOk"
+ Cancel="onMsgBoxCancel"/>-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack>
+ <Border Fit="true" Margin="10">
+ <VerticalStack Width="150" Height="Fit">
+ <RadioButton Caption="Left" IsChecked="true" Checked="change_alignment"/>
+ <RadioButton Caption="Right" Checked="change_alignment"/>
+ <RadioButton Caption="Top" Checked="change_alignment"/>
+ <RadioButton Caption="Bottom" Checked="change_alignment"/>
+ </VerticalStack>
+ </Border>
+ <Widget Height="200"/>
+ <Popper Caption="TestPopper" Width="100" Background="DimGrey" PopDirection="{alignment}">
+ <Border Fit="True" Background="SteelBlue">
+ <Image Fit="true" Path="#Crow.Icons.crow.svg" Margin="10"/>
+ <VerticalStack Fit="true" Margin="10" Background="CornflowerBlue">
+ <CheckBox Name="chk1" Background="Red"/>
+ <CheckBox Name="chk2" IsChecked="true"/>
+ <CheckBox Name="chk3"/>
+ <CheckBox Name="chk4"/>
+ <HorizontalStack Fit="true" Margin="20">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center" Background="SeaGreen"/>
+ </HorizontalStack>
+ </VerticalStack>
+ </Border>
+ </Popper>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<Group Height="90%" Width="95%">
+<VerticalStack >
+ <HorizontalStack Height="Fit">
+ <Label Text="Selected Tab:"/>
+ <Label Text="{../../tabview1.SelectedTab}"/>
+ </HorizontalStack>
+ <TabView Name="tabview1" Background="DimGrey" Orientation="Horizontal">
+ <TabItem Name="TabItem1" Caption="tab item 1" Background="DimGrey">
+ <VerticalStack Margin="20">
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="tab item 2" Background="DimGrey">
+ <VerticalStack Height="Fit" Margin="10">
+ <RadioButton Fit="true"/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem3" Background="DimGrey" Caption="tab item 3">
+ <Container Margin="5" CornerRadius="2" >
+ <TextBox Margin="5" Multiline="true" TextAlignment="TopLeft"/>
+ </Container>
+ </TabItem>
+ <TabItem Name="TabItem4" Background="DimGrey" Caption="tab item 4" Margin="0">
+ <TextBox/>
+ </TabItem>
+ </TabView>
+ <Button Background="vgradient|0:DimGrey|1:Black" HorizontalAlignment="Right"
+ Caption="Add new tab" Width="Fit" Height="30" MouseDown="onAddTabButClick"/>
+</VerticalStack>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<HorizontalStack Height="90%" Width="99%" Spacing="50">
+ <VerticalStack Width="40%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Selected Tab:"/>
+ <Label Text="{../../tabview1.SelectedTab}"/>
+ </HorizontalStack>
+ <TabView Name="tabview1" Background="DimGrey" Orientation="Horizontal" Margin="5" >
+ <TabItem Name="TabItem1" Caption="tab-1.1" Background="DimGrey">
+ <VerticalStack Margin="20">
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="tab-1.2" Background="DimGrey">
+ <VerticalStack Height="Fit" Margin="10">
+ <RadioButton Fit="true"/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem3" Background="DimGrey" Caption="tab-1.3">
+ <Container Margin="5" CornerRadius="2" >
+ <TextBox Margin="5" Multiline="true" TextAlignment="TopLeft"/>
+ </Container>
+ </TabItem>
+ </TabView>
+ <Button Background="vgradient|0:DimGrey|1:Black" HorizontalAlignment="Right"
+ Caption="Add new tab" Width="Fit" Height="30" MouseDown="onAddTabButClick"/>
+ </VerticalStack>
+ <VerticalStack Width="40%">
+ <HorizontalStack Height="Fit">
+ <Label Text="Selected Tab:"/>
+ <Label Text="{../../tabview2.SelectedTab}"/>
+ </HorizontalStack>
+ <TabView Name="tabview2" Background="DimGrey" Orientation="Horizontal" >
+ <TabItem Name="TabItem1" Caption="tab-2.1" Background="DimGrey">
+ <VerticalStack Margin="20">
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="tab-2.2" Background="DimGrey">
+ <VerticalStack Height="Fit" Margin="10">
+ <RadioButton Fit="true"/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem3" Background="DimGrey" Caption="tab-2.3">
+ <Container Margin="5" CornerRadius="2" >
+ <TextBox Margin="5" Multiline="true" TextAlignment="TopLeft"/>
+ </Container>
+ </TabItem>
+ </TabView>
+ <Button Background="vgradient|0:DimGrey|1:Black" HorizontalAlignment="Right"
+ Caption="Add new tab" Width="Fit" Height="30" MouseDown="onAddTabButClick2"/>
+ </VerticalStack>
+</HorizontalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Border Margin="5" Height="90%" Width="50%">
+ <DirectoryView Name="dv" CurrentDirectory="/" Margin="1"/>
+</Border>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Left="10" Top="10" Caption="Test window"
+ Width="250" Height="550" >
+ <VerticalStack Name="contentVSStack" Margin="10" Spacing="10" Background="0.4,0.4,0.4,0.4">
+ <Slider Name="slider" Height="12" Width="Stretched" CornerRadius="3"/>
+ <GroupBox Caption="test" Height="Fit" Width="Stretched" Margin="5">
+ <VerticalStack Height="Fit" Width="Stretched" >
+ <RadioButton Caption="Radio 1" Background="Red" Width="Stretched"/>
+ <RadioButton Caption="Radio 2" IsChecked="true" />
+ <RadioButton Caption="Radio 3" />
+ <RadioButton Caption="Radio 1" Background="SkyBlue" Width="Stretched"/>
+ </VerticalStack>
+ </GroupBox>
+ <HorizontalStack Width="Stretched" Height="Fit" Margin="10" CornerRadius="5" Background="SkyBlue">
+ <RadioButton Width="80" Height="Fit" Caption="Radio 2" IsChecked="true" />
+ <Widget Width="Stretched"/>
+ <RadioButton Width="80" Height="Fit" Caption="Radio 3" />
+ </HorizontalStack>
+ <HorizontalStack Width="Stretched" Height="Stretched" MinimumSize="10,40" Margin="0" CornerRadius="5"
+ Background="vgradient|0:White|0.1:SteelBlue|0.9:SteelBlue|1:Transparent">
+ <CheckBox Height="Fit" Width="80"/>
+ <Widget Width="Stretched"/>
+ <CheckBox Height="Fit" Width="80" IsChecked="true"/>
+ </HorizontalStack>
+ <Border Fit="true" CornerRadius="5" BorderWidth="1" >
+ <Container Name="MainGrp" Background="0.5,0.5,0.5,0.4" Width="120" Fit="true"
+ Margin="10" Focusable="True" >
+ <VerticalStack Fit="true" Name="vsFps" Spacing="10" >
+ <HorizontalStack Fit="true">
+ <Label Text="Layouting:" Width="50" TextAlignment="Right"/>
+ <Label Name="labLayouting" Text="{layouting}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Clipping:" Width="50" TextAlignment="Right"/>
+ <Label Text="{update}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Drawing:" Width="50" TextAlignment="Right"/>
+ <Label Name="labDrawing" Text="{drawing}" Font="droid,12" Width="80" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Name="captionFps" Text="Fps:" Width="50" TextAlignment="Right"/>
+ <Label Name="valueFps" Text="{fps}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Min:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMin}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ <HorizontalStack Fit="true">
+ <Label Text="Max:" Width="50" TextAlignment="Right"/>
+ <Label Text="{fpsMax}" Font="droid , 12" Width="50" TextAlignment="Center"
+ Background="vgradient|0:SeaGreen|1:Black"/>
+ </HorizontalStack>
+ </VerticalStack>
+ </Container>
+ </Border>
+ <HorizontalStack Fit="true" Background="RoyalBlue" Margin="3">
+ <Widget Margin="10" Background="LimeGreen" Width="5" Height="5"/>
+ <TextBox Font="droid, 16" Multiline="true" Text="this is a test\nmultiline" Margin="2"/>
+ <Widget Margin="10" Background="LimeGreen" Width="5" Height="5"/>
+ </HorizontalStack>
+ </VerticalStack>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Focusable="true" Caption="Measures" Width="30%" Height="Fit" MinimumSize="100,100">
+ <VerticalStack Width="90%" Height="Fit" Spacing="1" Margin="10">
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="FpsLabel"/>
+ <Label Text="{fps}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="FpsLabel"/>
+ <Label Text="{fpsMin}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="FpsLabel"/>
+ <Label Text="{fpsMax}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="FpsLabel"/>
+ <Label Text="{update}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="FpsLabel"/>
+ <Label Text="{layouting}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Clipping:" Style="FpsLabel"/>
+ <Label Text="{clipping}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="FpsLabel"/>
+ <Label Text="{drawing}" Style="FpsDisp"/>
+ </HorizontalStack>
+ </VerticalStack>
+</Window>
--- /dev/null
+<?xml version="1.0"?>
+<Window Left="10" Top="10" Caption="Test window" Width="200" Height="200" Background="0.5,0.5,0.5,0.8"
+ Focusable="True" CornerRadius="20" MinimumSize="100,100" MaximumSize="500,500">
+ <Template>
+ <Container Margin="20" Name="Content" Height="{../HeightPolicy}" Width="{../WidthPolicy}" Background="0.5,0.5,0.5,0.5"/>
+ </Template>
+<!-- <Group Background="Green">-->
+ <Widget Height="50" Width="50" Background="Red" Margin="5"/>
+<!-- <Scrollbar Orientation="Vertical" Height="Stretched" Width="10" Background="Blue" Margin="0" HorizontalAlignment="Right"/>-->
+<!-- </Group>-->
+</Window>
--- /dev/null
+<?xml version="1.0"?>
+<!--<ListBox Data="{TestList}" Focusable="true"/>-->
+<Border Margin="50">
+ <VerticalStack >
+ <Label Text="{../ColorList.SelectedItem}" Background="DarkGreen"/>
+ <Label Text="{Hover}" Background="DarkGreen"/>
+ <Button Caption="Clear" Width="Stretched" MouseClick="OnClear"/>
+ <ListBox Name="ColorList" Data="{TestList}" Width="200" Height="200"
+ ItemTemplate="#Tests.Interfaces.colorItem.crow">
+ </ListBox>
+ <Button Caption="Load list" Width="Stretched" MouseClick="OnLoadList"/>
+ </VerticalStack>
+</Border>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true" Background="vgradient|0:DimGrey|1:Black">
+ <HorizontalStack Fit="True">
+ <Button Caption="but" MouseClick="onButClick"/>
+ <Button Caption="but" MouseClick="onButClick" Fit="true"/>
+ <Button Width="60" Height="40" MouseClick="onButClick"/>
+ <Button Caption="Long text button" MouseClick="onButClick"/>
+ <Button Font="droid, 20" Caption="Button"/>
+ </HorizontalStack>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Fit="true" Margin="100" Background="DimGrey" >
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+ <CheckBox Background="Grey" MouseEnter="{Background=Red}" MouseLeave="{Background=Transparent}"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Container Background="DimGrey" Width="300">
+ <ComboBox Data="{TestList}" ItemTemplate="#Tests.Interfaces.colorItem.crow"/>
+</Container>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Border BorderWidth="2" Fit="true">
+ <VerticalStack Fit="true" Margin="5">
+ <ListBox Data="{TestList}" Background="0.5,0.5,0.5,0.7"
+ HorizontalAlignment="Center" Width="200" Height="200" Margin="5">
+ <Template>
+ <Border BorderWidth="1">
+ <HorizontalStack Margin="1">
+ <Scroller Name="scroller1" Margin="2">
+ <VerticalStack Height="Fit" MinimumSize="10,10"
+ Name="ItemsContainer" Margin="0" VerticalAlignment="Top"/>
+ </Scroller>
+ <ScrollBar Name="scrollbar1" Value="{²../scroller1.ScrollY}"
+ LargeIncrement="{../scroller1.PageHeight}" SmallIncrement="30" CursorSize="{../scroller1.ChildHeightRatio}"
+ Maximum="{../scroller1.MaxScrollY}" Orientation="Vertical"
+ Width="14" />
+ </HorizontalStack>
+ </Border>
+ </Template>
+ <ItemTemplate DataType="Crow.Color">
+ <HorizontalStack
+ HorizontalAlignment="Left"
+ Height="Fit" Width="200" Margin="1" Focusable="true"
+ MouseEnter="{Background=hgradient|0:DarkRed|1:Transparent}"
+ MouseLeave="{Background=Transparent}">
+ <Widget Height="12" Width="20" Background="{}" Margin="0" CornerRadius="3"/>
+ <Label Text="{}" Margin="0" Width="Stretched"/>
+ </HorizontalStack>
+ </ItemTemplate>
+ </ListBox>
+ <HorizontalStack Fit="true" HorizontalAlignment="Right">
+ <Button Caption="Load list" MouseDown="OnLoadList"/>
+ <Button Caption="Clear" MouseDown="OnClear"/>
+ </HorizontalStack>
+ </VerticalStack>
+</Border>
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Width="200" Height="Fit" Margin="20" Background="DimGrey">
+ <RadioButton Caption="Radio1"/>
+ <RadioButton Caption="Radio2" IsChecked="true"/>
+ <RadioButton Caption="Radio3"/>
+ <RadioButton Caption="Radio4"/>
+</VerticalStack>
--- /dev/null
+<?xml version="1.0"?>
+<Group Name="TopContainer" Width="400" Height="400"
+ Focusable="True" Background="Grey">
+ <ScrollBar Height="16" Orientation="Horizontal" Width="Stretched" Maximum="100"/>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Name="TopContainer" Width="400" Height="Fit"
+ Margin="20" Background="DarkGrey">
+
+ <HorizontalStack Fit="true" Margin="5" Background="SkyBlue">
+ <Spinner Name="sp1" Value="5" ValueChanged="onSpinnerValueChange"/>
+ <Spinner Value="5" Width="60"/>
+ <Spinner Value="5"/>
+ </HorizontalStack>
+</VerticalStack>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Menu>
+ <MenuItem Caption="File" Width="Fit">
+ <MenuItem Caption="New" />
+ <MenuItem Caption="Open"/>
+ <MenuItem Caption="Save"/>
+ <MenuItem Caption="Quit"/>
+ </MenuItem>
+ <MenuItem Caption="Edit" Name="edit" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ <MenuItem Caption="Special" Name="special" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ </MenuItem>
+ <MenuItem Caption="Special2" Name="special" Width="Fit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ </MenuItem>
+ </MenuItem>
+ <MenuItem Caption="Help" Width="Fit">
+ <MenuItem Caption="About"/>
+ <MenuItem Caption="Help"/>
+ </MenuItem>
+</Menu>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Menu>
+ <MenuItem Caption="File">
+ <MenuItem Caption="New"/>
+ <MenuItem Caption="Open"/>
+ <MenuItem Caption="Save"/>
+ <MenuItem Caption="Quit"/>
+ </MenuItem>
+</Menu>
--- /dev/null
+<?xml version="1.0"?>
+<Menu>
+ <MenuItem Caption="Menu">
+ <MenuItem Caption="File">
+ <MenuItem Caption="New"></MenuItem>
+ <MenuItem Caption="Open"></MenuItem>
+ <MenuItem Caption="Save"></MenuItem>
+ <MenuItem Caption="Quit"></MenuItem>
+ </MenuItem>
+ <MenuItem Caption="Edit">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ <MenuItem Caption="Special">
+ <MenuItem Caption="Cut"/>
+ <MenuItem Caption="Copy"/>
+ <MenuItem Caption="Paste"/>
+ </MenuItem>
+ </MenuItem>
+ <MenuItem Caption="Help">
+ <MenuItem Caption="About"/>
+ <MenuItem Caption="Help"/>
+ </MenuItem>
+ </MenuItem>
+</Menu>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!--<VerticalStack Height="{../HeightPolicy}" Width="{../WidthPolicy}" MouseClick="../onMouseClick">
+ <Label Text="{../../Caption}" Width="{../../WidthPolicy}"/>
+ <Container Name="Content" Visible="false" Height="{../../HeightPolicy}" Width="{../../WidthPolicy}"/>
+</VerticalStack>-->
+<Group BorderWidth="1" Foreground="LightGray"
+ MouseClick="../onMouseClick">
+ <VerticalStack>
+ <Label Text="{../../../Caption}"/>
+ <Container Name="Content" Visible="false"/>
+ </VerticalStack>
+</Group>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Vertical Wrapper" Width="50%" Height="50%">
+ <Wrapper Orientation="Vertical" Height="Fit" Width="90%" Margin="5" Background="MediumSeaGreen" Spacing="1" >
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ </Wrapper>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Vertical Wrapper" Width="50%" Height="50%">
+ <Wrapper Orientation="Vertical" Height="Fit" Width="Fit" Margin="5" Background="MediumSeaGreen" Spacing="1" >
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ </Wrapper>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Horizontal Wrapper" Width="50%" Height="50%">
+ <Wrapper Orientation="Horizontal" Height="90%" Width="Fit" Margin="5" Background="MediumSeaGreen" Spacing="1" >
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ </Wrapper>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Horizontal Wrapper" Width="50%" Height="50%">
+ <Wrapper HorizontalAlignment="Left" Orientation="Horizontal" Height="100%" Width="Fit" Margin="0" Background="MediumSeaGreen" Spacing="1" >
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ </Wrapper>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Caption="Horizontal Wrapper" Width="50%" Height="50%">
+ <Wrapper Orientation="Horizontal" Height="Fit" Width="Fit" Margin="5" Background="MediumSeaGreen" Spacing="1" >
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50%" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ <Widget Width="50" Height="50%" Background="SeaGreen"/>
+ <Widget Width="50" Height="50" Background="SeaGreen"/>
+ </Wrapper>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Window Title="Showcase" Height="90%" Width="90%">
+ <HorizontalStack >
+ <VerticalStack Width="33%" Margin="5">
+ <GroupBox Caption="Performance" Height="Fit">
+ <VerticalStack Width="90%" Height="Fit" Spacing="2" >
+ <HorizontalStack Height="Fit">
+ <Label Text="Fps:" Style="FpsLabel"/>
+ <Label Text="{fps}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Min:" Style="FpsLabel"/>
+ <Label Text="{fpsMin}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Max:" Style="FpsLabel"/>
+ <Label Text="{fpsMax}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Update:" Style="FpsLabel"/>
+ <Label Text="{update}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Layouting:" Style="FpsLabel"/>
+ <Label Text="{layouting}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Clipping:" Style="FpsLabel"/>
+ <Label Text="{clipping}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit">
+ <Label Text="Drawing:" Style="FpsLabel"/>
+ <Label Text="{drawing}" Style="FpsDisp"/>
+ </HorizontalStack>
+ </VerticalStack>
+ </GroupBox>
+ <Label Width="Stretched" Margin="3" Background="Onyx"/>
+ <TextBox Text="TextBox" Multiline="true" Margin="3"/>
+ <HorizontalStack Height="Fit" Margin="5" Background="Onyx" CornerRadius="10">
+ <VerticalStack Spacing="5" Width="50%">
+ <CheckBox Fit="true"/>
+ <CheckBox Fit="true"/>
+ <CheckBox Fit="true"/>
+ <CheckBox Fit="true"/>
+ </VerticalStack>
+ <VerticalStack Spacing="5" Width="50%">
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true"/>
+ <RadioButton Fit="true"/>
+ </VerticalStack>
+ </HorizontalStack>
+ <HorizontalStack Height="Fit" Margin="5">
+ <Label Text="MouseEvents" Width="50%" Margin="3"
+ Background="Onyx"
+ Foreground="DimGrey"
+ TextAlignment="Center"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGrey}"
+ MouseDown="{Background=DarkRed}"
+ MouseUp="{Background=Onyx}"/>
+ <Label Text="MouseEvents" Width="50%" Margin="3"
+ Background="Onyx"
+ Foreground="DimGrey"
+ TextAlignment="Center"
+ MouseEnter="{Foreground=White}"
+ MouseLeave="{Foreground=DimGrey}"
+ MouseDown="{Background=Mantis}"
+ MouseUp="{Background=Onyx}"/>
+ </HorizontalStack>
+ <GroupBox Caption="Templated controls" Height="Fit" Margin="5">
+ <HorizontalStack Height="Fit">
+ <VerticalStack Width="50%">
+ <CheckBox Template="#Tests.Interfaces.CheckBox2.imlt" Style="CheckBox2"/>
+ <CheckBox Template="#Tests.Interfaces.CheckBox2.imlt" Style="CheckBox2"/>
+ <CheckBox Template="#Tests.Interfaces.CheckBox2.imlt" Style="CheckBox2"/>
+ <CheckBox Template="#Tests.Interfaces.CheckBox2.imlt" Style="CheckBox2"/>
+ </VerticalStack>
+ <Splitter/>
+ <VerticalStack Width="50%">
+ <RadioButton Template="#Tests.Interfaces.CheckBox2.imlt" Style="RadioButton2"/>
+ <RadioButton Template="#Tests.Interfaces.CheckBox2.imlt" Style="RadioButton2"/>
+ <RadioButton Template="#Tests.Interfaces.CheckBox2.imlt" Style="RadioButton2"/>
+ <RadioButton Template="#Tests.Interfaces.CheckBox2.imlt" Style="RadioButton2"/>
+ </VerticalStack>
+ </HorizontalStack>
+ </GroupBox>
+ <Spinner Fit="true"/>
+ </VerticalStack>
+ <VerticalStack Width="33%" Margin="5" Spacing="5">
+ <Expandable Background="DimGrey">
+ <Image Path="#Crow.Icons.crow.svg"/>
+ </Expandable>
+ <Popper Background="DimGrey" PopDirection="Bottom">
+ <Border Fit="True" Background="DimGrey" CornerRadius="0" BorderWidth="1">
+ <Image Path="#Crow.Icons.crow.svg" Width="100" Height="100" Margin="10"
+ MouseEnter="{Background=LightGrey}"
+ MouseLeave="{Background=Transparent}"/>
+ </Border>
+ </Popper>
+ <Slider Height="10" Width="90%"/>
+ <Container Height="Fit" Background="Onyx" Margin="2" CornerRadius="5">
+ <ProgressBar Background="DimGrey" Height="10" Value="50"/>
+ </Container>
+ <Image Path="#Crow.Icons.crow.svg" Width="60" Height="60" Background="LightGrey" />
+ <TabView Name="tabview1"
+ Height="120" Orientation="Horizontal" Spacing="15">
+ <TabItem Name="TabItem1" Caption="Tab 1" Margin="0">
+ <VerticalStack Fit="true">
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ <CheckBox/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="Tab 2" Background="Grey">
+ <VerticalStack Fit="true">
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ <RadioButton/>
+ </VerticalStack>
+ </TabItem>
+ <TabItem Name="TabItem2" Caption="Tab 3" Background="Grey">
+ <Container Margin="5" CornerRadius="2">
+ <TextBox Height="Stretched" Margin="5" Multiline="true" TextAlignment="TopLeft"/>
+ </Container>
+ </TabItem>
+ </TabView>
+ <MessageBox Movable="false"/>
+ </VerticalStack>
+ <VerticalStack Width="33%" Margin="5">
+ <Border Margin="5" Background="Onyx" Height="Fit">
+ <Label Width="Stretched" Margin="1" Text="{../../dv.SelectedItem}"/>
+ </Border>
+ <Border Margin="5" Background="Onyx" Height="50%">
+ <DirectoryView Name="dv" Root="./" Margin="1"/>
+ </Border>
+ <ListBox Data="{TestList}" Background="Onyx" Margin="5"
+ ItemTemplate="#Tests.Interfaces.colorItem.crow"
+ Template="#Crow.Templates.ScrollingListBox.goml"/>
+ </VerticalStack>
+ </HorizontalStack>
+</Window>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<Border Foreground="Transparent" Focusable="true" HorizontalAlignment="Left" Height="Fit" Width="200">
+ <HorizontalStack Margin="0"
+ MouseEnter="{Background=hgradient|0:DarkRed|1:Transparent}"
+ MouseLeave="{Background=Transparent}">
+ <Widget Height="12" Width="20" Background="{}" Margin="0" CornerRadius="3"/>
+ <Label Text="{}" Margin="0" Width="Stretched"/>
+ </HorizontalStack>
+</Border>
+
--- /dev/null
+<?xml version="1.0"?>
+<Border Foreground="Transparent" Focusable="true" HorizontalAlignment="Left" Height="Fit">
+ <HorizontalStack Margin="0"
+ MouseEnter="{Background=CornflowerBlue}"
+ MouseLeave="{Background=Transparent}">
+ <Widget Height="8" Width="14" Background="{}" Margin="0" CornerRadius="2"/>
+ <Label Text="{}" Margin="0" Width="Stretched" Font="mono, 8"/>
+ </HorizontalStack>
+</Border>
+
--- /dev/null
+<?xml version="1.0"?>
+<Border BorderWidth="3">
+ <Label Text="{Name}" Focusable="true" Width="Stretched" Height="Fit" Margin="0"
+ MouseEnter="{Background=Red}"
+ MouseLeave="{Background=Transparent}"
+ />
+</Border>
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<Container Name="topContainer" HorizontalAlignment="Center" VerticalAlignment="Top"
+ Margin="2"
+ Width="600" Height="-1">
+ <Border Margin="2" BorderWidth="1" Background="0,6;0,6;0,6;0,6" Height="-1">
+ <Group Width="0" Name="logs">
+ <VerticalStack Name="VerticalStack" Width="0" Focusable="False">
+ <Label Name="line1" Width="0" Text="Line1" Margin="0"/>
+ <Label Name="line2" Width="0" Text="Line2" Margin="0"/>
+ <Label Name="line3" Width="0" Text="Line3" Margin="0"/>
+ <Label Name="line4" Width="0" Text="Line4" Margin="0"/>
+ </VerticalStack>
+ <Button Name="btOk" Background="Grey" Fit="True"
+ HorizontalAlignment="Right" VerticalAlignment="Bottom"
+ MouseClick="BtOk_MouseClick">
+ <Label Text="Ok" Margin="3" Foreground="White" />
+ </Button>
+ </Group>
+ </Border>
+</Container>
+
--- /dev/null
+<?xml version="1.0"?>
+
+ <VerticalStack Spacing="1" Height="Fit" Width="Stretched">
+ <HorizontalStack Background="DarkSlateGrey">
+ <Label Text="{Name}" Width="Stretched" Font="doid bold, 10" Margin="2"/>
+ <Button Caption="Reset" MouseClick="onResetClick" Height="Fit"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Current:" Style="FpsLabel"/>
+ <Label Text="{current}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Minimum:" Style="FpsLabel"/>
+ <Label Text="{minimum}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Mean:" Style="FpsLabel"/>
+ <Label Text="{mean}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Maximum:" Style="FpsLabel"/>
+ <Label Text="{maximum}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <Border Foreground="White" Width="Stretched" Height="60">
+ <Trend Background="Black" NewValue="{current}" Minimum="0" Maximum="100"/>
+ </Border>
+<!-- <HorizontalStack>
+ <Label Text="Total:" Style="FpsLabel"/>
+ <Label Text="{total}" Style="FpsDisp"/>
+ </HorizontalStack>
+ <HorizontalStack>
+ <Label Text="Cpt:" Style="FpsLabel"/>
+ <Label Text="{cptMeasures}" Style="FpsDisp"/>
+ </HorizontalStack>-->
+ </VerticalStack>
+
--- /dev/null
+<?xml version="1.0"?>
+<AnalogMeter Width="Fit" Height="Fit" Background="White" Foreground="Black" Value="{fps}" Minimum="Stretched" Maximum="100"/>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<!--<Group>-->
+<Window Name="window1" Left="10" Top="10" Title="Test window"
+ Width="250" Height="300" >
+ <VerticalStack Name="contentVSStack" Margin="10" Spacing="10">
+ <Slider Name="slider" Height="10" Width="0"/>
+
+ <HorizontalStack Width="0" Height="-1" Margin="10" Background="BlueCrayola">
+ <Checkbox Height="-1" Width="80"/>
+ <GraphicObject Width="0"/>
+ <Checkbox Height="-1" Width="80"/>
+ </HorizontalStack>
+ <Groupbox Text="test" Height="-1" Width="-1" Margin="5">
+ <VerticalStack Height="-1" Width="0" >
+ <RadioButton Caption="Radio 1" Background="Red" />
+ <RadioButton Caption="Radio 2" IsChecked="true" />
+ <RadioButton Caption="Radio 3" />
+ </VerticalStack>
+ </Groupbox>
+<!-- <Checkbox Height="-1" Width="-1" Background="Red" Margin="0" VerticalAlignment="Center" HorizontalAlignment="Right"/>-->
+ </VerticalStack>
+</Window>
+<!--</Group>-->
+<!-- <Label Text="{fps}" Background="DarkRed"/>
+ <Label Text="{fpsMin}" />
+ <Label Text="{fpsMax}" />-->
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+ <HorizontalStack Width="Fit" Height="Fit" Focusable="true"
+ HorizontalAlignment="Left"
+ MouseEnter="{Background=RoyalBlue}"
+ MouseLeave="{Background=Transparent}">
+ <Image Width="16" Height="16" Path="#Tests.image.folder1.svg" SvgSub="{Attributes}"/>
+ <Label Text="{Name}" Width="Fit" Height="Fit" Margin="0"/>
+ <Label Text="{Attributes}" Width="Fit" Height="Fit" Margin="0"/>
+ <Label Text="{Extension}" Width="Fit" Height="Fit" Margin="0"/>
+ </HorizontalStack>
+
--- /dev/null
+<?xml version="1.0"?>
+ <HorizontalStack Width="Stretched" Height="Fit" Focusable="true"
+ MouseEnter="{Background=SkyBlue}"
+ MouseLeave="{Background=Transparent}">
+ <Image Width="8" Height="8" Path="#Crow.Images.Icons.member.svg" SvgSub="{GetIcon}"/>
+ <Label Text="{Name}" Width="Stretched" Height="Fit" Margin="1"/>
+ <Label Text="{MemberType}" Width="Fit" Height="Fit" Margin="0"/>
+ </HorizontalStack>
+
--- /dev/null
+<?xml version="1.0"?>
+<VerticalStack Height="Fit" Name="List"/>
\ No newline at end of file
--- /dev/null
+using System;
+using System.Numerics;
+using System.Runtime.InteropServices;
+using Glfw;
+using VK;
+using CVKL;
+using System.Threading;
+
+namespace pbrSachaWillem {
+ class Program : VkWindow, Crow.IValueChange {
+ static void Main (string[] args) {
+ using (Program vke = new Program ()) {
+ vke.Run ();
+ }
+ }
+ bool isRunning;
+
+ protected override void render () {
+ int idx = swapChain.GetNextImage ();
+
+ lock (crow.RenderMutex) {
+ if (idx < 0) {
+ OnResize ();
+ return;
+ }
+
+ presentQueue.Submit (cmds[idx], swapChain.presentComplete, drawComplete[idx]);
+ presentQueue.Present (swapChain, drawComplete[idx]);
+ presentQueue.WaitIdle ();
+ }
+ }
+
+ #region crow
+
+ void crow_thread_func () {
+ vkvgDev = new vkvg.Device (instance.Handle, phy.Handle, dev.VkDev.Handle, presentQueue.qFamIndex,
+ vkvg.SampleCount.Sample_4, presentQueue.index);
+
+ crow = new Crow.Interface (vkvgDev, 800, 600);
+
+ isRunning = true;
+ //int frameCount = 0;
+
+ while (isRunning) {
+ crow.Update ();
+
+ /*if (frameCount++ > 100) {
+ for (int i = 0; i < crow.PerfMeasures.Count; i++)
+ crow.PerfMeasures[i].NotifyChanges ();
+ frameCount = 0;
+ }*/
+
+ Thread.Sleep (2);
+ }
+ dev.WaitIdle ();
+ crow.Dispose ();
+ vkvgDev.Dispose ();
+ }
+
+ #region IValueChange implementation
+ public event EventHandler<Crow.ValueChangeEventArgs> ValueChanged;
+ public virtual void NotifyValueChanged(string MemberName, object _value)
+ {
+ if (ValueChanged != null)
+ ValueChanged.Invoke(this, new Crow.ValueChangeEventArgs(MemberName, _value));
+ }
+ #endregion
+
+ public float Gamma {
+ get { return pbrPipeline.matrices.gamma; }
+ set {
+ if (value == pbrPipeline.matrices.gamma)
+ return;
+ pbrPipeline.matrices.gamma = value;
+ NotifyValueChanged ("Gamma", value);
+ updateViewRequested = true;
+ }
+ }
+ public float Exposure {
+ get { return pbrPipeline.matrices.exposure; }
+ set {
+ if (value == pbrPipeline.matrices.exposure)
+ return;
+ pbrPipeline.matrices.exposure = value;
+ NotifyValueChanged ("Exposure", value);
+ updateViewRequested = true;
+ }
+ }
+ Crow.Interface crow;
+ #endregion
+
+ protected override void configureEnabledFeatures (VkPhysicalDeviceFeatures available_features, ref VkPhysicalDeviceFeatures features) {
+ base.configureEnabledFeatures (available_features, ref features);
+#if PIPELINE_STATS
+ features.pipelineStatisticsQuery = true;
+#endif
+ features.samplerAnisotropy = true;
+ }
+
+ VkSampleCountFlags samples = VkSampleCountFlags.SampleCount4;
+
+ Framebuffer[] frameBuffers;
+ PBRPipeline pbrPipeline;
+
+ enum DebugView {
+ none,
+ color,
+ normal,
+ occlusion,
+ emissive,
+ metallic,
+ roughness
+ }
+
+ DebugView currentDebugView = DebugView.none;
+
+#if PIPELINE_STATS
+ PipelineStatisticsQueryPool statPool;
+ TimestampQueryPool timestampQPool;
+ ulong[] results;
+#endif
+
+
+ bool queryUpdatePrefilCube, showDebugImg, showUI = true;
+
+
+ Image uiImage;
+
+ #region ui
+ //DescriptorSet dsDebugImg;
+ //void initDebugImg () {
+ // dsDebugImg = descriptorPool.Allocate (descLayoutMain);
+ // pbrPipeline.envCube.debugImg.Descriptor.imageLayout = VkImageLayout.ShaderReadOnlyOptimal;
+ // DescriptorSetWrites uboUpdate = new DescriptorSetWrites (dsDebugImg, descLayoutMain);
+ // uboUpdate.Write (dev, pbrPipeline.envCube.debugImg.Descriptor);
+ //}
+
+ vkvg.Device vkvgDev;
+
+ Pipeline uiPipeline;
+
+ void initUIPipeline () {
+ GraphicPipelineConfig cfg = GraphicPipelineConfig.CreateDefault (VkPrimitiveTopology.TriangleList, samples, false);
+ cfg.RenderPass = pbrPipeline.RenderPass;
+ cfg.Layout = pbrPipeline.Layout;
+ cfg.AddShader (VkShaderStageFlags.Vertex, "shaders/FullScreenQuad.vert.spv");
+ cfg.AddShader (VkShaderStageFlags.Fragment, "shaders/simpletexture.frag.spv");
+ cfg.blendAttachments[0] = new VkPipelineColorBlendAttachmentState (true);
+
+ uiPipeline = new GraphicPipeline (cfg);
+
+ }
+ void initUISurface () {
+ lock (crow.UpdateMutex) {
+ uiImage?.Dispose ();
+ uiImage = new CVKL.Image (dev, new VkImage ((ulong)crow.surf.VkImage.ToInt64 ()), VkFormat.B8g8r8a8Unorm,
+ VkImageUsageFlags.Sampled, swapChain.Width, swapChain.Height);
+ uiImage.SetName ("uiImage");
+ uiImage.CreateView (VkImageViewType.ImageView2D, VkImageAspectFlags.Color);
+ uiImage.CreateSampler (VkFilter.Nearest, VkFilter.Nearest, VkSamplerMipmapMode.Nearest, VkSamplerAddressMode.ClampToBorder);
+ uiImage.Descriptor.imageLayout = VkImageLayout.ShaderReadOnlyOptimal;
+ }
+ }
+
+
+ void recordDrawOverlay (CommandBuffer cmd) {
+ uiPipeline.Bind (cmd);
+
+ uiImage.SetLayout (cmd, VkImageAspectFlags.Color, VkImageLayout.ColorAttachmentOptimal, VkImageLayout.ShaderReadOnlyOptimal,
+ VkPipelineStageFlags.ColorAttachmentOutput, VkPipelineStageFlags.FragmentShader);
+
+ cmd.Draw (3, 1, 0, 0);
+
+ uiImage.SetLayout (cmd, VkImageAspectFlags.Color, VkImageLayout.ShaderReadOnlyOptimal, VkImageLayout.ColorAttachmentOptimal,
+ VkPipelineStageFlags.FragmentShader, VkPipelineStageFlags.BottomOfPipe);
+
+ //if (!showDebugImg)
+ // return;
+ //const uint debugImgSize = 256;
+ //const uint debugImgMargin = 10;
+
+ //cmd.BindDescriptorSet (uiPipeline.Layout, dsDebugImg);
+
+ //cmd.SetViewport (debugImgSize, debugImgSize, debugImgMargin, swapChain.Height - debugImgSize - debugImgMargin);
+ //cmd.SetScissor (debugImgSize, debugImgSize, (int)debugImgMargin, (int)(swapChain.Height - debugImgSize - debugImgMargin));
+
+ //cmd.Draw (3, 1, 0, 0);
+ }
+ #endregion
+
+
+ Vector4 lightPos = new Vector4 (1, 0, 0, 0);
+ BoundingBox modelAABB;
+
+ Program () {
+ camera.SetPosition (0, 0, 5);
+
+ Thread crowThread = new Thread (crow_thread_func);
+ crowThread.IsBackground = true;
+ crowThread.Start ();
+
+ while (crow == null)
+ Thread.Sleep (5);
+
+ initUISurface ();
+
+ pbrPipeline = new PBRPipeline (presentQueue,
+ new RenderPass (dev, swapChain.ColorFormat, dev.GetSuitableDepthFormat (), samples), uiImage);
+
+ initUIPipeline ();
+
+ modelAABB = pbrPipeline.model.DefaultScene.AABB;
+
+ crow.Load ("ui/fps.crow").DataSource = this;
+ //crow.Load ("#vkvgCrowTest.perfMeasures.crow").DataSource = crow;
+
+ //crow.LoadIMLFragment ("<Window Height='200' Width='200' CornerRadius='5'/>").DataSource=this;
+ //crow.LoadIMLFragment ("<Window Height='200' Width='200'/>").DataSource = this;
+ crow.LoadIMLFragment (@"<Image Margin='1' Path='/mnt/devel/gts/vk.net/crow/Images/crow.png' Width='100' Height='100' Background='White' MouseEnter='{Background=Blue}' MouseLeave='{Background=White}'/>");
+ //crow.LoadIMLFragment ("<Window Height='200' Width='200'/>").DataSource = this;
+ UpdateFrequency = 20;
+ }
+
+ void buildCommandBuffers () {
+ for (int i = 0; i < swapChain.ImageCount; ++i) {
+ cmds[i]?.Free ();
+ cmds[i] = cmdPool.AllocateAndStart ();
+#if PIPELINE_STATS
+ statPool.Begin (cmds[i]);
+ recordDraw (cmds[i], frameBuffers[i]);
+ statPool.End (cmds[i]);
+#else
+ recordDraw (cmds[i], frameBuffers[i]);
+#endif
+
+ cmds[i].End ();
+ }
+ }
+ void recordDraw (CommandBuffer cmd, Framebuffer fb) {
+ pbrPipeline.RenderPass.Begin (cmd, fb);
+
+ cmd.SetViewport (fb.Width, fb.Height);
+ cmd.SetScissor (fb.Width, fb.Height);
+
+ pbrPipeline.RecordDraw (cmd);
+
+ if (showUI)
+ recordDrawOverlay (cmd);
+
+ pbrPipeline.RenderPass.End (cmd);
+ }
+
+
+ #region update
+ public override void UpdateView () {
+ camera.AspectRatio = (float)swapChain.Width / swapChain.Height;
+
+ pbrPipeline.matrices.lightDir = lightPos;
+ pbrPipeline.matrices.projection = camera.Projection;
+ pbrPipeline.matrices.view = camera.View;
+ pbrPipeline.matrices.model = camera.Model;
+
+
+ pbrPipeline.matrices.camPos = new Vector4 (
+ -camera.Position.Z * (float)Math.Sin (camera.Rotation.Y) * (float)Math.Cos (camera.Rotation.X),
+ camera.Position.Z * (float)Math.Sin (camera.Rotation.X),
+ camera.Position.Z * (float)Math.Cos (camera.Rotation.Y) * (float)Math.Cos (camera.Rotation.X),
+ 0
+ );
+ pbrPipeline.matrices.debugViewInputs = (float)currentDebugView;
+
+ pbrPipeline.uboMats.Update (pbrPipeline.matrices, (uint)Marshal.SizeOf<PBRPipeline.Matrices> ());
+
+ updateViewRequested = false;
+ }
+
+ int frameCount = 0;
+
+ public override void Update () {
+#if PIPELINE_STATS
+ results = statPool.GetResults ();
+#endif
+ camera.Model *= Matrix4x4.CreateRotationY(0.05f);
+ updateViewRequested = true;
+
+ if (rebuildBuffers) {
+ buildCommandBuffers ();
+ rebuildBuffers = false;
+ }
+
+ if (++frameCount > 20) {
+ NotifyValueChanged ("fps", fps);
+ frameCount = 0;
+ }
+ }
+ #endregion
+
+
+ protected override void OnResize () {
+ crow.ProcessResize (new Crow.Rectangle (0,0,(int)swapChain.Width, (int)swapChain.Height));
+
+ initUISurface ();
+
+ uiImage.Descriptor.imageLayout = VkImageLayout.ShaderReadOnlyOptimal;
+ DescriptorSetWrites uboUpdate = new DescriptorSetWrites (pbrPipeline.dsMain, pbrPipeline.Layout.DescriptorSetLayouts[0].Bindings[5]);
+ uboUpdate.Write (dev, uiImage.Descriptor);
+
+ UpdateView ();
+
+ if (frameBuffers != null)
+ for (int i = 0; i < swapChain.ImageCount; ++i)
+ frameBuffers[i]?.Dispose ();
+
+ frameBuffers = new Framebuffer[swapChain.ImageCount];
+
+ for (int i = 0; i < swapChain.ImageCount; ++i) {
+ frameBuffers[i] = new Framebuffer (pbrPipeline.RenderPass, swapChain.Width, swapChain.Height,
+ (pbrPipeline.RenderPass.Samples == VkSampleCountFlags.SampleCount1) ? new Image[] {
+ swapChain.images[i],
+ null
+ } : new Image[] {
+ null,
+ null,
+ swapChain.images[i]
+ });
+ }
+
+ buildCommandBuffers ();
+ }
+
+ #region Mouse and keyboard
+ protected override void onMouseMove (double xPos, double yPos) {
+ if (crow.ProcessMouseMove ((int)xPos, (int)yPos))
+ return;
+
+ double diffX = lastMouseX - xPos;
+ double diffY = lastMouseY - yPos;
+ if (MouseButton[0]) {
+ camera.Rotate ((float)-diffX, (float)-diffY);
+ } else if (MouseButton[1]) {
+ camera.SetZoom ((float)diffY);
+ } else
+ return;
+
+ updateViewRequested = true;
+ }
+ protected override void onMouseButtonDown (Glfw.MouseButton button) {
+ if (crow.ProcessMouseButtonDown ((Crow.MouseButton)button))
+ return;
+ base.onMouseButtonDown (button);
+ }
+ protected override void onMouseButtonUp (Glfw.MouseButton button) {
+ if (crow.ProcessMouseButtonUp ((Crow.MouseButton)button))
+ return;
+ base.onMouseButtonUp (button);
+ }
+
+ protected override void onKeyDown (Key key, int scanCode, Modifier modifiers) {
+ switch (key) {
+ case Key.F:
+ if (modifiers.HasFlag (Modifier.Shift)) {
+ pbrPipeline.envCube.debugFace--;
+ if (pbrPipeline.envCube.debugFace < 0)
+ pbrPipeline.envCube.debugFace = 5;
+ } else {
+ pbrPipeline.envCube.debugFace++;
+ if (pbrPipeline.envCube.debugFace > 5)
+ pbrPipeline.envCube.debugFace = 0;
+ }
+ queryUpdatePrefilCube = updateViewRequested = true;
+ break;
+ case Key.M:
+ if (modifiers.HasFlag (Modifier.Shift)) {
+ pbrPipeline.envCube.debugMip--;
+ if (pbrPipeline.envCube.debugMip < 0)
+ pbrPipeline.envCube.debugMip = (int)pbrPipeline.envCube.prefilterCube.CreateInfo.mipLevels - 1;
+ } else {
+ pbrPipeline.envCube.debugMip++;
+ if (pbrPipeline.envCube.debugMip > pbrPipeline.envCube.prefilterCube.CreateInfo.mipLevels)
+ pbrPipeline.envCube.debugMip = 0;
+ }
+ queryUpdatePrefilCube = updateViewRequested = true;
+ break;
+ case Key.P:
+ showDebugImg = !showDebugImg;
+ queryUpdatePrefilCube = updateViewRequested = true;
+ break;
+ case Key.Keypad0:
+ currentDebugView = DebugView.none;
+ break;
+ case Key.Keypad1:
+ currentDebugView = DebugView.color;
+ break;
+ case Key.Keypad2:
+ currentDebugView = DebugView.normal;
+ break;
+ case Key.Keypad3:
+ currentDebugView = DebugView.occlusion;
+ break;
+ case Key.Keypad4:
+ currentDebugView = DebugView.emissive;
+ break;
+ case Key.Keypad5:
+ currentDebugView = DebugView.metallic;
+ break;
+ case Key.Keypad6:
+ currentDebugView = DebugView.roughness;
+ break;
+ case Key.Up:
+ if (modifiers.HasFlag (Modifier.Shift))
+ lightPos -= Vector4.UnitZ;
+ else
+ camera.Move (0, 0, 1);
+ break;
+ case Key.Down:
+ if (modifiers.HasFlag (Modifier.Shift))
+ lightPos += Vector4.UnitZ;
+ else
+ camera.Move (0, 0, -1);
+ break;
+ case Key.Left:
+ if (modifiers.HasFlag (Modifier.Shift))
+ lightPos -= Vector4.UnitX;
+ else
+ camera.Move (1, 0, 0);
+ break;
+ case Key.Right:
+ if (modifiers.HasFlag (Modifier.Shift))
+ lightPos += Vector4.UnitX;
+ else
+ camera.Move (-1, 0, 0);
+ break;
+ case Key.PageUp:
+ if (modifiers.HasFlag (Modifier.Shift))
+ lightPos += Vector4.UnitY;
+ else
+ camera.Move (0, 1, 0);
+ break;
+ case Key.PageDown:
+ if (modifiers.HasFlag (Modifier.Shift))
+ lightPos -= Vector4.UnitY;
+ else
+ camera.Move (0, -1, 0);
+ break;
+ case Key.F1:
+ showUI = !showUI;
+ rebuildBuffers = true;
+ break;
+ case Key.F2:
+ if (modifiers.HasFlag (Modifier.Shift))
+ pbrPipeline.matrices.exposure -= 0.3f;
+ else
+ pbrPipeline.matrices.exposure += 0.3f;
+ break;
+ case Key.F3:
+ if (modifiers.HasFlag (Modifier.Shift))
+ pbrPipeline.matrices.gamma -= 0.1f;
+ else
+ pbrPipeline.matrices.gamma += 0.1f;
+ break;
+ case Key.F4:
+ if (camera.Type == Camera.CamType.FirstPerson)
+ camera.Type = Camera.CamType.LookAt;
+ else
+ camera.Type = Camera.CamType.FirstPerson;
+ Console.WriteLine ($"camera type = {camera.Type}");
+ break;
+ default:
+ base.onKeyDown (key, scanCode, modifiers);
+ return;
+ }
+ updateViewRequested = true;
+ }
+ #endregion
+
+ #region dispose
+ protected override void Dispose (bool disposing) {
+ if (disposing) {
+ if (!isDisposed) {
+ dev.WaitIdle ();
+
+ isRunning = false;
+
+ for (int i = 0; i < swapChain.ImageCount; ++i)
+ frameBuffers[i]?.Dispose ();
+
+ pbrPipeline.Dispose ();
+
+ uiPipeline.Dispose ();
+
+ uiImage?.Dispose ();
+ }
+ }
+
+ base.Dispose (disposing);
+ }
+ #endregion
+ }
+}
+
+
+
+
+
+
+
+// protected override void onKeyDown (Glfw.Key key, int scanCode, Modifier modifiers) {
+// switch (key) {
+// case Glfw.Key.F1:
+// if (modifiers.HasFlag (Modifier.Shift))
+// pbrPipeline.matrices.exposure -= 0.3f;
+// else
+// pbrPipeline.matrices.exposure += 0.3f;
+// break;
+// case Glfw.Key.F2:
+// if (modifiers.HasFlag (Modifier.Shift))
+// pbrPipeline.matrices.gamma -= 0.1f;
+// else
+// pbrPipeline.matrices.gamma += 0.1f;
+// break;
+// case Glfw.Key.F3:
+// if (camera.Type == Camera.CamType.FirstPerson)
+// camera.Type = Camera.CamType.LookAt;
+// else
+// camera.Type = Camera.CamType.FirstPerson;
+// Console.WriteLine ($"camera type = {camera.Type}");
+// break;
+// default:
+// base.onKeyDown (key, scanCode, modifiers);
+// return;
+// }
+// updateViewRequested = true;
+// }
+// #endregion
+
+// protected override void Dispose (bool disposing) {
+// if (disposing) {
+// if (!isDisposed) {
+// dev.WaitIdle ();
+// for (int i = 0; i < swapChain.ImageCount; ++i)
+// frameBuffers[i]?.Dispose ();
+
+// pbrPipeline.Dispose ();
+
+// uiPipeline.Dispose ();
+// descLayoutMain.Dispose ();
+// descriptorPool.Dispose ();
+
+// uiImage.Dispose ();
+
+// crow.Dispose ();
+
+// vkvgDev.Dispose ();
+
+
+// }
+// }
+
+// base.Dispose (disposing);
+// }
+
+
+// }
+//}
--- /dev/null
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you -->
+ <!-- have to teach MSBuild where the Mono copy of the reference asssemblies is -->
+ <TargetIsMono Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'">true</TargetIsMono>
+
+ <!-- Look in the standard install locations -->
+ <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND '$(TargetIsMono)' == 'true' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono>
+ <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND '$(TargetIsMono)' == 'true' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono>
+ <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND '$(TargetIsMono)' == 'true' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono>
+
+ <!-- If we found Mono reference assemblies, then use them -->
+ <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride>
+ <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride>
+ <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride>
+ <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride>
+ <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride>
+ <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride>
+ <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride>
+ <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride>
+ <EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride>
+
+ <!-- Add the Facades directory. Not sure how else to do this. Necessary at least for .NET 4.5 -->
+ <AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths>
+ </PropertyGroup>
+</Project>
+