diff --git a/Common/.vs/config/applicationhost.config b/Common/.vs/config/applicationhost.config index 883679a3..de10b180 100644 --- a/Common/.vs/config/applicationhost.config +++ b/Common/.vs/config/applicationhost.config @@ -155,7 +155,7 @@ - + diff --git a/Common/Common.sln b/Common/Common.sln index 5979e4f4..7f29e0a0 100644 --- a/Common/Common.sln +++ b/Common/Common.sln @@ -203,6 +203,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StreamingProtocol", "Hardwa EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Omni.Data", "Omni.Data\Omni.Data.csproj", "{C0D3BDDE-324A-487D-B3B1-1AF6904F8BA1}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CordoPlot", "CordoPlot\CordoPlot.csproj", "{FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution Utils\DateTimeServerShared\DateTimeServerShared.projitems*{4806d89a-fbfb-41bc-aaa7-2242444bf55a}*SharedItemsImports = 4 @@ -4717,6 +4719,70 @@ Global {C0D3BDDE-324A-487D-B3B1-1AF6904F8BA1}.XP32bit|x64.Build.0 = Release|Any CPU {C0D3BDDE-324A-487D-B3B1-1AF6904F8BA1}.XP32bit|x86.ActiveCfg = Release|Any CPU {C0D3BDDE-324A-487D-B3B1-1AF6904F8BA1}.XP32bit|x86.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}._MANUAL_CONTROL|Any CPU.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}._MANUAL_CONTROL|Any CPU.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}._MANUAL_CONTROL|Mixed Platforms.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}._MANUAL_CONTROL|Mixed Platforms.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}._MANUAL_CONTROL|x64.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}._MANUAL_CONTROL|x64.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}._MANUAL_CONTROL|x86.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}._MANUAL_CONTROL|x86.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.COM|Any CPU.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.COM|Any CPU.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.COM|Mixed Platforms.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.COM|Mixed Platforms.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.COM|x64.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.COM|x64.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.COM|x86.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.COM|x86.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Debug|x64.ActiveCfg = Debug|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Debug|x64.Build.0 = Debug|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Debug|x86.ActiveCfg = Debug|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Debug|x86.Build.0 = Debug|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.GenesisDisplayTool_V01|Any CPU.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.GenesisDisplayTool_V01|Any CPU.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.GenesisDisplayTool_V01|Mixed Platforms.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.GenesisDisplayTool_V01|Mixed Platforms.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.GenesisDisplayTool_V01|x64.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.GenesisDisplayTool_V01|x64.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.GenesisDisplayTool_V01|x86.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.GenesisDisplayTool_V01|x86.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.PerformTest|Any CPU.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.PerformTest|Any CPU.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.PerformTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.PerformTest|Mixed Platforms.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.PerformTest|x64.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.PerformTest|x64.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.PerformTest|x86.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.PerformTest|x86.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Release|Any CPU.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Release|x64.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Release|x64.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Release|x86.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.Release|x86.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.ReleaseTest|Any CPU.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.ReleaseTest|Any CPU.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.ReleaseTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.ReleaseTest|Mixed Platforms.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.ReleaseTest|x64.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.ReleaseTest|x64.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.ReleaseTest|x86.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.ReleaseTest|x86.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.XP32bit|Any CPU.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.XP32bit|Any CPU.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.XP32bit|Mixed Platforms.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.XP32bit|Mixed Platforms.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.XP32bit|x64.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.XP32bit|x64.Build.0 = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.XP32bit|x86.ActiveCfg = Release|Any CPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D}.XP32bit|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -4808,6 +4874,7 @@ Global {C2808A8E-C0BA-44EC-B7B1-1C66AD3D8478} = {43B54F41-6F09-4BCB-9F82-77621275831B} {B6A19B80-0F0F-434C-A754-A7712FC208B2} = {43B54F41-6F09-4BCB-9F82-77621275831B} {C0D3BDDE-324A-487D-B3B1-1AF6904F8BA1} = {68323534-4337-4E3A-89BC-11D8BB55343A} + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D} = {03D4F23E-7E4A-4091-BC96-036C996D351A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4BCB7B69-696C-436A-86F7-C91EA5588164} diff --git a/Common/CommonConsole/CommonConsole.csproj b/Common/CommonConsole/CommonConsole.csproj index 4e1011f6..6fc9d516 100644 --- a/Common/CommonConsole/CommonConsole.csproj +++ b/Common/CommonConsole/CommonConsole.csproj @@ -57,6 +57,10 @@ + + {D0C8D887-ED52-40AB-A069-90BCE0E801E2} + CordonelPreadjustmentUi + {6033FF0C-CF32-4BC5-8EFE-4774CCDC663D} ExchangeHub diff --git a/Common/CommonConsole/Program.cs b/Common/CommonConsole/Program.cs index 28976e38..f779c6d6 100644 --- a/Common/CommonConsole/Program.cs +++ b/Common/CommonConsole/Program.cs @@ -1,18 +1,2045 @@ namespace CommonConsole { - using OmniPlus; + using Newtonsoft.Json; + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Text; + using Xylem.Common.Logic.SoftwareAccessHelper; + using static CordonelPreadjustmentUi.MeterStateControl; public static class Program { + public static List> TempFromTofLUT { get; private set; } + + private static decimal interPol(List> points, double x) + { + var x1 = 0.000; + var y1 = 0.000; + var x2 = 0.000; + var y2 = 0.000; + decimal checkTempMeter; + try + { + + + if ((x <= points[0].Item1) && (x >= points.Last().Item1)) + { + var i = 0; + foreach (var val in points) + { + if (points[i].Item1 <= x) + { + x1 = points[i - 1].Item1; + y1 = points[i - 1].Item2; + x2 = points[i].Item1; + y2 = points[i].Item2; + break; + } + i = i + 1; + } + + checkTempMeter = (decimal)((y2 - y1) / (x2 - x1) * (x - x1) + y1); + } + else + { + checkTempMeter = 1; + } + + return checkTempMeter; + } + catch (Exception ex) + { + + return 2; + } + } + public static void Main() { - var connection = new OmniIrdaConnection("COM36"); - connection.Open(); + TempFromTofLUT = new List>(); + var sb = new StringBuilder(); + sb.AppendLine("ID: 193400388"); + var pcbid = "notFound"; + try + { - var alarmState = connection.ViewAlarmsState(); - connection.Close(); + + var resp = LocalWebRequest.GetRequest($"http://10.49.40.25/MeterProcessState/api/TempFlange/GetLut?PcbId=193400388", 50000); + var cordonelTempLut = JsonConvert.DeserializeObject>(resp); + TempFromTofLUT = new List>(); + + foreach (var item in cordonelTempLut.OrderBy(a => a.RefTempC)) + { + TempFromTofLUT.Add(new Tuple(item.AvgTof, item.RefTempC)); + } + sb.AppendLine("Internal LUT:"); + foreach (var t in TempFromTofLUT) + { + sb.Append("Tof:"); + sb.Append(t.Item1); + sb.Append("=Temp:"); + sb.Append(t.Item2); + sb.Append(","); + } + + } + catch (Exception ex) + { + + + } + + List> coor = new List>(); + //Timestamp;°C; 193400238; 193400388 + + #region data + + + + coor.Add(new Tuple(10.10, 0.0009317245, 0.0009313624)); + coor.Add(new Tuple(9.81, 0.0009318542, 0.0009314209)); + coor.Add(new Tuple(10.00, 0.0009319863, 0.0009312693)); + coor.Add(new Tuple(9.75, 0.0009320255, 0.0009313909)); + coor.Add(new Tuple(9.82, 0.0009320045, 0.0009315933)); + coor.Add(new Tuple(9.84, 0.0009322554, 0.0009312821)); + coor.Add(new Tuple(9.82, 0.0009322489, 0.0009315429)); + coor.Add(new Tuple(9.84, 0.0009323289, 0.0009316588)); + coor.Add(new Tuple(9.79, 0.0009324847, 0.0009316615)); + coor.Add(new Tuple(9.78, 0.0009324545, 0.0009318285)); + coor.Add(new Tuple(9.72, 0.0009325958, 0.0009319999)); + coor.Add(new Tuple(9.70, 0.0009326081, 0.0009320158)); + coor.Add(new Tuple(9.57, 0.0009326783, 0.0009321222)); + coor.Add(new Tuple(9.60, 0.0009327645, 0.0009322475)); + coor.Add(new Tuple(9.61, 0.0009330155, 0.0009323799)); + coor.Add(new Tuple(9.58, 0.0009331648, 0.0009324418)); + coor.Add(new Tuple(9.52, 0.0009332910, 0.0009326170)); + coor.Add(new Tuple(9.46, 0.0009333495, 0.0009326253)); + coor.Add(new Tuple(9.41, 0.0009334993, 0.0009329802)); + coor.Add(new Tuple(9.32, 0.0009334958, 0.0009331025)); + coor.Add(new Tuple(9.21, 0.0009336485, 0.0009330667)); + coor.Add(new Tuple(9.05, 0.0009337929, 0.0009333974)); + coor.Add(new Tuple(9.12, 0.0009338095, 0.0009334398)); + coor.Add(new Tuple(8.98, 0.0009340622, 0.0009334811)); + coor.Add(new Tuple(8.94, 0.0009340982, 0.0009337347)); + coor.Add(new Tuple(8.98, 0.0009348905, 0.0009337901)); + coor.Add(new Tuple(8.95, 0.0009340706, 0.0009339459)); + coor.Add(new Tuple(8.84, 0.0009337085, 0.0009340753)); + coor.Add(new Tuple(8.79, 0.0009348806, 0.0009340820)); + coor.Add(new Tuple(8.78, 0.0009342883, 0.0009342596)); + coor.Add(new Tuple(8.70, 0.0009344591, 0.0009344801)); + coor.Add(new Tuple(8.71, 0.0009346610, 0.0009345716)); + coor.Add(new Tuple(8.72, 0.0009352812, 0.0009345807)); + coor.Add(new Tuple(8.62, 0.0009349881, 0.0009348083)); + coor.Add(new Tuple(8.52, 0.0009353349, 0.0009348688)); + coor.Add(new Tuple(8.54, 0.0009357942, 0.0009348591)); + coor.Add(new Tuple(8.44, 0.0009346835, 0.0009351904)); + coor.Add(new Tuple(8.46, 0.0009357490, 0.0009352258)); + coor.Add(new Tuple(8.42, 0.0009357976, 0.0009353069)); + coor.Add(new Tuple(8.39, 0.0009353907, 0.0009355462)); + coor.Add(new Tuple(8.31, 0.0009363002, 0.0009355807)); + coor.Add(new Tuple(8.26, 0.0009356624, 0.0009356141)); + coor.Add(new Tuple(8.22, 0.0009358669, 0.0009357764)); + coor.Add(new Tuple(8.19, 0.0009364610, 0.0009358550)); + coor.Add(new Tuple(8.10, 0.0009366935, 0.0009359490)); + coor.Add(new Tuple(8.08, 0.0009363875, 0.0009360438)); + coor.Add(new Tuple(7.95, 0.0009366125, 0.0009361753)); + coor.Add(new Tuple(7.97, 0.0009368111, 0.0009362038)); + coor.Add(new Tuple(7.95, 0.0009362553, 0.0009364718)); + coor.Add(new Tuple(7.95, 0.0009371795, 0.0009364464)); + coor.Add(new Tuple(7.93, 0.0009369839, 0.0009365053)); + coor.Add(new Tuple(7.87, 0.0009369547, 0.0009366901)); + coor.Add(new Tuple(7.83, 0.0009374764, 0.0009366330)); + coor.Add(new Tuple(7.77, 0.0009375312, 0.0009368198)); + coor.Add(new Tuple(7.73, 0.0009372382, 0.0009368453)); + coor.Add(new Tuple(7.70, 0.0009374544, 0.0009369843)); + coor.Add(new Tuple(7.69, 0.0009377319, 0.0009371328)); + coor.Add(new Tuple(7.65, 0.0009374129, 0.0009371042)); + coor.Add(new Tuple(7.57, 0.0009375746, 0.0009371954)); + coor.Add(new Tuple(7.56, 0.0009378544, 0.0009372950)); + coor.Add(new Tuple(7.56, 0.0009378222, 0.0009374408)); + coor.Add(new Tuple(7.50, 0.0009381123, 0.0009373864)); + coor.Add(new Tuple(7.46, 0.0009379841, 0.0009374847)); + coor.Add(new Tuple(7.45, 0.0009378127, 0.0009376125)); + coor.Add(new Tuple(7.45, 0.0009383408, 0.0009375005)); + coor.Add(new Tuple(7.43, 0.0009381970, 0.0009377237)); + coor.Add(new Tuple(7.40, 0.0009381001, 0.0009378457)); + coor.Add(new Tuple(7.36, 0.0009385035, 0.0009377838)); + coor.Add(new Tuple(7.32, 0.0009381726, 0.0009379296)); + coor.Add(new Tuple(7.30, 0.0009383066, 0.0009380055)); + coor.Add(new Tuple(7.28, 0.0009388126, 0.0009379777)); + coor.Add(new Tuple(7.25, 0.0009385446, 0.0009380623)); + coor.Add(new Tuple(7.22, 0.0009385502, 0.0009381583)); + coor.Add(new Tuple(7.19, 0.0009389118, 0.0009381565)); + coor.Add(new Tuple(7.15, 0.0009387553, 0.0009381742)); + coor.Add(new Tuple(7.13, 0.0009386484, 0.0009383496)); + coor.Add(new Tuple(7.11, 0.0009389570, 0.0009383310)); + coor.Add(new Tuple(7.09, 0.0009388636, 0.0009384909)); + coor.Add(new Tuple(7.06, 0.0009388889, 0.0009384838)); + coor.Add(new Tuple(7.05, 0.0009390450, 0.0009384580)); + coor.Add(new Tuple(7.03, 0.0009391425, 0.0009385919)); + coor.Add(new Tuple(6.99, 0.0009392278, 0.0009385812)); + coor.Add(new Tuple(6.96, 0.0009394224, 0.0009385801)); + coor.Add(new Tuple(6.93, 0.0009391145, 0.0009387131)); + coor.Add(new Tuple(6.91, 0.0009390976, 0.0009387046)); + coor.Add(new Tuple(6.90, 0.0009390955, 0.0009388036)); + coor.Add(new Tuple(6.87, 0.0009393131, 0.0009389111)); + coor.Add(new Tuple(6.78, 0.0009393185, 0.0009388438)); + coor.Add(new Tuple(6.78, 0.0009395543, 0.0009388836)); + coor.Add(new Tuple(6.78, 0.0009395114, 0.0009390051)); + coor.Add(new Tuple(6.79, 0.0009396300, 0.0009389910)); + coor.Add(new Tuple(6.79, 0.0009398504, 0.0009389783)); + coor.Add(new Tuple(6.77, 0.0009395560, 0.0009390954)); + coor.Add(new Tuple(6.76, 0.0009396861, 0.0009391401)); + coor.Add(new Tuple(6.73, 0.0009396873, 0.0009391024)); + coor.Add(new Tuple(6.70, 0.0009396307, 0.0009391886)); + coor.Add(new Tuple(6.70, 0.0009400727, 0.0009392512)); + coor.Add(new Tuple(6.69, 0.0009397938, 0.0009393017)); + coor.Add(new Tuple(6.67, 0.0009398971, 0.0009393032)); + coor.Add(new Tuple(6.63, 0.0009402760, 0.0009393334)); + coor.Add(new Tuple(6.60, 0.0009399639, 0.0009393408)); + coor.Add(new Tuple(6.54, 0.0009398920, 0.0009393493)); + coor.Add(new Tuple(6.53, 0.0009401758, 0.0009394946)); + coor.Add(new Tuple(6.55, 0.0009402236, 0.0009394248)); + coor.Add(new Tuple(6.54, 0.0009401846, 0.0009395345)); + coor.Add(new Tuple(6.56, 0.0009400929, 0.0009396067)); + coor.Add(new Tuple(6.56, 0.0009404868, 0.0009395008)); + coor.Add(new Tuple(6.54, 0.0009401012, 0.0009396918)); + coor.Add(new Tuple(6.53, 0.0009404846, 0.0009396590)); + coor.Add(new Tuple(6.52, 0.0009404379, 0.0009396131)); + coor.Add(new Tuple(6.50, 0.0009402679, 0.0009397786)); + coor.Add(new Tuple(6.47, 0.0009405283, 0.0009397206)); + coor.Add(new Tuple(6.46, 0.0009405074, 0.0009397263)); + coor.Add(new Tuple(6.43, 0.0009404633, 0.0009398021)); + coor.Add(new Tuple(6.42, 0.0009403997, 0.0009398760)); + coor.Add(new Tuple(6.37, 0.0009404756, 0.0009398622)); + coor.Add(new Tuple(6.35, 0.0009404996, 0.0009398926)); + coor.Add(new Tuple(6.38, 0.0009405749, 0.0009400217)); + coor.Add(new Tuple(6.40, 0.0009407993, 0.0009398738)); + coor.Add(new Tuple(6.40, 0.0009405330, 0.0009399970)); + coor.Add(new Tuple(6.40, 0.0009406919, 0.0009400070)); + coor.Add(new Tuple(6.37, 0.0009407783, 0.0009399934)); + coor.Add(new Tuple(6.34, 0.0009407544, 0.0009401345)); + coor.Add(new Tuple(6.32, 0.0009407202, 0.0009401012)); + coor.Add(new Tuple(6.30, 0.0009405991, 0.0009400787)); + coor.Add(new Tuple(6.32, 0.0009406256, 0.0009401771)); + coor.Add(new Tuple(6.33, 0.0009409239, 0.0009401630)); + coor.Add(new Tuple(6.30, 0.0009409116, 0.0009401970)); + coor.Add(new Tuple(6.22, 0.0009409827, 0.0009402116)); + coor.Add(new Tuple(6.21, 0.0009411043, 0.0009402163)); + coor.Add(new Tuple(6.25, 0.0009408488, 0.0009401863)); + coor.Add(new Tuple(6.26, 0.0009408063, 0.0009403014)); + coor.Add(new Tuple(6.25, 0.0009410406, 0.0009402860)); + coor.Add(new Tuple(6.24, 0.0009409306, 0.0009402761)); + coor.Add(new Tuple(6.24, 0.0009409805, 0.0009403868)); + coor.Add(new Tuple(6.24, 0.0009411695, 0.0009402976)); + coor.Add(new Tuple(6.21, 0.0009411072, 0.0009403317)); + coor.Add(new Tuple(6.17, 0.0009409346, 0.0009404184)); + coor.Add(new Tuple(6.20, 0.0009412436, 0.0009403261)); + coor.Add(new Tuple(6.20, 0.0009409044, 0.0009403909)); + coor.Add(new Tuple(6.18, 0.0009411385, 0.0009404590)); + coor.Add(new Tuple(6.17, 0.0009410397, 0.0009404068)); + coor.Add(new Tuple(6.18, 0.0009409039, 0.0009404267)); + coor.Add(new Tuple(6.18, 0.0009411640, 0.0009405091)); + coor.Add(new Tuple(6.18, 0.0009411380, 0.0009405069)); + coor.Add(new Tuple(6.17, 0.0009412216, 0.0009404970)); + coor.Add(new Tuple(6.16, 0.0009411155, 0.0009405493)); + coor.Add(new Tuple(6.14, 0.0009412507, 0.0009404980)); + coor.Add(new Tuple(6.14, 0.0009413123, 0.0009404714)); + coor.Add(new Tuple(6.14, 0.0009412228, 0.0009405983)); + coor.Add(new Tuple(6.12, 0.0009412621, 0.0009405379)); + coor.Add(new Tuple(6.07, 0.0009411753, 0.0009405935)); + coor.Add(new Tuple(6.06, 0.0009413546, 0.0009406710)); + coor.Add(new Tuple(6.09, 0.0009412583, 0.0009405772)); + coor.Add(new Tuple(6.10, 0.0009411725, 0.0009406582)); + coor.Add(new Tuple(6.10, 0.0009414050, 0.0009406546)); + coor.Add(new Tuple(6.11, 0.0009415060, 0.0009406412)); + coor.Add(new Tuple(6.10, 0.0009413078, 0.0009406396)); + coor.Add(new Tuple(6.08, 0.0009414597, 0.0009406659)); + coor.Add(new Tuple(6.08, 0.0009415165, 0.0009406902)); + coor.Add(new Tuple(6.07, 0.0009414360, 0.0009407049)); + coor.Add(new Tuple(6.07, 0.0009413618, 0.0009407536)); + coor.Add(new Tuple(6.07, 0.0009415008, 0.0009407619)); + coor.Add(new Tuple(6.06, 0.0009413338, 0.0009408128)); + coor.Add(new Tuple(6.02, 0.0009414852, 0.0009408330)); + coor.Add(new Tuple(5.98, 0.0009416246, 0.0009407536)); + coor.Add(new Tuple(6.01, 0.0009415155, 0.0009408267)); + coor.Add(new Tuple(6.04, 0.0009416742, 0.0009407963)); + coor.Add(new Tuple(6.03, 0.0009414530, 0.0009407759)); + coor.Add(new Tuple(6.03, 0.0009415411, 0.0009408657)); + coor.Add(new Tuple(6.03, 0.0009417080, 0.0009408598)); + coor.Add(new Tuple(6.02, 0.0009415011, 0.0009408174)); + coor.Add(new Tuple(5.94, 0.0009414914, 0.0009408865)); + coor.Add(new Tuple(5.92, 0.0009417498, 0.0009409584)); + coor.Add(new Tuple(5.96, 0.0009416663, 0.0009408755)); + coor.Add(new Tuple(5.97, 0.0009417697, 0.0009409182)); + coor.Add(new Tuple(5.98, 0.0009415634, 0.0009409741)); + coor.Add(new Tuple(5.98, 0.0009415848, 0.0009409082)); + coor.Add(new Tuple(5.96, 0.0009414868, 0.0009412042)); + coor.Add(new Tuple(5.97, 0.0009417301, 0.0009415920)); + coor.Add(new Tuple(5.95, 0.0009417323, 0.0009407060)); + coor.Add(new Tuple(5.88, 0.0009416934, 0.0009414498)); + coor.Add(new Tuple(5.91, 0.0009417247, 0.0009417938)); + coor.Add(new Tuple(5.96, 0.0009417678, 0.0009409860)); + coor.Add(new Tuple(5.96, 0.0009417692, 0.0009407815)); + coor.Add(new Tuple(5.94, 0.0009417229, 0.0009407865)); + coor.Add(new Tuple(5.87, 0.0009416936, 0.0009407898)); + coor.Add(new Tuple(5.92, 0.0009415852, 0.0009408063)); + coor.Add(new Tuple(5.93, 0.0009418669, 0.0009410217)); + coor.Add(new Tuple(5.94, 0.0009416046, 0.0009408607)); + coor.Add(new Tuple(5.94, 0.0009416790, 0.0009414107)); + coor.Add(new Tuple(5.95, 0.0009418386, 0.0009412264)); + coor.Add(new Tuple(5.94, 0.0009418145, 0.0009407575)); + coor.Add(new Tuple(5.92, 0.0009418675, 0.0009414792)); + coor.Add(new Tuple(5.91, 0.0009418644, 0.0009415322)); + coor.Add(new Tuple(5.92, 0.0009418465, 0.0009408157)); + coor.Add(new Tuple(5.88, 0.0009419151, 0.0009410903)); + coor.Add(new Tuple(5.84, 0.0009418053, 0.0009410903)); + coor.Add(new Tuple(5.84, 0.0009417329, 0.0009409765)); + coor.Add(new Tuple(5.88, 0.0009417826, 0.0009413362)); + coor.Add(new Tuple(5.90, 0.0009418447, 0.0009412398)); + coor.Add(new Tuple(5.91, 0.0009418135, 0.0009411378)); + coor.Add(new Tuple(5.90, 0.0009419141, 0.0009413604)); + coor.Add(new Tuple(5.91, 0.0009418530, 0.0009411275)); + coor.Add(new Tuple(5.91, 0.0009417182, 0.0009410408)); + coor.Add(new Tuple(5.91, 0.0009419799, 0.0009410355)); + coor.Add(new Tuple(5.90, 0.0009417640, 0.0009408032)); + coor.Add(new Tuple(5.87, 0.0009417533, 0.0009411656)); + coor.Add(new Tuple(5.81, 0.0009418542, 0.0009413709)); + coor.Add(new Tuple(5.84, 0.0009419322, 0.0009410726)); + coor.Add(new Tuple(5.86, 0.0009419374, 0.0009409868)); + coor.Add(new Tuple(5.87, 0.0009417855, 0.0009413786)); + coor.Add(new Tuple(5.87, 0.0009419926, 0.0009411946)); + coor.Add(new Tuple(5.88, 0.0009418505, 0.0009411976)); + coor.Add(new Tuple(5.88, 0.0009419023, 0.0009412169)); + coor.Add(new Tuple(5.88, 0.0009419171, 0.0009409445)); + coor.Add(new Tuple(5.88, 0.0009418139, 0.0009408623)); + coor.Add(new Tuple(5.87, 0.0009418394, 0.0009411396)); + coor.Add(new Tuple(5.87, 0.0009419018, 0.0009413070)); + coor.Add(new Tuple(5.87, 0.0009419805, 0.0009413012)); + coor.Add(new Tuple(5.87, 0.0009420404, 0.0009414154)); + coor.Add(new Tuple(5.87, 0.0009419745, 0.0009411722)); + coor.Add(new Tuple(5.86, 0.0009419317, 0.0009411120)); + coor.Add(new Tuple(5.86, 0.0009419304, 0.0009413750)); + coor.Add(new Tuple(5.86, 0.0009420959, 0.0009410878)); + coor.Add(new Tuple(5.85, 0.0009418246, 0.0009411092)); + coor.Add(new Tuple(5.83, 0.0009420191, 0.0009412691)); + coor.Add(new Tuple(5.81, 0.0009419514, 0.0009411901)); + coor.Add(new Tuple(5.82, 0.0009420392, 0.0009410679)); + coor.Add(new Tuple(5.83, 0.0009420707, 0.0009414244)); + coor.Add(new Tuple(5.84, 0.0009421424, 0.0009412829)); + coor.Add(new Tuple(5.85, 0.0009420311, 0.0009411482)); + coor.Add(new Tuple(5.85, 0.0009420680, 0.0009413005)); + coor.Add(new Tuple(5.84, 0.0009421119, 0.0009412352)); + coor.Add(new Tuple(5.83, 0.0009419482, 0.0009410850)); + coor.Add(new Tuple(5.83, 0.0009420551, 0.0009412840)); + coor.Add(new Tuple(5.84, 0.0009420822, 0.0009413526)); + coor.Add(new Tuple(5.84, 0.0009421035, 0.0009411786)); + coor.Add(new Tuple(5.82, 0.0009420241, 0.0009413988)); + coor.Add(new Tuple(5.81, 0.0009421903, 0.0009414121)); + coor.Add(new Tuple(5.81, 0.0009420683, 0.0009411471)); + coor.Add(new Tuple(5.81, 0.0009419987, 0.0009414718)); + coor.Add(new Tuple(5.82, 0.0009420505, 0.0009413520)); + coor.Add(new Tuple(5.84, 0.0009420493, 0.0009411665)); + coor.Add(new Tuple(5.84, 0.0009419351, 0.0009414054)); + coor.Add(new Tuple(5.85, 0.0009419675, 0.0009412790)); + coor.Add(new Tuple(5.86, 0.0009419395, 0.0009412067)); + coor.Add(new Tuple(5.87, 0.0009420400, 0.0009412817)); + coor.Add(new Tuple(5.89, 0.0009419483, 0.0009413837)); + coor.Add(new Tuple(5.94, 0.0009417819, 0.0009413176)); + coor.Add(new Tuple(5.97, 0.0009418387, 0.0009412305)); + coor.Add(new Tuple(6.02, 0.0009417146, 0.0009411185)); + coor.Add(new Tuple(6.07, 0.0009415496, 0.0009411337)); + coor.Add(new Tuple(6.11, 0.0009415071, 0.0009411972)); + coor.Add(new Tuple(6.17, 0.0009413898, 0.0009408974)); + coor.Add(new Tuple(6.23, 0.0009411458, 0.0009409785)); + coor.Add(new Tuple(6.27, 0.0009411591, 0.0009409947)); + coor.Add(new Tuple(6.33, 0.0009409482, 0.0009406507)); + coor.Add(new Tuple(6.38, 0.0009408468, 0.0009407832)); + coor.Add(new Tuple(6.43, 0.0009407218, 0.0009406631)); + coor.Add(new Tuple(6.47, 0.0009406727, 0.0009403841)); + coor.Add(new Tuple(6.53, 0.0009405466, 0.0009403444)); + coor.Add(new Tuple(6.57, 0.0009404323, 0.0009403462)); + coor.Add(new Tuple(6.62, 0.0009402410, 0.0009402009)); + coor.Add(new Tuple(6.67, 0.0009401271, 0.0009400592)); + coor.Add(new Tuple(6.69, 0.0009399707, 0.0009400954)); + coor.Add(new Tuple(6.75, 0.0009399923, 0.0009399805)); + coor.Add(new Tuple(6.78, 0.0009397686, 0.0009397823)); + coor.Add(new Tuple(6.83, 0.0009397812, 0.0009397756)); + coor.Add(new Tuple(6.86, 0.0009397472, 0.0009395074)); + coor.Add(new Tuple(6.91, 0.0009394626, 0.0009394590)); + coor.Add(new Tuple(6.94, 0.0009393444, 0.0009393790)); + coor.Add(new Tuple(6.98, 0.0009393249, 0.0009391955)); + coor.Add(new Tuple(7.01, 0.0009393229, 0.0009392031)); + coor.Add(new Tuple(7.04, 0.0009391552, 0.0009392404)); + coor.Add(new Tuple(7.07, 0.0009391221, 0.0009389835)); + coor.Add(new Tuple(7.10, 0.0009390964, 0.0009388810)); + coor.Add(new Tuple(7.12, 0.0009390279, 0.0009390029)); + coor.Add(new Tuple(7.15, 0.0009389693, 0.0009387925)); + coor.Add(new Tuple(7.19, 0.0009388283, 0.0009385791)); + coor.Add(new Tuple(7.21, 0.0009386707, 0.0009386550)); + coor.Add(new Tuple(7.24, 0.0009386692, 0.0009384344)); + coor.Add(new Tuple(7.27, 0.0009385935, 0.0009383361)); + coor.Add(new Tuple(7.29, 0.0009385193, 0.0009383813)); + coor.Add(new Tuple(7.32, 0.0009384675, 0.0009382468)); + coor.Add(new Tuple(7.35, 0.0009383768, 0.0009382529)); + coor.Add(new Tuple(7.37, 0.0009384380, 0.0009382422)); + coor.Add(new Tuple(7.39, 0.0009383260, 0.0009380168)); + coor.Add(new Tuple(7.41, 0.0009382394, 0.0009378984)); + coor.Add(new Tuple(7.43, 0.0009383363, 0.0009378834)); + coor.Add(new Tuple(7.46, 0.0009381489, 0.0009378325)); + coor.Add(new Tuple(7.48, 0.0009379826, 0.0009377652)); + coor.Add(new Tuple(7.50, 0.0009380214, 0.0009377371)); + coor.Add(new Tuple(7.51, 0.0009379054, 0.0009376732)); + coor.Add(new Tuple(7.54, 0.0009378160, 0.0009375662)); + coor.Add(new Tuple(7.55, 0.0009381358, 0.0009376761)); + coor.Add(new Tuple(7.58, 0.0009386304, 0.0009374999)); + coor.Add(new Tuple(7.60, 0.0009374223, 0.0009374809)); + coor.Add(new Tuple(7.61, 0.0009376400, 0.0009374583)); + coor.Add(new Tuple(7.63, 0.0009381032, 0.0009371609)); + coor.Add(new Tuple(7.65, 0.0009376058, 0.0009372728)); + coor.Add(new Tuple(7.67, 0.0009374715, 0.0009372572)); + coor.Add(new Tuple(7.70, 0.0009372371, 0.0009371283)); + coor.Add(new Tuple(7.71, 0.0009368628, 0.0009372252)); + coor.Add(new Tuple(7.74, 0.0009375893, 0.0009371295)); + coor.Add(new Tuple(7.75, 0.0009374525, 0.0009369566)); + coor.Add(new Tuple(7.78, 0.0009370569, 0.0009369549)); + coor.Add(new Tuple(7.81, 0.0009374460, 0.0009369516)); + coor.Add(new Tuple(7.85, 0.0009368982, 0.0009367378)); + coor.Add(new Tuple(7.90, 0.0009368430, 0.0009366699)); + coor.Add(new Tuple(7.95, 0.0009369224, 0.0009366512)); + coor.Add(new Tuple(8.01, 0.0009365723, 0.0009364215)); + coor.Add(new Tuple(8.07, 0.0009363235, 0.0009365121)); + coor.Add(new Tuple(8.13, 0.0009366976, 0.0009363659)); + coor.Add(new Tuple(8.19, 0.0009357439, 0.0009362434)); + coor.Add(new Tuple(8.25, 0.0009358305, 0.0009362656)); + coor.Add(new Tuple(8.30, 0.0009363845, 0.0009361282)); + coor.Add(new Tuple(8.35, 0.0009360489, 0.0009359260)); + coor.Add(new Tuple(8.41, 0.0009355861, 0.0009358464)); + coor.Add(new Tuple(8.46, 0.0009358978, 0.0009358006)); + coor.Add(new Tuple(8.52, 0.0009353832, 0.0009356393)); + coor.Add(new Tuple(8.56, 0.0009351364, 0.0009355694)); + coor.Add(new Tuple(8.60, 0.0009355911, 0.0009354857)); + coor.Add(new Tuple(8.65, 0.0009351702, 0.0009353131)); + coor.Add(new Tuple(8.70, 0.0009349810, 0.0009352508)); + coor.Add(new Tuple(8.75, 0.0009352002, 0.0009351507)); + coor.Add(new Tuple(8.78, 0.0009351490, 0.0009349553)); + coor.Add(new Tuple(8.82, 0.0009347961, 0.0009349572)); + coor.Add(new Tuple(8.86, 0.0009349288, 0.0009347569)); + coor.Add(new Tuple(8.90, 0.0009347068, 0.0009346311)); + coor.Add(new Tuple(8.94, 0.0009346959, 0.0009345727)); + coor.Add(new Tuple(8.97, 0.0009345035, 0.0009344999)); + coor.Add(new Tuple(9.01, 0.0009344444, 0.0009344081)); + coor.Add(new Tuple(9.04, 0.0009341606, 0.0009344128)); + coor.Add(new Tuple(9.07, 0.0009344606, 0.0009341940)); + coor.Add(new Tuple(9.11, 0.0009341935, 0.0009340746)); + coor.Add(new Tuple(9.14, 0.0009341176, 0.0009340965)); + coor.Add(new Tuple(9.17, 0.0009343302, 0.0009339580)); + coor.Add(new Tuple(9.19, 0.0009336888, 0.0009338046)); + coor.Add(new Tuple(9.22, 0.0009341522, 0.0009338099)); + coor.Add(new Tuple(9.25, 0.0009337451, 0.0009336659)); + coor.Add(new Tuple(9.27, 0.0009336070, 0.0009335794)); + coor.Add(new Tuple(9.30, 0.0009341125, 0.0009336347)); + coor.Add(new Tuple(9.32, 0.0009337208, 0.0009334683)); + coor.Add(new Tuple(9.35, 0.0009336299, 0.0009334047)); + coor.Add(new Tuple(9.37, 0.0009336843, 0.0009333923)); + coor.Add(new Tuple(9.40, 0.0009336958, 0.0009332126)); + coor.Add(new Tuple(9.42, 0.0009334145, 0.0009331215)); + coor.Add(new Tuple(9.44, 0.0009334313, 0.0009331668)); + coor.Add(new Tuple(9.47, 0.0009333028, 0.0009330430)); + coor.Add(new Tuple(9.48, 0.0009329526, 0.0009330079)); + coor.Add(new Tuple(9.51, 0.0009332065, 0.0009329858)); + coor.Add(new Tuple(9.53, 0.0009332912, 0.0009329088)); + coor.Add(new Tuple(9.54, 0.0009331124, 0.0009328907)); + coor.Add(new Tuple(9.56, 0.0009331269, 0.0009328303)); + coor.Add(new Tuple(9.59, 0.0009331519, 0.0009326775)); + coor.Add(new Tuple(9.60, 0.0009330737, 0.0009326471)); + coor.Add(new Tuple(9.62, 0.0009329226, 0.0009326540)); + coor.Add(new Tuple(9.64, 0.0009328779, 0.0009325501)); + coor.Add(new Tuple(9.66, 0.0009329393, 0.0009325474)); + coor.Add(new Tuple(9.67, 0.0009328391, 0.0009325045)); + coor.Add(new Tuple(9.69, 0.0009326835, 0.0009324222)); + coor.Add(new Tuple(9.71, 0.0009325705, 0.0009324484)); + coor.Add(new Tuple(9.73, 0.0009328459, 0.0009323648)); + coor.Add(new Tuple(9.74, 0.0009326773, 0.0009322533)); + coor.Add(new Tuple(9.76, 0.0009325982, 0.0009322441)); + coor.Add(new Tuple(9.77, 0.0009326087, 0.0009322468)); + coor.Add(new Tuple(9.79, 0.0009323650, 0.0009320992)); + coor.Add(new Tuple(9.81, 0.0009322781, 0.0009321061)); + coor.Add(new Tuple(9.83, 0.0009324122, 0.0009321235)); + coor.Add(new Tuple(9.84, 0.0009323886, 0.0009319524)); + coor.Add(new Tuple(9.86, 0.0009324731, 0.0009320122)); + coor.Add(new Tuple(9.86, 0.0009322669, 0.0009319678)); + coor.Add(new Tuple(9.89, 0.0009321996, 0.0009319566)); + coor.Add(new Tuple(9.90, 0.0009322276, 0.0009318828)); + coor.Add(new Tuple(9.92, 0.0009321949, 0.0009318299)); + coor.Add(new Tuple(9.93, 0.0009320055, 0.0009317665)); + coor.Add(new Tuple(9.93, 0.0009322339, 0.0009317462)); + coor.Add(new Tuple(9.95, 0.0009321397, 0.0009317246)); + coor.Add(new Tuple(9.96, 0.0009320897, 0.0009316617)); + coor.Add(new Tuple(9.97, 0.0009319285, 0.0009316918)); + coor.Add(new Tuple(10.16, 0.0009315183, 0.0009310155)); + coor.Add(new Tuple(10.18, 0.0009316602, 0.0009310540)); + coor.Add(new Tuple(10.18, 0.0009314577, 0.0009309178)); + coor.Add(new Tuple(10.19, 0.0009313902, 0.0009310322)); + coor.Add(new Tuple(10.20, 0.0009314241, 0.0009308608)); + coor.Add(new Tuple(10.21, 0.0009316030, 0.0009309411)); + coor.Add(new Tuple(10.22, 0.0009314598, 0.0009309218)); + coor.Add(new Tuple(10.22, 0.0009315160, 0.0009308720)); + coor.Add(new Tuple(10.24, 0.0009313545, 0.0009308596)); + coor.Add(new Tuple(10.25, 0.0009314186, 0.0009308444)); + coor.Add(new Tuple(10.25, 0.0009313428, 0.0009308495)); + coor.Add(new Tuple(10.26, 0.0009312080, 0.0009306959)); + coor.Add(new Tuple(10.27, 0.0009312667, 0.0009307539)); + coor.Add(new Tuple(10.28, 0.0009313274, 0.0009307461)); + coor.Add(new Tuple(10.29, 0.0009311137, 0.0009306828)); + coor.Add(new Tuple(10.28, 0.0009313329, 0.0009307306)); + coor.Add(new Tuple(10.30, 0.0009312713, 0.0009307243)); + coor.Add(new Tuple(10.31, 0.0009311769, 0.0009306447)); + coor.Add(new Tuple(10.31, 0.0009313179, 0.0009306227)); + coor.Add(new Tuple(10.32, 0.0009312226, 0.0009306379)); + coor.Add(new Tuple(10.32, 0.0009310535, 0.0009305935)); + coor.Add(new Tuple(10.33, 0.0009311209, 0.0009306259)); + coor.Add(new Tuple(10.34, 0.0009312178, 0.0009305436)); + coor.Add(new Tuple(10.35, 0.0009311683, 0.0009305449)); + coor.Add(new Tuple(10.36, 0.0009311475, 0.0009305647)); + coor.Add(new Tuple(10.38, 0.0009311111, 0.0009305474)); + coor.Add(new Tuple(10.40, 0.0009311635, 0.0009304658)); + coor.Add(new Tuple(10.42, 0.0009311905, 0.0009304969)); + coor.Add(new Tuple(10.46, 0.0009309443, 0.0009303542)); + coor.Add(new Tuple(10.49, 0.0009308412, 0.0009303196)); + coor.Add(new Tuple(10.54, 0.0009308762, 0.0009303256)); + coor.Add(new Tuple(10.58, 0.0009307760, 0.0009302838)); + coor.Add(new Tuple(10.63, 0.0009306610, 0.0009302366)); + coor.Add(new Tuple(10.68, 0.0009307205, 0.0009302061)); + coor.Add(new Tuple(10.73, 0.0009305617, 0.0009300919)); + coor.Add(new Tuple(10.78, 0.0009304028, 0.0009300284)); + coor.Add(new Tuple(10.81, 0.0009304144, 0.0009300081)); + coor.Add(new Tuple(10.86, 0.0009301557, 0.0009298957)); + coor.Add(new Tuple(10.90, 0.0009300646, 0.0009297596)); + coor.Add(new Tuple(10.94, 0.0009300780, 0.0009297966)); + coor.Add(new Tuple(10.97, 0.0009298892, 0.0009296674)); + coor.Add(new Tuple(11.01, 0.0009298803, 0.0009295408)); + coor.Add(new Tuple(11.05, 0.0009297899, 0.0009295864)); + coor.Add(new Tuple(11.08, 0.0009297309, 0.0009294669)); + coor.Add(new Tuple(11.12, 0.0009296030, 0.0009294045)); + coor.Add(new Tuple(11.15, 0.0009296527, 0.0009293781)); + coor.Add(new Tuple(11.18, 0.0009294280, 0.0009292265)); + coor.Add(new Tuple(11.21, 0.0009293623, 0.0009285286)); + coor.Add(new Tuple(11.23, 0.0009293896, 0.0009288256)); + coor.Add(new Tuple(11.28, 0.0009291721, 0.0009293067)); + coor.Add(new Tuple(11.30, 0.0009292411, 0.0009292407)); + coor.Add(new Tuple(11.33, 0.0009292103, 0.0009289049)); + coor.Add(new Tuple(11.35, 0.0009291519, 0.0009293053)); + coor.Add(new Tuple(11.37, 0.0009289842, 0.0009285642)); + coor.Add(new Tuple(11.40, 0.0009290290, 0.0009291023)); + coor.Add(new Tuple(11.42, 0.0009288786, 0.0009284351)); + coor.Add(new Tuple(11.46, 0.0009288325, 0.0009285912)); + coor.Add(new Tuple(11.47, 0.0009287742, 0.0009289250)); + coor.Add(new Tuple(11.50, 0.0009287067, 0.0009280965)); + coor.Add(new Tuple(11.51, 0.0009287061, 0.0009285916)); + coor.Add(new Tuple(11.53, 0.0009285996, 0.0009287491)); + coor.Add(new Tuple(11.55, 0.0009284589, 0.0009281419)); + coor.Add(new Tuple(11.57, 0.0009285434, 0.0009285808)); + coor.Add(new Tuple(11.60, 0.0009285188, 0.0009285348)); + coor.Add(new Tuple(11.62, 0.0009284459, 0.0009280283)); + coor.Add(new Tuple(11.63, 0.0009285806, 0.0009279744)); + coor.Add(new Tuple(11.65, 0.0009284215, 0.0009282071)); + coor.Add(new Tuple(11.67, 0.0009282569, 0.0009278678)); + coor.Add(new Tuple(11.69, 0.0009283971, 0.0009278536)); + coor.Add(new Tuple(11.71, 0.0009282565, 0.0009281944)); + coor.Add(new Tuple(11.73, 0.0009282056, 0.0009276079)); + coor.Add(new Tuple(11.74, 0.0009282664, 0.0009278366)); + coor.Add(new Tuple(11.76, 0.0009281613, 0.0009281715)); + coor.Add(new Tuple(11.78, 0.0009280060, 0.0009275060)); + coor.Add(new Tuple(11.79, 0.0009281376, 0.0009275734)); + coor.Add(new Tuple(11.82, 0.0009280451, 0.0009277638)); + coor.Add(new Tuple(11.83, 0.0009280071, 0.0009272826)); + coor.Add(new Tuple(11.85, 0.0009280547, 0.0009273300)); + coor.Add(new Tuple(11.86, 0.0009279877, 0.0009275244)); + coor.Add(new Tuple(11.87, 0.0009278383, 0.0009275816)); + coor.Add(new Tuple(11.89, 0.0009278263, 0.0009273308)); + coor.Add(new Tuple(11.90, 0.0009278209, 0.0009274052)); + coor.Add(new Tuple(11.92, 0.0009277908, 0.0009271845)); + coor.Add(new Tuple(11.93, 0.0009277455, 0.0009272302)); + coor.Add(new Tuple(11.95, 0.0009278102, 0.0009271769)); + coor.Add(new Tuple(11.96, 0.0009276986, 0.0009268716)); + coor.Add(new Tuple(11.98, 0.0009276814, 0.0009273021)); + coor.Add(new Tuple(11.99, 0.0009276186, 0.0009269774)); + coor.Add(new Tuple(12.00, 0.0009275674, 0.0009267554)); + coor.Add(new Tuple(12.01, 0.0009276210, 0.0009272701)); + coor.Add(new Tuple(12.02, 0.0009275430, 0.0009270710)); + coor.Add(new Tuple(12.03, 0.0009274598, 0.0009269395)); + coor.Add(new Tuple(12.04, 0.0009275129, 0.0009270706)); + coor.Add(new Tuple(12.05, 0.0009275078, 0.0009268032)); + coor.Add(new Tuple(12.06, 0.0009275179, 0.0009267642)); + coor.Add(new Tuple(12.08, 0.0009274130, 0.0009268244)); + coor.Add(new Tuple(12.08, 0.0009274175, 0.0009269601)); + coor.Add(new Tuple(12.09, 0.0009272946, 0.0009266840)); + coor.Add(new Tuple(12.11, 0.0009273214, 0.0009268230)); + coor.Add(new Tuple(12.11, 0.0009273478, 0.0009269325)); + coor.Add(new Tuple(12.12, 0.0009272765, 0.0009265381)); + coor.Add(new Tuple(12.13, 0.0009273019, 0.0009269679)); + coor.Add(new Tuple(12.14, 0.0009272486, 0.0009267867)); + coor.Add(new Tuple(12.15, 0.0009272665, 0.0009264797)); + coor.Add(new Tuple(12.16, 0.0009271729, 0.0009267352)); + coor.Add(new Tuple(12.17, 0.0009271170, 0.0009266333)); + coor.Add(new Tuple(12.17, 0.0009272042, 0.0009266053)); + coor.Add(new Tuple(12.18, 0.0009271813, 0.0009265888)); + coor.Add(new Tuple(12.20, 0.0009271200, 0.0009267043)); + coor.Add(new Tuple(12.21, 0.0009270792, 0.0009266809)); + coor.Add(new Tuple(12.22, 0.0009271468, 0.0009265804)); + coor.Add(new Tuple(12.22, 0.0009271061, 0.0009264252)); + coor.Add(new Tuple(12.23, 0.0009270075, 0.0009265419)); + coor.Add(new Tuple(12.25, 0.0009270384, 0.0009265321)); + coor.Add(new Tuple(12.25, 0.0009269327, 0.0009264534)); + coor.Add(new Tuple(12.26, 0.0009269025, 0.0009264241)); + coor.Add(new Tuple(12.26, 0.0009269631, 0.0009265965)); + coor.Add(new Tuple(12.28, 0.0009268993, 0.0009262105)); + coor.Add(new Tuple(12.28, 0.0009269778, 0.0009264951)); + coor.Add(new Tuple(12.29, 0.0009269631, 0.0009265369)); + coor.Add(new Tuple(12.30, 0.0009268519, 0.0009263372)); + coor.Add(new Tuple(12.31, 0.0009268997, 0.0009263795)); + coor.Add(new Tuple(12.31, 0.0009268909, 0.0009263650)); + coor.Add(new Tuple(12.32, 0.0009269020, 0.0009261799)); + coor.Add(new Tuple(12.33, 0.0009267882, 0.0009261650)); + coor.Add(new Tuple(12.33, 0.0009267782, 0.0009263600)); + coor.Add(new Tuple(12.34, 0.0009267632, 0.0009262382)); + coor.Add(new Tuple(12.34, 0.0009267919, 0.0009261634)); + coor.Add(new Tuple(12.35, 0.0009268008, 0.0009263673)); + coor.Add(new Tuple(12.35, 0.0009267404, 0.0009260819)); + coor.Add(new Tuple(12.37, 0.0009267686, 0.0009262285)); + coor.Add(new Tuple(12.38, 0.0009267743, 0.0009262781)); + coor.Add(new Tuple(12.38, 0.0009266349, 0.0009259984)); + coor.Add(new Tuple(12.38, 0.0009267450, 0.0009260281)); + coor.Add(new Tuple(12.39, 0.0009267488, 0.0009261732)); + coor.Add(new Tuple(12.40, 0.0009266197, 0.0009260134)); + coor.Add(new Tuple(12.40, 0.0009267172, 0.0009259989)); + coor.Add(new Tuple(12.41, 0.0009266573, 0.0009260907)); + coor.Add(new Tuple(12.41, 0.0009266061, 0.0009261140)); + coor.Add(new Tuple(12.42, 0.0009266826, 0.0009260071)); + coor.Add(new Tuple(12.42, 0.0009266889, 0.0009260534)); + coor.Add(new Tuple(12.44, 0.0009266117, 0.0009259444)); + coor.Add(new Tuple(12.44, 0.0009265995, 0.0009260371)); + coor.Add(new Tuple(12.45, 0.0009266238, 0.0009259146)); + coor.Add(new Tuple(12.46, 0.0009264906, 0.0009259117)); + coor.Add(new Tuple(12.47, 0.0009265726, 0.0009260268)); + coor.Add(new Tuple(12.49, 0.0009265423, 0.0009259624)); + coor.Add(new Tuple(12.51, 0.0009264779, 0.0009257797)); + coor.Add(new Tuple(12.54, 0.0009264914, 0.0009259816)); + coor.Add(new Tuple(12.58, 0.0009264172, 0.0009258175)); + coor.Add(new Tuple(12.62, 0.0009262913, 0.0009257229)); + coor.Add(new Tuple(12.67, 0.0009262772, 0.0009257685)); + coor.Add(new Tuple(12.72, 0.0009261649, 0.0009256273)); + coor.Add(new Tuple(12.77, 0.0009260569, 0.0009255312)); + coor.Add(new Tuple(12.81, 0.0009259722, 0.0009256327)); + coor.Add(new Tuple(12.86, 0.0009258860, 0.0009256065)); + coor.Add(new Tuple(12.90, 0.0009257805, 0.0009254138)); + coor.Add(new Tuple(12.94, 0.0009257730, 0.0009254515)); + coor.Add(new Tuple(12.99, 0.0009257198, 0.0009254040)); + coor.Add(new Tuple(13.03, 0.0009255515, 0.0009251797)); + coor.Add(new Tuple(13.06, 0.0009254945, 0.0009252941)); + coor.Add(new Tuple(13.09, 0.0009254389, 0.0009251422)); + coor.Add(new Tuple(13.13, 0.0009253079, 0.0009249515)); + coor.Add(new Tuple(13.16, 0.0009252173, 0.0009250584)); + coor.Add(new Tuple(13.20, 0.0009251913, 0.0009249870)); + coor.Add(new Tuple(13.23, 0.0009251651, 0.0009249035)); + coor.Add(new Tuple(13.26, 0.0009250214, 0.0009248036)); + coor.Add(new Tuple(13.29, 0.0009256508, 0.0009248313)); + coor.Add(new Tuple(13.32, 0.0009246497, 0.0009247186)); + coor.Add(new Tuple(13.34, 0.0009248597, 0.0009245715)); + coor.Add(new Tuple(13.37, 0.0009250782, 0.0009245903)); + coor.Add(new Tuple(13.39, 0.0009242758, 0.0009244257)); + coor.Add(new Tuple(13.42, 0.0009247012, 0.0009245159)); + coor.Add(new Tuple(13.44, 0.0009244361, 0.0009243442)); + coor.Add(new Tuple(13.46, 0.0009236454, 0.0009243614)); + coor.Add(new Tuple(13.49, 0.0009247895, 0.0009244159)); + coor.Add(new Tuple(13.52, 0.0009245090, 0.0009241692)); + coor.Add(new Tuple(13.53, 0.0009243097, 0.0009241922)); + coor.Add(new Tuple(13.55, 0.0009248211, 0.0009241904)); + coor.Add(new Tuple(13.58, 0.0009241983, 0.0009239890)); + coor.Add(new Tuple(13.59, 0.0009238063, 0.0009240133)); + coor.Add(new Tuple(13.62, 0.0009242882, 0.0009240030)); + coor.Add(new Tuple(13.63, 0.0009242466, 0.0009238885)); + coor.Add(new Tuple(13.65, 0.0009238847, 0.0009238221)); + coor.Add(new Tuple(13.67, 0.0009240113, 0.0009238894)); + coor.Add(new Tuple(13.69, 0.0009242760, 0.0009238230)); + coor.Add(new Tuple(13.71, 0.0009236435, 0.0009237099)); + coor.Add(new Tuple(13.72, 0.0009243267, 0.0009237672)); + coor.Add(new Tuple(13.75, 0.0009241566, 0.0009235843)); + coor.Add(new Tuple(13.76, 0.0009237042, 0.0009235439)); + coor.Add(new Tuple(13.78, 0.0009240643, 0.0009236129)); + coor.Add(new Tuple(13.79, 0.0009237718, 0.0009234689)); + coor.Add(new Tuple(13.81, 0.0009234813, 0.0009234574)); + coor.Add(new Tuple(13.82, 0.0009238310, 0.0009235118)); + coor.Add(new Tuple(13.84, 0.0009241757, 0.0009233825)); + coor.Add(new Tuple(13.86, 0.0009236306, 0.0009233052)); + coor.Add(new Tuple(13.88, 0.0009238392, 0.0009234016)); + coor.Add(new Tuple(13.89, 0.0009239030, 0.0009233030)); + coor.Add(new Tuple(13.91, 0.0009233178, 0.0009232032)); + coor.Add(new Tuple(13.92, 0.0009238367, 0.0009231597)); + coor.Add(new Tuple(13.93, 0.0009235069, 0.0009230947)); + coor.Add(new Tuple(13.95, 0.0009233517, 0.0009231790)); + coor.Add(new Tuple(13.97, 0.0009238359, 0.0009231082)); + coor.Add(new Tuple(13.97, 0.0009236058, 0.0009229789)); + coor.Add(new Tuple(13.98, 0.0009233749, 0.0009231017)); + coor.Add(new Tuple(14.00, 0.0009236375, 0.0009229789)); + coor.Add(new Tuple(14.01, 0.0009238002, 0.0009228455)); + coor.Add(new Tuple(14.01, 0.0009233088, 0.0009229696)); + coor.Add(new Tuple(14.03, 0.0009234623, 0.0009228489)); + coor.Add(new Tuple(14.05, 0.0009233423, 0.0009228126)); + coor.Add(new Tuple(14.05, 0.0009229767, 0.0009228494)); + coor.Add(new Tuple(14.06, 0.0009232975, 0.0009227899)); + coor.Add(new Tuple(14.08, 0.0009234488, 0.0009227468)); + coor.Add(new Tuple(14.08, 0.0009232530, 0.0009227906)); + coor.Add(new Tuple(14.09, 0.0009233197, 0.0009227887)); + coor.Add(new Tuple(14.10, 0.0009232918, 0.0009226433)); + coor.Add(new Tuple(14.11, 0.0009231164, 0.0009226519)); + coor.Add(new Tuple(14.12, 0.0009231715, 0.0009226810)); + coor.Add(new Tuple(14.14, 0.0009229894, 0.0009225411)); + coor.Add(new Tuple(14.14, 0.0009230567, 0.0009226543)); + coor.Add(new Tuple(14.15, 0.0009231195, 0.0009225989)); + coor.Add(new Tuple(14.16, 0.0009230131, 0.0009224890)); + coor.Add(new Tuple(14.17, 0.0009229226, 0.0009226106)); + coor.Add(new Tuple(14.17, 0.0009232583, 0.0009225638)); + coor.Add(new Tuple(14.18, 0.0009230299, 0.0009224650)); + coor.Add(new Tuple(14.20, 0.0009229438, 0.0009224706)); + coor.Add(new Tuple(14.21, 0.0009230703, 0.0009224515)); + coor.Add(new Tuple(14.21, 0.0009227826, 0.0009224336)); + coor.Add(new Tuple(14.22, 0.0009227437, 0.0009223687)); + coor.Add(new Tuple(14.24, 0.0009229405, 0.0009224016)); + coor.Add(new Tuple(14.24, 0.0009227978, 0.0009223865)); + coor.Add(new Tuple(14.25, 0.0009227737, 0.0009224028)); + coor.Add(new Tuple(14.26, 0.0009229611, 0.0009223390)); + coor.Add(new Tuple(14.27, 0.0009227461, 0.0009223682)); + coor.Add(new Tuple(14.27, 0.0009227247, 0.0009223776)); + coor.Add(new Tuple(14.28, 0.0009229197, 0.0009222557)); + coor.Add(new Tuple(14.28, 0.0009227678, 0.0009222619)); + coor.Add(new Tuple(14.30, 0.0009225765, 0.0009222657)); + coor.Add(new Tuple(14.30, 0.0009226870, 0.0009222043)); + coor.Add(new Tuple(14.31, 0.0009226716, 0.0009222331)); + coor.Add(new Tuple(14.31, 0.0009226572, 0.0009222546)); + coor.Add(new Tuple(14.32, 0.0009228187, 0.0009221876)); + coor.Add(new Tuple(14.34, 0.0009226889, 0.0009221477)); + coor.Add(new Tuple(14.34, 0.0009227897, 0.0009222345)); + coor.Add(new Tuple(14.35, 0.0009228289, 0.0009221439)); + coor.Add(new Tuple(14.34, 0.0009225831, 0.0009220865)); + coor.Add(new Tuple(14.35, 0.0009226884, 0.0009221398)); + coor.Add(new Tuple(14.36, 0.0009226249, 0.0009220275)); + coor.Add(new Tuple(14.37, 0.0009225029, 0.0009220588)); + coor.Add(new Tuple(14.37, 0.0009227572, 0.0009221408)); + coor.Add(new Tuple(14.38, 0.0009226300, 0.0009219975)); + coor.Add(new Tuple(14.39, 0.0009225143, 0.0009220659)); + coor.Add(new Tuple(14.39, 0.0009226646, 0.0009220870)); + coor.Add(new Tuple(14.41, 0.0009226990, 0.0009220069)); + coor.Add(new Tuple(14.41, 0.0009225898, 0.0009219437)); + coor.Add(new Tuple(14.41, 0.0009225769, 0.0009219777)); + coor.Add(new Tuple(14.41, 0.0009226696, 0.0009219630)); + coor.Add(new Tuple(14.42, 0.0009223530, 0.0009219358)); + coor.Add(new Tuple(14.43, 0.0009226023, 0.0009219003)); + coor.Add(new Tuple(14.44, 0.0009225862, 0.0009219271)); + coor.Add(new Tuple(14.44, 0.0009225243, 0.0009219159)); + coor.Add(new Tuple(14.44, 0.0009226635, 0.0009219352)); + coor.Add(new Tuple(14.44, 0.0009226045, 0.0009218818)); + coor.Add(new Tuple(14.46, 0.0009225399, 0.0009219426)); + coor.Add(new Tuple(14.47, 0.0009225308, 0.0009218882)); + coor.Add(new Tuple(14.49, 0.0009225945, 0.0009217699)); + coor.Add(new Tuple(14.50, 0.0009223388, 0.0009218694)); + coor.Add(new Tuple(14.53, 0.0009223924, 0.0009218007)); + coor.Add(new Tuple(14.57, 0.0009223423, 0.0009217544)); + coor.Add(new Tuple(14.60, 0.0009222518, 0.0009218156)); + coor.Add(new Tuple(14.64, 0.0009223594, 0.0009217302)); + coor.Add(new Tuple(14.70, 0.0009221901, 0.0009216538)); + coor.Add(new Tuple(14.75, 0.0009220674, 0.0009216207)); + coor.Add(new Tuple(14.79, 0.0009220688, 0.0009215844)); + coor.Add(new Tuple(14.84, 0.0009218958, 0.0009214500)); + coor.Add(new Tuple(14.90, 0.0009217350, 0.0009214325)); + coor.Add(new Tuple(14.93, 0.0009217711, 0.0009213889)); + coor.Add(new Tuple(14.97, 0.0009215234, 0.0009212360)); + coor.Add(new Tuple(15.02, 0.0009215650, 0.0009212912)); + coor.Add(new Tuple(15.06, 0.0009215734, 0.0009212047)); + coor.Add(new Tuple(15.09, 0.0009213755, 0.0009210938)); + coor.Add(new Tuple(15.13, 0.0009212594, 0.0009211098)); + coor.Add(new Tuple(15.16, 0.0009213556, 0.0009210202)); + coor.Add(new Tuple(15.20, 0.0009212123, 0.0009209288)); + coor.Add(new Tuple(15.22, 0.0009210759, 0.0009208453)); + coor.Add(new Tuple(15.26, 0.0009210833, 0.0009208176)); + coor.Add(new Tuple(15.29, 0.0009209007, 0.0009207767)); + coor.Add(new Tuple(15.32, 0.0009208874, 0.0009206728)); + coor.Add(new Tuple(15.35, 0.0009209485, 0.0009206177)); + coor.Add(new Tuple(15.38, 0.0009208131, 0.0009205562)); + coor.Add(new Tuple(15.39, 0.0009208033, 0.0009205611)); + coor.Add(new Tuple(15.42, 0.0009208257, 0.0009204215)); + coor.Add(new Tuple(15.45, 0.0009205887, 0.0009203915)); + coor.Add(new Tuple(15.47, 0.0009205424, 0.0009203976)); + coor.Add(new Tuple(15.49, 0.0009205688, 0.0009202055)); + coor.Add(new Tuple(15.52, 0.0009204884, 0.0009202576)); + coor.Add(new Tuple(15.54, 0.0009205558, 0.0009202066)); + coor.Add(new Tuple(15.55, 0.0009204032, 0.0009200945)); + coor.Add(new Tuple(15.58, 0.0009203967, 0.0009200986)); + coor.Add(new Tuple(15.60, 0.0009204246, 0.0009200882)); + coor.Add(new Tuple(15.62, 0.0009203905, 0.0009199848)); + coor.Add(new Tuple(15.64, 0.0009202779, 0.0009199449)); + coor.Add(new Tuple(15.66, 0.0009202767, 0.0009199339)); + coor.Add(new Tuple(15.68, 0.0009202394, 0.0009197915)); + coor.Add(new Tuple(15.69, 0.0009201708, 0.0009197671)); + coor.Add(new Tuple(15.71, 0.0009200606, 0.0009197865)); + coor.Add(new Tuple(15.72, 0.0009201347, 0.0009197700)); + coor.Add(new Tuple(15.75, 0.0009201313, 0.0009197266)); + coor.Add(new Tuple(15.76, 0.0009200604, 0.0009196867)); + coor.Add(new Tuple(15.78, 0.0009200641, 0.0009196504)); + coor.Add(new Tuple(15.80, 0.0009199943, 0.0009195846)); + coor.Add(new Tuple(15.81, 0.0009198963, 0.0009195970)); + coor.Add(new Tuple(15.83, 0.0009199922, 0.0009195462)); + coor.Add(new Tuple(15.85, 0.0009198963, 0.0009194725)); + coor.Add(new Tuple(15.86, 0.0009198341, 0.0009194463)); + coor.Add(new Tuple(15.87, 0.0009198998, 0.0009191313)); + coor.Add(new Tuple(15.89, 0.0009197094, 0.0009190972)); + coor.Add(new Tuple(15.91, 0.0009198394, 0.0009201573)); + coor.Add(new Tuple(15.92, 0.0009197782, 0.0009188317)); + coor.Add(new Tuple(15.94, 0.0009197170, 0.0009192731)); + coor.Add(new Tuple(15.95, 0.0009197463, 0.0009192407)); + coor.Add(new Tuple(15.95, 0.0009196576, 0.0009190555)); + coor.Add(new Tuple(15.97, 0.0009195708, 0.0009189014)); + coor.Add(new Tuple(15.98, 0.0009195702, 0.0009193802)); + coor.Add(new Tuple(15.99, 0.0009196590, 0.0009188708)); + coor.Add(new Tuple(16.01, 0.0009194687, 0.0009188429)); + coor.Add(new Tuple(16.01, 0.0009196061, 0.0009194285)); + coor.Add(new Tuple(16.03, 0.0009195829, 0.0009186794)); + coor.Add(new Tuple(16.04, 0.0009194228, 0.0009188748)); + coor.Add(new Tuple(16.05, 0.0009195300, 0.0009190581)); + coor.Add(new Tuple(16.06, 0.0009194879, 0.0009185961)); + coor.Add(new Tuple(16.07, 0.0009193829, 0.0009187087)); + coor.Add(new Tuple(16.08, 0.0009193892, 0.0009186632)); + coor.Add(new Tuple(16.08, 0.0009193948, 0.0009184256)); + coor.Add(new Tuple(16.09, 0.0009193525, 0.0009186335)); + coor.Add(new Tuple(16.11, 0.0009193113, 0.0009188034)); + coor.Add(new Tuple(16.12, 0.0009193670, 0.0009184731)); + coor.Add(new Tuple(16.12, 0.0009192992, 0.0009188418)); + coor.Add(new Tuple(16.14, 0.0009193348, 0.0009187297)); + coor.Add(new Tuple(16.14, 0.0009192555, 0.0009183599)); + coor.Add(new Tuple(16.16, 0.0009191880, 0.0009186894)); + coor.Add(new Tuple(16.17, 0.0009192761, 0.0009185840)); + coor.Add(new Tuple(16.17, 0.0009191489, 0.0009184676)); + coor.Add(new Tuple(16.18, 0.0009191305, 0.0009185374)); + coor.Add(new Tuple(16.19, 0.0009191913, 0.0009185251)); + coor.Add(new Tuple(16.20, 0.0009190998, 0.0009185870)); + coor.Add(new Tuple(16.21, 0.0009190826, 0.0009191439)); + coor.Add(new Tuple(16.22, 0.0009191420, 0.0009185490)); + coor.Add(new Tuple(16.23, 0.0009190928, 0.0009183279)); + coor.Add(new Tuple(16.24, 0.0009191299, 0.0009186158)); + coor.Add(new Tuple(16.24, 0.0009189832, 0.0009184048)); + coor.Add(new Tuple(16.25, 0.0009190472, 0.0009181782)); + coor.Add(new Tuple(16.26, 0.0009190589, 0.0009184614)); + coor.Add(new Tuple(16.26, 0.0009189653, 0.0009186417)); + coor.Add(new Tuple(16.28, 0.0009189504, 0.0009184331)); + coor.Add(new Tuple(16.28, 0.0009190389, 0.0009185140)); + coor.Add(new Tuple(16.28, 0.0009189981, 0.0009186814)); + coor.Add(new Tuple(16.30, 0.0009189200, 0.0009181201)); + coor.Add(new Tuple(16.30, 0.0009189752, 0.0009185516)); + coor.Add(new Tuple(16.32, 0.0009188791, 0.0009183504)); + coor.Add(new Tuple(16.33, 0.0009188768, 0.0009181750)); + coor.Add(new Tuple(16.33, 0.0009189123, 0.0009185834)); + coor.Add(new Tuple(16.34, 0.0009188482, 0.0009184026)); + coor.Add(new Tuple(16.34, 0.0009188582, 0.0009182219)); + coor.Add(new Tuple(16.34, 0.0009188491, 0.0009184536)); + coor.Add(new Tuple(16.36, 0.0009188042, 0.0009185094)); + coor.Add(new Tuple(16.36, 0.0009188524, 0.0009182611)); + coor.Add(new Tuple(16.37, 0.0009188375, 0.0009183347)); + coor.Add(new Tuple(16.37, 0.0009187811, 0.0009182451)); + coor.Add(new Tuple(16.38, 0.0009188079, 0.0009180909)); + coor.Add(new Tuple(16.39, 0.0009187458, 0.0009182204)); + coor.Add(new Tuple(16.39, 0.0009187206, 0.0009183494)); + coor.Add(new Tuple(16.40, 0.0009187782, 0.0009181984)); + coor.Add(new Tuple(16.40, 0.0009188090, 0.0009182438)); + coor.Add(new Tuple(16.41, 0.0009187010, 0.0009183840)); + coor.Add(new Tuple(16.41, 0.0009187648, 0.0009180909)); + coor.Add(new Tuple(16.42, 0.0009187637, 0.0009182123)); + coor.Add(new Tuple(16.43, 0.0009186622, 0.0009179919)); + coor.Add(new Tuple(16.43, 0.0009187622, 0.0009180605)); + coor.Add(new Tuple(16.43, 0.0009186810, 0.0009181921)); + coor.Add(new Tuple(16.44, 0.0009186346, 0.0009179141)); + coor.Add(new Tuple(16.44, 0.0009186197, 0.0009179761)); + coor.Add(new Tuple(16.45, 0.0009186740, 0.0009182725)); + coor.Add(new Tuple(16.46, 0.0009186862, 0.0009180804)); + coor.Add(new Tuple(16.47, 0.0009186112, 0.0009180053)); + coor.Add(new Tuple(16.50, 0.0009186963, 0.0009181139)); + coor.Add(new Tuple(16.51, 0.0009186216, 0.0009179148)); + coor.Add(new Tuple(16.54, 0.0009185650, 0.0009178794)); + coor.Add(new Tuple(16.57, 0.0009185660, 0.0009179758)); + coor.Add(new Tuple(16.61, 0.0009184199, 0.0009177715)); + coor.Add(new Tuple(16.66, 0.0009184206, 0.0009178415)); + coor.Add(new Tuple(16.71, 0.0009182978, 0.0009178984)); + coor.Add(new Tuple(16.76, 0.0009182220, 0.0009176801)); + coor.Add(new Tuple(16.82, 0.0009182476, 0.0009176100)); + coor.Add(new Tuple(16.86, 0.0009180973, 0.0009177963)); + coor.Add(new Tuple(16.91, 0.0009179995, 0.0009175752)); + coor.Add(new Tuple(16.95, 0.0009179439, 0.0009174019)); + coor.Add(new Tuple(16.99, 0.0009179043, 0.0009174032)); + coor.Add(new Tuple(17.03, 0.0009177240, 0.0009173407)); + coor.Add(new Tuple(17.07, 0.0009176962, 0.0009171077)); + coor.Add(new Tuple(17.11, 0.0009176693, 0.0009173694)); + coor.Add(new Tuple(17.14, 0.0009174913, 0.0009171935)); + coor.Add(new Tuple(17.18, 0.0009175348, 0.0009171322)); + coor.Add(new Tuple(17.21, 0.0009174960, 0.0009172245)); + coor.Add(new Tuple(17.25, 0.0009173715, 0.0009169590)); + coor.Add(new Tuple(17.28, 0.0009173298, 0.0009169916)); + coor.Add(new Tuple(17.31, 0.0009172530, 0.0009169316)); + coor.Add(new Tuple(17.34, 0.0009171749, 0.0009167340)); + coor.Add(new Tuple(17.36, 0.0009171225, 0.0009168267)); + coor.Add(new Tuple(17.39, 0.0009171313, 0.0009167183)); + coor.Add(new Tuple(17.42, 0.0009170227, 0.0009166129)); + coor.Add(new Tuple(17.45, 0.0009169912, 0.0009167042)); + coor.Add(new Tuple(17.47, 0.0009169619, 0.0009167372)); + coor.Add(new Tuple(17.49, 0.0009168769, 0.0009165555)); + coor.Add(new Tuple(17.52, 0.0009169126, 0.0009164122)); + coor.Add(new Tuple(17.54, 0.0009168095, 0.0009164997)); + coor.Add(new Tuple(17.56, 0.0009167117, 0.0009164578)); + coor.Add(new Tuple(17.58, 0.0009167125, 0.0009163216)); + coor.Add(new Tuple(17.61, 0.0009166691, 0.0009163215)); + coor.Add(new Tuple(17.61, 0.0009166177, 0.0009163682)); + coor.Add(new Tuple(17.64, 0.0009166138, 0.0009161775)); + coor.Add(new Tuple(17.65, 0.0009165447, 0.0009162307)); + coor.Add(new Tuple(17.68, 0.0009165637, 0.0009161909)); + coor.Add(new Tuple(17.70, 0.0009165287, 0.0009162003)); + coor.Add(new Tuple(17.72, 0.0009164404, 0.0009161535)); + coor.Add(new Tuple(17.73, 0.0009163911, 0.0009159562)); + coor.Add(new Tuple(17.75, 0.0009164149, 0.0009160416)); + coor.Add(new Tuple(17.77, 0.0009163402, 0.0009160482)); + coor.Add(new Tuple(17.78, 0.0009162712, 0.0009158130)); + coor.Add(new Tuple(17.79, 0.0009163379, 0.0009159386)); + coor.Add(new Tuple(17.81, 0.0009162706, 0.0009159439)); + coor.Add(new Tuple(17.83, 0.0009162221, 0.0009158337)); + coor.Add(new Tuple(17.84, 0.0009162687, 0.0009158403)); + coor.Add(new Tuple(17.85, 0.0009161995, 0.0009158511)); + coor.Add(new Tuple(17.87, 0.0009161597, 0.0009158546)); + coor.Add(new Tuple(17.88, 0.0009167764, 0.0009155583)); + coor.Add(new Tuple(17.90, 0.0009161124, 0.0009156772)); + coor.Add(new Tuple(17.91, 0.0009158132, 0.0009157205)); + coor.Add(new Tuple(17.93, 0.0009160570, 0.0009155709)); + coor.Add(new Tuple(17.95, 0.0009169897, 0.0009156229)); + coor.Add(new Tuple(17.96, 0.0009162779, 0.0009155998)); + coor.Add(new Tuple(17.97, 0.0009161936, 0.0009154936)); + coor.Add(new Tuple(17.98, 0.0009157409, 0.0009155027)); + coor.Add(new Tuple(17.99, 0.0009161422, 0.0009153927)); + coor.Add(new Tuple(18.00, 0.0009162909, 0.0009154076)); + coor.Add(new Tuple(18.02, 0.0009155000, 0.0009154500)); + coor.Add(new Tuple(18.03, 0.0009160368, 0.0009152681)); + coor.Add(new Tuple(18.03, 0.0009162238, 0.0009152696)); + coor.Add(new Tuple(18.04, 0.0009152988, 0.0009153602)); + coor.Add(new Tuple(18.05, 0.0009161198, 0.0009153041)); + coor.Add(new Tuple(18.07, 0.0009161596, 0.0009152377)); + coor.Add(new Tuple(18.07, 0.0009157604, 0.0009152851)); + coor.Add(new Tuple(18.09, 0.0009158916, 0.0009151203)); + coor.Add(new Tuple(18.10, 0.0009158709, 0.0009151293)); + coor.Add(new Tuple(18.11, 0.0009155564, 0.0009151758)); + coor.Add(new Tuple(18.11, 0.0009154135, 0.0009150937)); + coor.Add(new Tuple(18.13, 0.0009159432, 0.0009150627)); + coor.Add(new Tuple(18.13, 0.0009155070, 0.0009151352)); + coor.Add(new Tuple(18.14, 0.0009156394, 0.0009150199)); + coor.Add(new Tuple(18.14, 0.0009157482, 0.0009149901)); + coor.Add(new Tuple(18.17, 0.0009154776, 0.0009151045)); + coor.Add(new Tuple(18.17, 0.0009157094, 0.0009149269)); + coor.Add(new Tuple(18.17, 0.0009155652, 0.0009148916)); + coor.Add(new Tuple(18.19, 0.0009154806, 0.0009149817)); + coor.Add(new Tuple(18.20, 0.0009154527, 0.0009149946)); + coor.Add(new Tuple(18.20, 0.0009157510, 0.0009149240)); + coor.Add(new Tuple(18.21, 0.0009154209, 0.0009149903)); + coor.Add(new Tuple(18.22, 0.0009153911, 0.0009149162)); + coor.Add(new Tuple(18.23, 0.0009158589, 0.0009149679)); + coor.Add(new Tuple(18.24, 0.0009154627, 0.0009150088)); + coor.Add(new Tuple(18.24, 0.0009156366, 0.0009148690)); + coor.Add(new Tuple(18.25, 0.0009156119, 0.0009148192)); + coor.Add(new Tuple(18.27, 0.0009153207, 0.0009147177)); + coor.Add(new Tuple(18.27, 0.0009154026, 0.0009148472)); + coor.Add(new Tuple(18.27, 0.0009154785, 0.0009148031)); + coor.Add(new Tuple(18.29, 0.0009152912, 0.0009147612)); + coor.Add(new Tuple(18.29, 0.0009152769, 0.0009148675)); + coor.Add(new Tuple(18.30, 0.0009155200, 0.0009148298)); + coor.Add(new Tuple(18.31, 0.0009154144, 0.0009148152)); + coor.Add(new Tuple(18.31, 0.0009152526, 0.0009147941)); + coor.Add(new Tuple(18.33, 0.0009155630, 0.0009147495)); + coor.Add(new Tuple(18.33, 0.0009151411, 0.0009147423)); + coor.Add(new Tuple(18.34, 0.0009151397, 0.0009146997)); + coor.Add(new Tuple(18.33, 0.0009153517, 0.0009146307)); + coor.Add(new Tuple(18.35, 0.0009150395, 0.0009146499)); + coor.Add(new Tuple(18.35, 0.0009151786, 0.0009147138)); + coor.Add(new Tuple(18.36, 0.0009154546, 0.0009146480)); + coor.Add(new Tuple(18.36, 0.0009150806, 0.0009146403)); + coor.Add(new Tuple(18.37, 0.0009152189, 0.0009146512)); + coor.Add(new Tuple(18.37, 0.0009153474, 0.0009146643)); + coor.Add(new Tuple(18.38, 0.0009151971, 0.0009145769)); + coor.Add(new Tuple(18.39, 0.0009152623, 0.0009145439)); + coor.Add(new Tuple(18.39, 0.0009150441, 0.0009146074)); + coor.Add(new Tuple(18.40, 0.0009149696, 0.0009145537)); + coor.Add(new Tuple(18.40, 0.0009151651, 0.0009145395)); + coor.Add(new Tuple(18.40, 0.0009150859, 0.0009146279)); + coor.Add(new Tuple(18.41, 0.0009150758, 0.0009144986)); + coor.Add(new Tuple(18.42, 0.0009152622, 0.0009145602)); + coor.Add(new Tuple(18.43, 0.0009151220, 0.0009145762)); + coor.Add(new Tuple(18.43, 0.0009148528, 0.0009144709)); + coor.Add(new Tuple(18.43, 0.0009150435, 0.0009145321)); + coor.Add(new Tuple(18.43, 0.0009150310, 0.0009145311)); + coor.Add(new Tuple(18.44, 0.0009148933, 0.0009144169)); + coor.Add(new Tuple(18.46, 0.0009150772, 0.0009143829)); + coor.Add(new Tuple(18.47, 0.0009150031, 0.0009144757)); + coor.Add(new Tuple(18.49, 0.0009149163, 0.0009144907)); + coor.Add(new Tuple(18.50, 0.0009150727, 0.0009144919)); + coor.Add(new Tuple(18.53, 0.0009150830, 0.0009143664)); + coor.Add(new Tuple(18.58, 0.0009148143, 0.0009143380)); + coor.Add(new Tuple(18.62, 0.0009148784, 0.0009143801)); + coor.Add(new Tuple(18.66, 0.0009148594, 0.0009142724)); + coor.Add(new Tuple(18.72, 0.0009145788, 0.0009141796)); + coor.Add(new Tuple(18.76, 0.0009147097, 0.0009141592)); + coor.Add(new Tuple(18.82, 0.0009145791, 0.0009141772)); + coor.Add(new Tuple(18.87, 0.0009143983, 0.0009140253)); + coor.Add(new Tuple(18.92, 0.0009145848, 0.0009140046)); + coor.Add(new Tuple(18.96, 0.0009143519, 0.0009139687)); + coor.Add(new Tuple(19.01, 0.0009143231, 0.0009139231)); + coor.Add(new Tuple(19.05, 0.0009142039, 0.0009138036)); + coor.Add(new Tuple(19.09, 0.0009141839, 0.0009138098)); + coor.Add(new Tuple(19.13, 0.0009141121, 0.0009136840)); + coor.Add(new Tuple(19.17, 0.0009139497, 0.0009135414)); + coor.Add(new Tuple(19.20, 0.0009138900, 0.0009135959)); + coor.Add(new Tuple(19.23, 0.0009138717, 0.0009135155)); + coor.Add(new Tuple(19.27, 0.0009139665, 0.0009134364)); + coor.Add(new Tuple(19.30, 0.0009137611, 0.0009134616)); + coor.Add(new Tuple(19.33, 0.0009137517, 0.0009133701)); + coor.Add(new Tuple(19.35, 0.0009137026, 0.0009132655)); + coor.Add(new Tuple(19.38, 0.0009134686, 0.0009132528)); + coor.Add(new Tuple(19.42, 0.0009135541, 0.0009132160)); + coor.Add(new Tuple(19.44, 0.0009136037, 0.0009130830)); + coor.Add(new Tuple(19.46, 0.0009133718, 0.0009130782)); + coor.Add(new Tuple(19.49, 0.0009134632, 0.0009130446)); + coor.Add(new Tuple(19.51, 0.0009134653, 0.0009129134)); + coor.Add(new Tuple(19.54, 0.0009132869, 0.0009130174)); + coor.Add(new Tuple(19.55, 0.0009132988, 0.0009129520)); + coor.Add(new Tuple(19.58, 0.0009133419, 0.0009128446)); + coor.Add(new Tuple(19.61, 0.0009132678, 0.0009128617)); + coor.Add(new Tuple(19.62, 0.0009131384, 0.0009127839)); + coor.Add(new Tuple(19.64, 0.0009131075, 0.0009127470)); + coor.Add(new Tuple(19.66, 0.0009129855, 0.0009126832)); + coor.Add(new Tuple(19.67, 0.0009130339, 0.0009126842)); + coor.Add(new Tuple(19.69, 0.0009131296, 0.0009126486)); + coor.Add(new Tuple(19.71, 0.0009129336, 0.0009125946)); + coor.Add(new Tuple(19.73, 0.0009129865, 0.0009125542)); + coor.Add(new Tuple(19.74, 0.0009130790, 0.0009125444)); + coor.Add(new Tuple(19.76, 0.0009128476, 0.0009125551)); + coor.Add(new Tuple(19.78, 0.0009128570, 0.0009124409)); + coor.Add(new Tuple(19.79, 0.0009127886, 0.0009124200)); + coor.Add(new Tuple(19.80, 0.0009127993, 0.0009124406)); + coor.Add(new Tuple(19.82, 0.0009128221, 0.0009122825)); + coor.Add(new Tuple(19.84, 0.0009126760, 0.0009123536)); + coor.Add(new Tuple(19.85, 0.0009126465, 0.0009123431)); + coor.Add(new Tuple(19.86, 0.0009127768, 0.0009122605)); + coor.Add(new Tuple(19.88, 0.0009127181, 0.0009122839)); + coor.Add(new Tuple(19.89, 0.0009126124, 0.0009122578)); + coor.Add(new Tuple(19.90, 0.0009126970, 0.0009121704)); + coor.Add(new Tuple(19.92, 0.0009126057, 0.0009121506)); + coor.Add(new Tuple(19.94, 0.0009124270, 0.0009121597)); + coor.Add(new Tuple(19.94, 0.0009125878, 0.0009121018)); + coor.Add(new Tuple(19.97, 0.0009124957, 0.0009120725)); + coor.Add(new Tuple(19.97, 0.0009124667, 0.0009121013)); + coor.Add(new Tuple(19.99, 0.0009125949, 0.0009119988)); + coor.Add(new Tuple(20.00, 0.0009124591, 0.0009120369)); + coor.Add(new Tuple(20.01, 0.0009124431, 0.0009120459)); + coor.Add(new Tuple(20.02, 0.0009124504, 0.0009119231)); + coor.Add(new Tuple(20.03, 0.0009124697, 0.0009119127)); + coor.Add(new Tuple(20.04, 0.0009123385, 0.0009119320)); + coor.Add(new Tuple(20.05, 0.0009123560, 0.0009118342)); + coor.Add(new Tuple(20.07, 0.0009123718, 0.0009117916)); + coor.Add(new Tuple(20.07, 0.0009122434, 0.0009118198)); + coor.Add(new Tuple(20.07, 0.0009124091, 0.0009118114)); + coor.Add(new Tuple(20.09, 0.0009123868, 0.0009117550)); + coor.Add(new Tuple(20.10, 0.0009123353, 0.0009117481)); + coor.Add(new Tuple(20.10, 0.0009123874, 0.0009110992)); + coor.Add(new Tuple(20.11, 0.0009122381, 0.0009114466)); + coor.Add(new Tuple(20.12, 0.0009122891, 0.0009119702)); + coor.Add(new Tuple(20.13, 0.0009122415, 0.0009108548)); + coor.Add(new Tuple(20.14, 0.0009122266, 0.0009116586)); + coor.Add(new Tuple(20.15, 0.0009123091, 0.0009116456)); + coor.Add(new Tuple(20.16, 0.0009121968, 0.0009106696)); + coor.Add(new Tuple(20.17, 0.0009121490, 0.0009118219)); + coor.Add(new Tuple(20.18, 0.0009122229, 0.0009117971)); + coor.Add(new Tuple(20.19, 0.0009122722, 0.0009113550)); + coor.Add(new Tuple(20.19, 0.0009121002, 0.0009119332)); + coor.Add(new Tuple(20.20, 0.0009121530, 0.0009115353)); + coor.Add(new Tuple(20.20, 0.0009121684, 0.0009111375)); + coor.Add(new Tuple(20.22, 0.0009119689, 0.0009113279)); + coor.Add(new Tuple(20.23, 0.0009121080, 0.0009120120)); + coor.Add(new Tuple(20.23, 0.0009121241, 0.0009113022)); + coor.Add(new Tuple(20.24, 0.0009120173, 0.0009114668)); + coor.Add(new Tuple(20.25, 0.0009120924, 0.0009120877)); + coor.Add(new Tuple(20.26, 0.0009121092, 0.0009111178)); + coor.Add(new Tuple(20.27, 0.0009120038, 0.0009116956)); + coor.Add(new Tuple(20.27, 0.0009119726, 0.0009115533)); + coor.Add(new Tuple(20.28, 0.0009119809, 0.0009111155)); + coor.Add(new Tuple(20.29, 0.0009119434, 0.0009116488)); + coor.Add(new Tuple(20.30, 0.0009119875, 0.0009110964)); + coor.Add(new Tuple(20.30, 0.0009119439, 0.0009112179)); + coor.Add(new Tuple(20.32, 0.0009118848, 0.0009114593)); + coor.Add(new Tuple(20.33, 0.0009119724, 0.0009118021)); + coor.Add(new Tuple(20.33, 0.0009119383, 0.0009112025)); + coor.Add(new Tuple(20.33, 0.0009118425, 0.0009115413)); + coor.Add(new Tuple(20.34, 0.0009119421, 0.0009116250)); + coor.Add(new Tuple(20.34, 0.0009118153, 0.0009112706)); + coor.Add(new Tuple(20.35, 0.0009117860, 0.0009110446)); + coor.Add(new Tuple(20.36, 0.0009118543, 0.0009112466)); + coor.Add(new Tuple(20.36, 0.0009117598, 0.0009113550)); + coor.Add(new Tuple(20.36, 0.0009118113, 0.0009114332)); + coor.Add(new Tuple(20.37, 0.0009118791, 0.0009113268)); + coor.Add(new Tuple(20.39, 0.0009117289, 0.0009114102)); + coor.Add(new Tuple(20.39, 0.0009117803, 0.0009111209)); + coor.Add(new Tuple(20.39, 0.0009117816, 0.0009115009)); + coor.Add(new Tuple(20.40, 0.0009117669, 0.0009113751)); + coor.Add(new Tuple(20.40, 0.0009116986, 0.0009110082)); + coor.Add(new Tuple(20.40, 0.0009117119, 0.0009112599)); + coor.Add(new Tuple(20.41, 0.0009117109, 0.0009110747)); + coor.Add(new Tuple(20.42, 0.0009116153, 0.0009110641)); + coor.Add(new Tuple(20.42, 0.0009117758, 0.0009113939)); + coor.Add(new Tuple(20.43, 0.0009117414, 0.0009109568)); + coor.Add(new Tuple(20.43, 0.0009116813, 0.0009112073)); + coor.Add(new Tuple(20.43, 0.0009117716, 0.0009112830)); + coor.Add(new Tuple(20.45, 0.0009116680, 0.0009109552)); + coor.Add(new Tuple(20.46, 0.0009116535, 0.0009109465)); + coor.Add(new Tuple(20.46, 0.0009116641, 0.0009111679)); + coor.Add(new Tuple(20.49, 0.0009116484, 0.0009110081)); + coor.Add(new Tuple(20.50, 0.0009116187, 0.0009107379)); + coor.Add(new Tuple(20.53, 0.0009116142, 0.0009111166)); + coor.Add(new Tuple(20.58, 0.0009115207, 0.0009109328)); + coor.Add(new Tuple(20.62, 0.0009115132, 0.0009109733)); + coor.Add(new Tuple(20.66, 0.0009115363, 0.0009110839)); + coor.Add(new Tuple(20.73, 0.0009113611, 0.0009107590)); + coor.Add(new Tuple(20.78, 0.0009113117, 0.0009107661)); + coor.Add(new Tuple(20.83, 0.0009112855, 0.0009108478)); + coor.Add(new Tuple(20.88, 0.0009111116, 0.0009105324)); + coor.Add(new Tuple(20.93, 0.0009111052, 0.0009103966)); + coor.Add(new Tuple(20.98, 0.0009110037, 0.0009105396)); + coor.Add(new Tuple(21.02, 0.0009109081, 0.0009104866)); + coor.Add(new Tuple(21.07, 0.0009109612, 0.0009104917)); + coor.Add(new Tuple(21.11, 0.0009108163, 0.0009104242)); + coor.Add(new Tuple(21.15, 0.0009107314, 0.0009102945)); + coor.Add(new Tuple(21.19, 0.0009106859, 0.0009101803)); + coor.Add(new Tuple(21.22, 0.0009106774, 0.0009103124)); + coor.Add(new Tuple(21.25, 0.0009105702, 0.0009100072)); + coor.Add(new Tuple(21.28, 0.0009104943, 0.0009101345)); + coor.Add(new Tuple(21.32, 0.0009105041, 0.0009100763)); + coor.Add(new Tuple(21.35, 0.0009102952, 0.0009097783)); + coor.Add(new Tuple(21.38, 0.0009103536, 0.0009100293)); + coor.Add(new Tuple(21.42, 0.0009103548, 0.0009099710)); + coor.Add(new Tuple(21.45, 0.0009102177, 0.0009099259)); + coor.Add(new Tuple(21.47, 0.0009102396, 0.0009099219)); + coor.Add(new Tuple(21.49, 0.0009101513, 0.0009097698)); + coor.Add(new Tuple(21.52, 0.0009100624, 0.0009097194)); + coor.Add(new Tuple(21.55, 0.0009100621, 0.0009093974)); + coor.Add(new Tuple(21.57, 0.0009099572, 0.0009097296)); + coor.Add(new Tuple(21.59, 0.0009099876, 0.0009095848)); + coor.Add(new Tuple(21.61, 0.0009099452, 0.0009095350)); + coor.Add(new Tuple(21.64, 0.0009098687, 0.0009096535)); + coor.Add(new Tuple(21.66, 0.0009098582, 0.0009094054)); + coor.Add(new Tuple(21.68, 0.0009098872, 0.0009094751)); + coor.Add(new Tuple(21.69, 0.0009098310, 0.0009093924)); + coor.Add(new Tuple(21.71, 0.0009097359, 0.0009093485)); + coor.Add(new Tuple(21.72, 0.0009097515, 0.0009093699)); + coor.Add(new Tuple(21.75, 0.0009096601, 0.0009092371)); + coor.Add(new Tuple(21.76, 0.0009096613, 0.0009092081)); + coor.Add(new Tuple(21.78, 0.0009096962, 0.0009092776)); + coor.Add(new Tuple(21.79, 0.0009096026, 0.0009093330)); + coor.Add(new Tuple(21.81, 0.0009096230, 0.0009091623)); + coor.Add(new Tuple(21.82, 0.0009096422, 0.0009091729)); + coor.Add(new Tuple(21.84, 0.0009095075, 0.0009093013)); + coor.Add(new Tuple(21.85, 0.0009094847, 0.0009089407)); + coor.Add(new Tuple(21.86, 0.0009095467, 0.0009090507)); + coor.Add(new Tuple(21.87, 0.0009094568, 0.0009090682)); + coor.Add(new Tuple(21.88, 0.0009093979, 0.0009089070)); + coor.Add(new Tuple(21.90, 0.0009094357, 0.0009090148)); + coor.Add(new Tuple(21.92, 0.0009094156, 0.0009090386)); + coor.Add(new Tuple(21.93, 0.0009093674, 0.0009088856)); + coor.Add(new Tuple(21.94, 0.0009094320, 0.0009089021)); + coor.Add(new Tuple(21.95, 0.0009093559, 0.0009089603)); + coor.Add(new Tuple(21.97, 0.0009092865, 0.0009088574)); + coor.Add(new Tuple(21.98, 0.0009093515, 0.0009087861)); + coor.Add(new Tuple(21.99, 0.0009092431, 0.0009087708)); + coor.Add(new Tuple(22.01, 0.0009092668, 0.0009086635)); + coor.Add(new Tuple(22.02, 0.0009092491, 0.0009087680)); + coor.Add(new Tuple(22.04, 0.0009092032, 0.0009088637)); + coor.Add(new Tuple(22.04, 0.0009092865, 0.0009086404)); + coor.Add(new Tuple(22.05, 0.0009092088, 0.0009087010)); + coor.Add(new Tuple(22.05, 0.0009091642, 0.0009088015)); + coor.Add(new Tuple(22.06, 0.0009091679, 0.0009085822)); + coor.Add(new Tuple(22.08, 0.0009091721, 0.0009085948)); + coor.Add(new Tuple(22.09, 0.0009091182, 0.0009085798)); + coor.Add(new Tuple(22.10, 0.0009091035, 0.0009085572)); + coor.Add(new Tuple(22.11, 0.0009091461, 0.0009085744)); + coor.Add(new Tuple(22.12, 0.0009090150, 0.0009084292)); + coor.Add(new Tuple(22.12, 0.0009091160, 0.0009084928)); + coor.Add(new Tuple(22.13, 0.0009090989, 0.0009085542)); + coor.Add(new Tuple(22.14, 0.0009090288, 0.0009084892)); + coor.Add(new Tuple(22.14, 0.0009091097, 0.0009083584)); + coor.Add(new Tuple(22.15, 0.0009090546, 0.0009084934)); + coor.Add(new Tuple(22.16, 0.0009089850, 0.0009083973)); + coor.Add(new Tuple(22.17, 0.0009089891, 0.0009082304)); + coor.Add(new Tuple(22.18, 0.0009089930, 0.0009084333)); + coor.Add(new Tuple(22.18, 0.0009089590, 0.0009083106)); + coor.Add(new Tuple(22.20, 0.0009089443, 0.0009082937)); + coor.Add(new Tuple(22.21, 0.0009092023, 0.0009084245)); + coor.Add(new Tuple(22.22, 0.0009086416, 0.0009083431)); + coor.Add(new Tuple(22.22, 0.0009091724, 0.0009082851)); + coor.Add(new Tuple(22.24, 0.0009093641, 0.0009083072)); + coor.Add(new Tuple(22.24, 0.0009082396, 0.0009082569)); + coor.Add(new Tuple(22.24, 0.0009088623, 0.0009081721)); + coor.Add(new Tuple(22.26, 0.0009086359, 0.0009082277)); + coor.Add(new Tuple(22.26, 0.0009084579, 0.0009082809)); + coor.Add(new Tuple(22.27, 0.0009090372, 0.0009081648)); + coor.Add(new Tuple(22.28, 0.0009084355, 0.0009083259)); + coor.Add(new Tuple(22.27, 0.0009089796, 0.0009082856)); + coor.Add(new Tuple(22.28, 0.0009089688, 0.0009081562)); + coor.Add(new Tuple(22.29, 0.0009084026, 0.0009082535)); + coor.Add(new Tuple(22.30, 0.0009082552, 0.0009082072)); + coor.Add(new Tuple(22.31, 0.0009087628, 0.0009081263)); + coor.Add(new Tuple(22.31, 0.0009084320, 0.0009081253)); + coor.Add(new Tuple(22.33, 0.0009081074, 0.0009081720)); + coor.Add(new Tuple(22.34, 0.0009088824, 0.0009082255)); + coor.Add(new Tuple(22.34, 0.0009087280, 0.0009081533)); + coor.Add(new Tuple(22.34, 0.0009080713, 0.0009081133)); + coor.Add(new Tuple(22.35, 0.0009089742, 0.0009081624)); + coor.Add(new Tuple(22.35, 0.0009085633, 0.0009082206)); + coor.Add(new Tuple(22.36, 0.0009084135, 0.0009080521)); + coor.Add(new Tuple(22.37, 0.0009088011, 0.0009080693)); + coor.Add(new Tuple(22.38, 0.0009084220, 0.0009081287)); + coor.Add(new Tuple(22.38, 0.0009085265, 0.0009079196)); + coor.Add(new Tuple(22.38, 0.0009086459, 0.0009080694)); + coor.Add(new Tuple(22.39, 0.0009086356, 0.0009080861)); + coor.Add(new Tuple(22.40, 0.0009087416, 0.0009079940)); + coor.Add(new Tuple(22.40, 0.0009087284, 0.0009080716)); + coor.Add(new Tuple(22.40, 0.0009087266, 0.0009080693)); + coor.Add(new Tuple(22.41, 0.0009086086, 0.0009080013)); + coor.Add(new Tuple(22.41, 0.0009088075, 0.0009079578)); + coor.Add(new Tuple(22.42, 0.0009083740, 0.0009080094)); + coor.Add(new Tuple(22.43, 0.0009084833, 0.0009079475)); + coor.Add(new Tuple(22.44, 0.0009086718, 0.0009079355)); + coor.Add(new Tuple(22.43, 0.0009082689, 0.0009079648)); + coor.Add(new Tuple(22.44, 0.0009088292, 0.0009079213)); + coor.Add(new Tuple(22.45, 0.0009086381, 0.0009079415)); + coor.Add(new Tuple(22.47, 0.0009085369, 0.0009080203)); + coor.Add(new Tuple(22.48, 0.0009087980, 0.0009078535)); + coor.Add(new Tuple(22.50, 0.0009085919, 0.0009078762)); + coor.Add(new Tuple(22.51, 0.0009083858, 0.0009078898)); + coor.Add(new Tuple(22.56, 0.0009084458, 0.0009077906)); + coor.Add(new Tuple(22.59, 0.0009086498, 0.0009077875)); + coor.Add(new Tuple(22.64, 0.0009081690, 0.0009077172)); + coor.Add(new Tuple(22.68, 0.0009083766, 0.0009077619)); + coor.Add(new Tuple(22.73, 0.0009085396, 0.0009077785)); + coor.Add(new Tuple(22.79, 0.0009079868, 0.0009076101)); + coor.Add(new Tuple(22.84, 0.0009082324, 0.0009075934)); + coor.Add(new Tuple(22.90, 0.0009081646, 0.0009075907)); + coor.Add(new Tuple(22.95, 0.0009077775, 0.0009074807)); + coor.Add(new Tuple(23.00, 0.0009079379, 0.0009073489)); + coor.Add(new Tuple(23.04, 0.0009077117, 0.0009074225)); + coor.Add(new Tuple(23.09, 0.0009076554, 0.0009072839)); + coor.Add(new Tuple(23.13, 0.0009075083, 0.0009071761)); + coor.Add(new Tuple(23.17, 0.0009075955, 0.0009072443)); + coor.Add(new Tuple(23.20, 0.0009076062, 0.0009071632)); + coor.Add(new Tuple(23.23, 0.0009074176, 0.0009071001)); + coor.Add(new Tuple(23.28, 0.0009076416, 0.0009069771)); + coor.Add(new Tuple(23.31, 0.0009072357, 0.0009070164)); + coor.Add(new Tuple(23.34, 0.0009071998, 0.0009069113)); + coor.Add(new Tuple(23.37, 0.0009073357, 0.0009067633)); + coor.Add(new Tuple(23.40, 0.0009070275, 0.0009068339)); + coor.Add(new Tuple(23.43, 0.0009071799, 0.0009067355)); + coor.Add(new Tuple(23.46, 0.0009072630, 0.0009066859)); + coor.Add(new Tuple(23.49, 0.0009070303, 0.0009067433)); + coor.Add(new Tuple(23.51, 0.0009070471, 0.0009066484)); + coor.Add(new Tuple(23.53, 0.0009071340, 0.0009065824)); + coor.Add(new Tuple(23.56, 0.0009069717, 0.0009065572)); + coor.Add(new Tuple(23.59, 0.0009068763, 0.0009065423)); + coor.Add(new Tuple(23.61, 0.0009067777, 0.0009064793)); + coor.Add(new Tuple(23.63, 0.0009066932, 0.0009064163)); + coor.Add(new Tuple(23.65, 0.0009068318, 0.0009064229)); + coor.Add(new Tuple(23.67, 0.0009067371, 0.0009062964)); + coor.Add(new Tuple(23.69, 0.0009066519, 0.0009063799)); + coor.Add(new Tuple(23.71, 0.0009068468, 0.0009063428)); + coor.Add(new Tuple(23.73, 0.0009067050, 0.0009062183)); + coor.Add(new Tuple(23.75, 0.0009065234, 0.0009063059)); + coor.Add(new Tuple(23.76, 0.0009066040, 0.0009061777)); + coor.Add(new Tuple(23.78, 0.0009065239, 0.0009061030)); + coor.Add(new Tuple(23.79, 0.0009064381, 0.0009061425)); + coor.Add(new Tuple(23.82, 0.0009065840, 0.0009061084)); + coor.Add(new Tuple(23.83, 0.0009065038, 0.0009061552)); + coor.Add(new Tuple(23.84, 0.0009064877, 0.0009060566)); + coor.Add(new Tuple(23.85, 0.0009065107, 0.0009060042)); + coor.Add(new Tuple(23.86, 0.0009065904, 0.0009060470)); + coor.Add(new Tuple(23.88, 0.0009063654, 0.0009060499)); + coor.Add(new Tuple(23.89, 0.0009064502, 0.0009059576)); + coor.Add(new Tuple(23.91, 0.0009064706, 0.0009059457)); + coor.Add(new Tuple(23.92, 0.0009061606, 0.0009059540)); + coor.Add(new Tuple(23.93, 0.0009064835, 0.0009058033)); + coor.Add(new Tuple(23.95, 0.0009063137, 0.0009058648)); + coor.Add(new Tuple(23.95, 0.0009062515, 0.0009058901)); + coor.Add(new Tuple(23.97, 0.0009064711, 0.0009058032)); + coor.Add(new Tuple(23.99, 0.0009063531, 0.0009058472)); + coor.Add(new Tuple(23.99, 0.0009062407, 0.0009058548)); + coor.Add(new Tuple(24.01, 0.0009062721, 0.0009056751)); + coor.Add(new Tuple(24.02, 0.0009062568, 0.0009057227)); + coor.Add(new Tuple(24.02, 0.0009062830, 0.0009057505)); + coor.Add(new Tuple(24.03, 0.0009061732, 0.0009056792)); + coor.Add(new Tuple(24.05, 0.0009061534, 0.0009056631)); + coor.Add(new Tuple(24.05, 0.0009060916, 0.0009057118)); + coor.Add(new Tuple(24.06, 0.0009062548, 0.0009056048)); + coor.Add(new Tuple(24.08, 0.0009061531, 0.0009056069)); + coor.Add(new Tuple(24.09, 0.0009062243, 0.0009056708)); + coor.Add(new Tuple(24.09, 0.0009062965, 0.0009055699)); + coor.Add(new Tuple(24.09, 0.0009059810, 0.0009055527)); + coor.Add(new Tuple(24.11, 0.0009060931, 0.0009055507)); + coor.Add(new Tuple(24.11, 0.0009061209, 0.0009054739)); + coor.Add(new Tuple(24.12, 0.0009059812, 0.0009054788)); + coor.Add(new Tuple(24.12, 0.0009060960, 0.0009054848)); + coor.Add(new Tuple(24.14, 0.0009061307, 0.0009054765)); + coor.Add(new Tuple(24.15, 0.0009059924, 0.0009054407)); + coor.Add(new Tuple(24.16, 0.0009060185, 0.0009053843)); + coor.Add(new Tuple(24.16, 0.0009061261, 0.0009054110)); + coor.Add(new Tuple(24.17, 0.0009059936, 0.0009054333)); + coor.Add(new Tuple(24.18, 0.0009059491, 0.0009053811)); + coor.Add(new Tuple(24.19, 0.0009060121, 0.0009053262)); + coor.Add(new Tuple(24.19, 0.0009058419, 0.0009053714)); + coor.Add(new Tuple(24.20, 0.0009059442, 0.0009053369)); + coor.Add(new Tuple(24.22, 0.0009060060, 0.0009052413)); + coor.Add(new Tuple(24.22, 0.0009058380, 0.0009053471)); + coor.Add(new Tuple(24.23, 0.0009058998, 0.0009053144)); + coor.Add(new Tuple(24.24, 0.0009059972, 0.0009052598)); + coor.Add(new Tuple(24.25, 0.0009058325, 0.0009053240)); + coor.Add(new Tuple(24.25, 0.0009058325, 0.0009052559)); + coor.Add(new Tuple(24.25, 0.0009058192, 0.0009052091)); + coor.Add(new Tuple(24.27, 0.0009058041, 0.0009052524)); + coor.Add(new Tuple(24.27, 0.0009058363, 0.0009052369)); + coor.Add(new Tuple(24.28, 0.0009057162, 0.0009051846)); + coor.Add(new Tuple(24.29, 0.0009057755, 0.0009052083)); + coor.Add(new Tuple(24.29, 0.0009058384, 0.0009052180)); + coor.Add(new Tuple(24.29, 0.0009057948, 0.0009051364)); + coor.Add(new Tuple(24.31, 0.0009057124, 0.0009052352)); + coor.Add(new Tuple(24.31, 0.0009058143, 0.0009052110)); + coor.Add(new Tuple(24.31, 0.0009057307, 0.0009051822)); + coor.Add(new Tuple(24.32, 0.0009055772, 0.0009051862)); + coor.Add(new Tuple(24.33, 0.0009057500, 0.0009051573)); + coor.Add(new Tuple(24.34, 0.0009056677, 0.0009044930)); + coor.Add(new Tuple(24.35, 0.0009056379, 0.0009053967)); + coor.Add(new Tuple(24.35, 0.0009057861, 0.0009059310)); + coor.Add(new Tuple(24.35, 0.0009057063, 0.0009051021)); + coor.Add(new Tuple(24.36, 0.0009056676, 0.0009053101)); + coor.Add(new Tuple(24.38, 0.0009056911, 0.0009060409)); + coor.Add(new Tuple(24.38, 0.0009057227, 0.0009044343)); + coor.Add(new Tuple(24.38, 0.0009056096, 0.0009050652)); + coor.Add(new Tuple(24.38, 0.0009056292, 0.0009052720)); + coor.Add(new Tuple(24.38, 0.0009056608, 0.0009046733)); + coor.Add(new Tuple(24.40, 0.0009055198, 0.0009052239)); + coor.Add(new Tuple(24.40, 0.0009056068, 0.0009055544)); + coor.Add(new Tuple(24.41, 0.0009056954, 0.0009048527)); + coor.Add(new Tuple(24.41, 0.0009056618, 0.0009050158)); + coor.Add(new Tuple(24.42, 0.0009057208, 0.0009050183)); + coor.Add(new Tuple(24.42, 0.0009055869, 0.0009051859)); + coor.Add(new Tuple(24.42, 0.0009056774, 0.0009050046)); + coor.Add(new Tuple(24.43, 0.0009055708, 0.0009048455)); + coor.Add(new Tuple(24.43, 0.0009055294, 0.0009045475)); + coor.Add(new Tuple(24.45, 0.0009055862, 0.0009048363)); + coor.Add(new Tuple(24.45, 0.0009055717, 0.0009052434)); + coor.Add(new Tuple(24.48, 0.0009056788, 0.0009048273)); + coor.Add(new Tuple(24.49, 0.0009054813, 0.0009052168)); + coor.Add(new Tuple(24.52, 0.0009056002, 0.0009050558)); + coor.Add(new Tuple(24.55, 0.0009055157, 0.0009046681)); + coor.Add(new Tuple(24.58, 0.0009054097, 0.0009050081)); + coor.Add(new Tuple(24.63, 0.0009054857, 0.0009046067)); + coor.Add(new Tuple(24.68, 0.0009053447, 0.0009045592)); + coor.Add(new Tuple(24.74, 0.0009052828, 0.0009047557)); + coor.Add(new Tuple(24.79, 0.0009052109, 0.0009042351)); + coor.Add(new Tuple(24.85, 0.0009051726, 0.0009043164)); + coor.Add(new Tuple(24.91, 0.0009050637, 0.0009048300)); + coor.Add(new Tuple(24.96, 0.0009050461, 0.0009045452)); + coor.Add(new Tuple(25.01, 0.0009049718, 0.0009042737)); + coor.Add(new Tuple(25.07, 0.0009048100, 0.0009045389)); + coor.Add(new Tuple(25.11, 0.0009047657, 0.0009042660)); + coor.Add(new Tuple(25.17, 0.0009046963, 0.0009040056)); + coor.Add(new Tuple(25.20, 0.0009045743, 0.0009042449)); + coor.Add(new Tuple(25.26, 0.0009046224, 0.0009039961)); + coor.Add(new Tuple(25.30, 0.0009044510, 0.0009039372)); + coor.Add(new Tuple(25.34, 0.0009044166, 0.0009041494)); + coor.Add(new Tuple(25.38, 0.0009044664, 0.0009039179)); + coor.Add(new Tuple(25.42, 0.0009042778, 0.0009038654)); + coor.Add(new Tuple(25.46, 0.0009042954, 0.0009038916)); + coor.Add(new Tuple(25.50, 0.0009042724, 0.0009038442)); + coor.Add(new Tuple(25.53, 0.0009040886, 0.0009037873)); + coor.Add(new Tuple(25.56, 0.0009040437, 0.0009036576)); + coor.Add(new Tuple(25.59, 0.0009040162, 0.0009036809)); + coor.Add(new Tuple(25.63, 0.0009039394, 0.0009033810)); + coor.Add(new Tuple(25.66, 0.0009038980, 0.0009036486)); + coor.Add(new Tuple(25.68, 0.0009039883, 0.0009036940)); + coor.Add(new Tuple(25.71, 0.0009038676, 0.0009035677)); + coor.Add(new Tuple(25.73, 0.0009038287, 0.0009036750)); + coor.Add(new Tuple(25.76, 0.0009038391, 0.0009033251)); + coor.Add(new Tuple(25.79, 0.0009038042, 0.0009032863)); + coor.Add(new Tuple(25.81, 0.0009037666, 0.0009033250)); + coor.Add(new Tuple(25.83, 0.0009036310, 0.0009034322)); + coor.Add(new Tuple(25.86, 0.0009036752, 0.0009030975)); + coor.Add(new Tuple(25.88, 0.0009036941, 0.0009031373)); + coor.Add(new Tuple(25.90, 0.0009035604, 0.0009034510)); + coor.Add(new Tuple(25.92, 0.0009035334, 0.0009031392)); + coor.Add(new Tuple(25.95, 0.0009036216, 0.0009032246)); + coor.Add(new Tuple(25.96, 0.0009035241, 0.0009030772)); + coor.Add(new Tuple(25.98, 0.0009034236, 0.0009029101)); + coor.Add(new Tuple(25.99, 0.0009034639, 0.0009031415)); + coor.Add(new Tuple(26.03, 0.0009034592, 0.0009029153)); + coor.Add(new Tuple(26.03, 0.0009033916, 0.0009029496)); + coor.Add(new Tuple(26.05, 0.0009033236, 0.0009030748)); + coor.Add(new Tuple(26.07, 0.0009034509, 0.0009028396)); + coor.Add(new Tuple(26.08, 0.0009032794, 0.0009028672)); + coor.Add(new Tuple(26.10, 0.0009032956, 0.0009030321)); + coor.Add(new Tuple(26.11, 0.0009033662, 0.0009027716)); + coor.Add(new Tuple(26.12, 0.0009032100, 0.0009027923)); + coor.Add(new Tuple(26.13, 0.0009032575, 0.0009029310)); + coor.Add(new Tuple(26.15, 0.0009032000, 0.0009026012)); + coor.Add(new Tuple(26.16, 0.0009031833, 0.0009026356)); + coor.Add(new Tuple(26.17, 0.0009031118, 0.0009026600)); + coor.Add(new Tuple(26.19, 0.0009032244, 0.0009027787)); + coor.Add(new Tuple(26.20, 0.0009032304, 0.0009026122)); + coor.Add(new Tuple(26.21, 0.0009031125, 0.0009026046)); + coor.Add(new Tuple(26.22, 0.0009031793, 0.0009026700)); + coor.Add(new Tuple(26.23, 0.0009031432, 0.0009026466)); + coor.Add(new Tuple(26.24, 0.0009030479, 0.0009026398)); + coor.Add(new Tuple(26.25, 0.0009030736, 0.0009026212)); + coor.Add(new Tuple(26.26, 0.0009030986, 0.0009025082)); + coor.Add(new Tuple(26.27, 0.0009029596, 0.0009025454)); + coor.Add(new Tuple(26.28, 0.0009030363, 0.0009025746)); + coor.Add(new Tuple(26.29, 0.0009030555, 0.0009024338)); + coor.Add(new Tuple(26.30, 0.0009029815, 0.0009024909)); + coor.Add(new Tuple(26.30, 0.0009030108, 0.0009026905)); + coor.Add(new Tuple(26.32, 0.0009030633, 0.0009023461)); + coor.Add(new Tuple(26.32, 0.0009029511, 0.0009025798)); + coor.Add(new Tuple(26.33, 0.0009029514, 0.0009025709)); + coor.Add(new Tuple(26.34, 0.0009029735, 0.0009022752)); + coor.Add(new Tuple(26.34, 0.0009029206, 0.0009025000)); + coor.Add(new Tuple(26.36, 0.0009028163, 0.0009024511)); + coor.Add(new Tuple(26.36, 0.0009029153, 0.0009023565)); + coor.Add(new Tuple(26.37, 0.0009029622, 0.0009023893)); + coor.Add(new Tuple(26.36, 0.0009028123, 0.0009024922)); + coor.Add(new Tuple(26.38, 0.0009028537, 0.0009023977)); + coor.Add(new Tuple(26.39, 0.0009029361, 0.0009022548)); + coor.Add(new Tuple(26.39, 0.0009028891, 0.0009024579)); + coor.Add(new Tuple(26.40, 0.0009028125, 0.0009022945)); + coor.Add(new Tuple(26.40, 0.0009027724, 0.0009023150)); + coor.Add(new Tuple(26.41, 0.0009028890, 0.0009023165)); + coor.Add(new Tuple(26.41, 0.0009028176, 0.0009023852)); + coor.Add(new Tuple(26.42, 0.0009028086, 0.0009024146)); + coor.Add(new Tuple(26.43, 0.0009028364, 0.0009022035)); + coor.Add(new Tuple(26.43, 0.0009027741, 0.0009023088)); + coor.Add(new Tuple(26.43, 0.0009028236, 0.0009023126)); + coor.Add(new Tuple(26.43, 0.0009028349, 0.0009022185)); + coor.Add(new Tuple(26.44, 0.0009028295, 0.0009022890)); + coor.Add(new Tuple(26.44, 0.0009021277, 0.0009022426)); + coor.Add(new Tuple(26.45, 0.0009027961, 0.0009022048)); + coor.Add(new Tuple(26.46, 0.0009030689, 0.0009023038)); + coor.Add(new Tuple(26.46, 0.0009027610, 0.0009022269)); + coor.Add(new Tuple(26.46, 0.0009034179, 0.0009021997)); + coor.Add(new Tuple(26.46, 0.0009032568, 0.0009023243)); + coor.Add(new Tuple(26.46, 0.0009025540, 0.0009021619)); + coor.Add(new Tuple(26.47, 0.0009034029, 0.0009021201)); + coor.Add(new Tuple(26.48, 0.0009023767, 0.0009022636)); + coor.Add(new Tuple(26.48, 0.0009027292, 0.0009021472)); + coor.Add(new Tuple(26.48, 0.0009027293, 0.0009020677)); + coor.Add(new Tuple(26.48, 0.0009032628, 0.0009022004)); + coor.Add(new Tuple(26.49, 0.0009027364, 0.0009021336)); + coor.Add(new Tuple(26.49, 0.0009032373, 0.0009020497)); + coor.Add(new Tuple(26.50, 0.0009033510, 0.0009022245)); + coor.Add(new Tuple(26.49, 0.0009022807, 0.0009020849)); + coor.Add(new Tuple(26.49, 0.0009027215, 0.0009019920)); + coor.Add(new Tuple(26.50, 0.0009028581, 0.0009021732)); + coor.Add(new Tuple(26.50, 0.0009027065, 0.0009019900)); + coor.Add(new Tuple(26.52, 0.0009026872, 0.0009019870)); + coor.Add(new Tuple(26.52, 0.0009026969, 0.0009021193)); + coor.Add(new Tuple(26.52, 0.0009025692, 0.0009020773)); + coor.Add(new Tuple(26.52, 0.0009026916, 0.0009020428)); + coor.Add(new Tuple(26.52, 0.0009029259, 0.0009021088)); + coor.Add(new Tuple(26.53, 0.0009028060, 0.0009020474)); + coor.Add(new Tuple(26.52, 0.0009025643, 0.0009020241)); + coor.Add(new Tuple(26.52, 0.0009027890, 0.0009021261)); + coor.Add(new Tuple(26.53, 0.0009024379, 0.0009020164)); + coor.Add(new Tuple(26.53, 0.0009024636, 0.0009020466)); + coor.Add(new Tuple(26.54, 0.0009027036, 0.0009020788)); + coor.Add(new Tuple(26.55, 0.0009024340, 0.0009020095)); + coor.Add(new Tuple(26.56, 0.0009026452, 0.0009021270)); + coor.Add(new Tuple(26.59, 0.0009029170, 0.0009020797)); + coor.Add(new Tuple(26.62, 0.0009024051, 0.0009019871)); + coor.Add(new Tuple(26.66, 0.0009024521, 0.0009020900)); + coor.Add(new Tuple(26.72, 0.0009026983, 0.0009019733)); + coor.Add(new Tuple(26.76, 0.0009023676, 0.0009018706)); + coor.Add(new Tuple(26.82, 0.0009020163, 0.0009019034)); + coor.Add(new Tuple(26.88, 0.0009021410, 0.0009018840)); + coor.Add(new Tuple(26.92, 0.0009020920, 0.0009017467)); + coor.Add(new Tuple(26.98, 0.0009020927, 0.0009017494)); + coor.Add(new Tuple(27.04, 0.0009023043, 0.0009018229)); + coor.Add(new Tuple(27.08, 0.0009019740, 0.0009015852)); + coor.Add(new Tuple(27.14, 0.0009019137, 0.0009016874)); + coor.Add(new Tuple(27.19, 0.0009018410, 0.0009015572)); + coor.Add(new Tuple(27.24, 0.0009016133, 0.0009014462)); + coor.Add(new Tuple(27.28, 0.0009016371, 0.0009014007)); + coor.Add(new Tuple(27.33, 0.0009015259, 0.0009012676)); + coor.Add(new Tuple(27.38, 0.0009014155, 0.0009012725)); + coor.Add(new Tuple(27.42, 0.0009016853, 0.0009012471)); + coor.Add(new Tuple(27.45, 0.0009014864, 0.0009010965)); + coor.Add(new Tuple(27.50, 0.0009014309, 0.0009011366)); + coor.Add(new Tuple(27.54, 0.0009015324, 0.0009011355)); + coor.Add(new Tuple(27.57, 0.0009014692, 0.0009011449)); + coor.Add(new Tuple(27.60, 0.0009012119, 0.0009009603)); + coor.Add(new Tuple(27.63, 0.0009012359, 0.0009009543)); + coor.Add(new Tuple(27.67, 0.0009012629, 0.0009008820)); + coor.Add(new Tuple(27.69, 0.0009008782, 0.0009008596)); + coor.Add(new Tuple(27.72, 0.0009013061, 0.0009007353)); + coor.Add(new Tuple(27.75, 0.0009012872, 0.0009007474)); + coor.Add(new Tuple(27.77, 0.0009009707, 0.0009006744)); + coor.Add(new Tuple(27.81, 0.0009012739, 0.0009006961)); + coor.Add(new Tuple(27.83, 0.0009010376, 0.0009005731)); + coor.Add(new Tuple(27.86, 0.0009008745, 0.0009005846)); + coor.Add(new Tuple(27.88, 0.0009009652, 0.0009006049)); + coor.Add(new Tuple(27.90, 0.0009010680, 0.0009003835)); + coor.Add(new Tuple(27.93, 0.0009008455, 0.0009004015)); + coor.Add(new Tuple(27.95, 0.0009008147, 0.0009004748)); + coor.Add(new Tuple(27.97, 0.0009009024, 0.0009004073)); + coor.Add(new Tuple(27.99, 0.0009008206, 0.0009002365)); + coor.Add(new Tuple(28.01, 0.0009009611, 0.0009004011)); + coor.Add(new Tuple(28.03, 0.0009008772, 0.0009002207)); + coor.Add(new Tuple(28.04, 0.0009008005, 0.0009002368)); + coor.Add(new Tuple(28.06, 0.0009008328, 0.0009002893)); + coor.Add(new Tuple(28.07, 0.0009006314, 0.0009001034)); + coor.Add(new Tuple(28.10, 0.0009006623, 0.0009000954)); + coor.Add(new Tuple(28.11, 0.0009005446, 0.0009000850)); + coor.Add(new Tuple(28.13, 0.0009006240, 0.0009000098)); + coor.Add(new Tuple(28.14, 0.0009006634, 0.0009000663)); + coor.Add(new Tuple(28.16, 0.0009007499, 0.0009001366)); + coor.Add(new Tuple(28.17, 0.0009005705, 0.0009000737)); + coor.Add(new Tuple(28.18, 0.0009004975, 0.0008999675)); + coor.Add(new Tuple(28.20, 0.0009005546, 0.0009000200)); + coor.Add(new Tuple(28.21, 0.0009004596, 0.0009000005)); + coor.Add(new Tuple(28.22, 0.0009003954, 0.0008999802)); + coor.Add(new Tuple(28.24, 0.0009005330, 0.0008999894)); + coor.Add(new Tuple(28.23, 0.0009003082, 0.0008998991)); + coor.Add(new Tuple(28.25, 0.0009003922, 0.0008999143)); + coor.Add(new Tuple(28.26, 0.0009005848, 0.0008999878)); + coor.Add(new Tuple(28.27, 0.0009003740, 0.0008998744)); + coor.Add(new Tuple(28.27, 0.0009004093, 0.0008999721)); + coor.Add(new Tuple(28.29, 0.0009004906, 0.0008998934)); + coor.Add(new Tuple(28.30, 0.0009002916, 0.0008998024)); + coor.Add(new Tuple(28.30, 0.0008999936, 0.0008998558)); + coor.Add(new Tuple(28.31, 0.0009003156, 0.0008998267)); + coor.Add(new Tuple(28.33, 0.0009003480, 0.0008997879)); + coor.Add(new Tuple(28.33, 0.0009001887, 0.0008997849)); + coor.Add(new Tuple(28.34, 0.0009002631, 0.0008998473)); + coor.Add(new Tuple(28.35, 0.0009002682, 0.0008997242)); + coor.Add(new Tuple(28.36, 0.0009003426, 0.0008997492)); + coor.Add(new Tuple(28.37, 0.0009002890, 0.0008998391)); + coor.Add(new Tuple(28.37, 0.0009001478, 0.0008996946)); + coor.Add(new Tuple(28.39, 0.0009001740, 0.0008997678)); + coor.Add(new Tuple(28.39, 0.0009001771, 0.0008995526)); + coor.Add(new Tuple(28.40, 0.0009000357, 0.0008996757)); + coor.Add(new Tuple(28.40, 0.0009002018, 0.0008997805)); + coor.Add(new Tuple(28.40, 0.0009002320, 0.0008997040)); + coor.Add(new Tuple(28.40, 0.0009001422, 0.0008996754)); + coor.Add(new Tuple(28.42, 0.0009002378, 0.0008997298)); + coor.Add(new Tuple(28.42, 0.0009001734, 0.0008997453)); + coor.Add(new Tuple(28.42, 0.0009001591, 0.0008996692)); + coor.Add(new Tuple(28.43, 0.0009001899, 0.0008996819)); + coor.Add(new Tuple(28.44, 0.0009000868, 0.0008996732)); + coor.Add(new Tuple(28.44, 0.0009000626, 0.0008995526)); + coor.Add(new Tuple(28.45, 0.0009001046, 0.0008996332)); + coor.Add(new Tuple(28.45, 0.0009001696, 0.0008995973)); + coor.Add(new Tuple(28.46, 0.0009000497, 0.0008995752)); + coor.Add(new Tuple(28.46, 0.0009002745, 0.0008996024)); + coor.Add(new Tuple(28.47, 0.0009002340, 0.0008996118)); + coor.Add(new Tuple(28.47, 0.0009000671, 0.0008995141)); + coor.Add(new Tuple(28.47, 0.0009002168, 0.0008995392)); + coor.Add(new Tuple(28.47, 0.0009001692, 0.0008995465)); + coor.Add(new Tuple(28.48, 0.0009000210, 0.0008994958)); + coor.Add(new Tuple(28.49, 0.0009000834, 0.0008996173)); + coor.Add(new Tuple(28.49, 0.0009001623, 0.0008995101)); + coor.Add(new Tuple(28.50, 0.0009001522, 0.0008995224)); + coor.Add(new Tuple(28.50, 0.0009001486, 0.0008995984)); + coor.Add(new Tuple(28.50, 0.0009000509, 0.0008994920)); + coor.Add(new Tuple(28.50, 0.0009001401, 0.0008993935)); + coor.Add(new Tuple(28.50, 0.0009001721, 0.0008995163)); + coor.Add(new Tuple(28.50, 0.0009001269, 0.0008993752)); + coor.Add(new Tuple(28.51, 0.0009000587, 0.0008994521)); + coor.Add(new Tuple(28.51, 0.0009001652, 0.0008994864)); + coor.Add(new Tuple(28.52, 0.0009000842, 0.0008995035)); + coor.Add(new Tuple(28.52, 0.0009000454, 0.0008994963)); + coor.Add(new Tuple(28.52, 0.0009001140, 0.0008994294)); + coor.Add(new Tuple(28.52, 0.0009002091, 0.0008993781)); + coor.Add(new Tuple(28.53, 0.0009000613, 0.0008994174)); + coor.Add(new Tuple(28.53, 0.0009000987, 0.0008994970)); + coor.Add(new Tuple(28.53, 0.0009000948, 0.0008994900)); + coor.Add(new Tuple(28.53, 0.0008999432, 0.0008994547)); + coor.Add(new Tuple(28.53, 0.0009000875, 0.0008995062)); + coor.Add(new Tuple(28.53, 0.0009000176, 0.0008993875)); + coor.Add(new Tuple(28.53, 0.0008999819, 0.0008993963)); + coor.Add(new Tuple(28.54, 0.0009001161, 0.0008994801)); + coor.Add(new Tuple(28.53, 0.0009000826, 0.0008994576)); + coor.Add(new Tuple(28.54, 0.0009000466, 0.0008994236)); + coor.Add(new Tuple(28.54, 0.0009000753, 0.0008995282)); + coor.Add(new Tuple(28.54, 0.0008999858, 0.0008994313)); + coor.Add(new Tuple(28.54, 0.0009000109, 0.0008994402)); + coor.Add(new Tuple(28.55, 0.0009000112, 0.0008993328)); + coor.Add(new Tuple(28.57, 0.0008998916, 0.0008997279)); + coor.Add(new Tuple(28.59, 0.0008999228, 0.0008988058)); + coor.Add(new Tuple(28.60, 0.0009000153, 0.0008991467)); + coor.Add(new Tuple(28.65, 0.0008999552, 0.0009002175)); + coor.Add(new Tuple(28.70, 0.0008998489, 0.0008989014)); + coor.Add(new Tuple(28.73, 0.0008998991, 0.0008999871)); + coor.Add(new Tuple(28.79, 0.0008996941, 0.0008997093)); + coor.Add(new Tuple(28.84, 0.0008996720, 0.0008989185)); + coor.Add(new Tuple(28.89, 0.0008997071, 0.0008998258)); + coor.Add(new Tuple(28.93, 0.0008995589, 0.0008987923)); + coor.Add(new Tuple(28.98, 0.0008995382, 0.0008991056)); + coor.Add(new Tuple(29.03, 0.0008995103, 0.0008990343)); + coor.Add(new Tuple(29.08, 0.0008993923, 0.0008987418)); + coor.Add(new Tuple(29.13, 0.0008993633, 0.0008991436)); + coor.Add(new Tuple(29.16, 0.0008993651, 0.0008991276)); + coor.Add(new Tuple(29.21, 0.0008992814, 0.0008988552)); + coor.Add(new Tuple(29.26, 0.0008992288, 0.0008986939)); + coor.Add(new Tuple(29.29, 0.0008991781, 0.0008989616)); + coor.Add(new Tuple(29.33, 0.0008990643, 0.0008986989)); + coor.Add(new Tuple(29.36, 0.0008990765, 0.0008984129)); + coor.Add(new Tuple(29.41, 0.0008990911, 0.0008989246)); + coor.Add(new Tuple(29.45, 0.0008989563, 0.0008982902)); + coor.Add(new Tuple(29.48, 0.0008989734, 0.0008984476)); + coor.Add(new Tuple(29.51, 0.0008988981, 0.0008986941)); + coor.Add(new Tuple(29.55, 0.0008988570, 0.0008981827)); + coor.Add(new Tuple(29.58, 0.0008988925, 0.0008985366)); + coor.Add(new Tuple(29.62, 0.0008988052, 0.0008986095)); + coor.Add(new Tuple(29.64, 0.0008986135, 0.0008980091)); + coor.Add(new Tuple(29.67, 0.0008986717, 0.0008979068)); + coor.Add(new Tuple(29.69, 0.0008986641, 0.0008981854)); + coor.Add(new Tuple(29.72, 0.0008986006, 0.0008980373)); + coor.Add(new Tuple(29.75, 0.0008986174, 0.0008978308)); + coor.Add(new Tuple(29.77, 0.0008986398, 0.0008982685)); + coor.Add(new Tuple(29.80, 0.0008984683, 0.0008980027)); + coor.Add(new Tuple(29.82, 0.0008984406, 0.0008978666)); + coor.Add(new Tuple(29.84, 0.0008985757, 0.0008981997)); + coor.Add(new Tuple(29.87, 0.0008983859, 0.0008976528)); + coor.Add(new Tuple(29.88, 0.0008984702, 0.0008977860)); + coor.Add(new Tuple(29.90, 0.0008983983, 0.0008979005)); + coor.Add(new Tuple(29.91, 0.0008982601, 0.0008975635)); + coor.Add(new Tuple(29.93, 0.0008984484, 0.0008976622)); + coor.Add(new Tuple(29.95, 0.0008983960, 0.0008977807)); + coor.Add(new Tuple(29.98, 0.0008983509, 0.0008977829)); + coor.Add(new Tuple(29.99, 0.0008983541, 0.0008978365)); + coor.Add(new Tuple(30.00, 0.0008983116, 0.0008977273)); + coor.Add(new Tuple(30.02, 0.0008982784, 0.0008975179)); + coor.Add(new Tuple(30.04, 0.0008982688, 0.0008976353)); + coor.Add(new Tuple(30.05, 0.0008982291, 0.0008977450)); + coor.Add(new Tuple(30.07, 0.0008981829, 0.0008973476)); + coor.Add(new Tuple(30.08, 0.0008980927, 0.0008976267)); + coor.Add(new Tuple(30.09, 0.0008981709, 0.0008977466)); + coor.Add(new Tuple(30.11, 0.0008980753, 0.0008973433)); + coor.Add(new Tuple(30.12, 0.0008982056, 0.0008977951)); + coor.Add(new Tuple(30.14, 0.0008980663, 0.0008975479)); + coor.Add(new Tuple(30.15, 0.0008980745, 0.0008974662)); + coor.Add(new Tuple(30.16, 0.0008980539, 0.0008977368)); + coor.Add(new Tuple(30.18, 0.0008979953, 0.0008974262)); + coor.Add(new Tuple(30.18, 0.0008980236, 0.0008971773)); + coor.Add(new Tuple(30.20, 0.0008980823, 0.0008973404)); + coor.Add(new Tuple(30.21, 0.0008979794, 0.0008974900)); + coor.Add(new Tuple(30.22, 0.0008979338, 0.0008972759)); + coor.Add(new Tuple(30.23, 0.0008980729, 0.0008974731)); + coor.Add(new Tuple(30.24, 0.0008980075, 0.0008977322)); + coor.Add(new Tuple(30.25, 0.0008979232, 0.0008972836)); + coor.Add(new Tuple(30.25, 0.0008978640, 0.0008975650)); + coor.Add(new Tuple(30.27, 0.0008978213, 0.0008974984)); + coor.Add(new Tuple(30.28, 0.0008978146, 0.0008973629)); + coor.Add(new Tuple(30.27, 0.0008979480, 0.0008973662)); + coor.Add(new Tuple(30.29, 0.0008977954, 0.0008972284)); + coor.Add(new Tuple(30.30, 0.0008978476, 0.0008973563)); + coor.Add(new Tuple(30.30, 0.0008978460, 0.0008974571)); + coor.Add(new Tuple(30.31, 0.0008977680, 0.0008972547)); + coor.Add(new Tuple(30.31, 0.0008978098, 0.0008973589)); + coor.Add(new Tuple(30.32, 0.0008978415, 0.0008974071)); + coor.Add(new Tuple(30.33, 0.0008977259, 0.0008972818)); + coor.Add(new Tuple(30.35, 0.0008978102, 0.0008972550)); + coor.Add(new Tuple(30.35, 0.0008977311, 0.0008972840)); + coor.Add(new Tuple(30.35, 0.0008977510, 0.0008971636)); + coor.Add(new Tuple(30.36, 0.0008978429, 0.0008971778)); + coor.Add(new Tuple(30.37, 0.0008978331, 0.0008974086)); + coor.Add(new Tuple(30.37, 0.0008976841, 0.0008972344)); + coor.Add(new Tuple(30.37, 0.0008977341, 0.0008972007)); + coor.Add(new Tuple(30.38, 0.0008977660, 0.0008972237)); + coor.Add(new Tuple(30.39, 0.0008976705, 0.0008970436)); + coor.Add(new Tuple(30.39, 0.0008976849, 0.0008971805)); + coor.Add(new Tuple(30.40, 0.0008977448, 0.0008973331)); + coor.Add(new Tuple(30.40, 0.0008976343, 0.0008968901)); + coor.Add(new Tuple(30.41, 0.0008978012, 0.0008971239)); + coor.Add(new Tuple(30.41, 0.0008977044, 0.0008971067)); + coor.Add(new Tuple(30.41, 0.0008976630, 0.0008971290)); + coor.Add(new Tuple(30.41, 0.0008977296, 0.0008970390)); + coor.Add(new Tuple(30.42, 0.0008976647, 0.0008970108)); + coor.Add(new Tuple(30.43, 0.0008976503, 0.0008972270)); + coor.Add(new Tuple(30.43, 0.0008977292, 0.0008968877)); + coor.Add(new Tuple(30.43, 0.0008977629, 0.0008970406)); + coor.Add(new Tuple(30.43, 0.0008976270, 0.0008970328)); + coor.Add(new Tuple(30.43, 0.0008977424, 0.0008969215)); + coor.Add(new Tuple(30.44, 0.0008977128, 0.0008970202)); + coor.Add(new Tuple(30.43, 0.0008977101, 0.0008968181)); + coor.Add(new Tuple(30.44, 0.0008977849, 0.0008969923)); + coor.Add(new Tuple(30.44, 0.0008976932, 0.0008971329)); + coor.Add(new Tuple(30.45, 0.0008976872, 0.0008969527)); + coor.Add(new Tuple(30.46, 0.0008977166, 0.0008969086)); + coor.Add(new Tuple(30.46, 0.0008977314, 0.0008969977)); + coor.Add(new Tuple(30.46, 0.0008975763, 0.0008968457)); + coor.Add(new Tuple(30.47, 0.0008976127, 0.0008968550)); + coor.Add(new Tuple(30.47, 0.0008976713, 0.0008970074)); + coor.Add(new Tuple(30.47, 0.0008975702, 0.0008970114)); + coor.Add(new Tuple(30.47, 0.0008977048, 0.0008968535)); + coor.Add(new Tuple(30.47, 0.0008976563, 0.0008972002)); + coor.Add(new Tuple(30.48, 0.0008976090, 0.0008970979)); + coor.Add(new Tuple(30.48, 0.0008976574, 0.0008970578)); + coor.Add(new Tuple(30.48, 0.0008976910, 0.0008970466)); + coor.Add(new Tuple(30.49, 0.0008976080, 0.0008968516)); + coor.Add(new Tuple(30.48, 0.0008976096, 0.0008970520)); + coor.Add(new Tuple(30.48, 0.0008976105, 0.0008970024)); + coor.Add(new Tuple(30.48, 0.0008975640, 0.0008969548)); + coor.Add(new Tuple(30.49, 0.0008973748, 0.0008969229)); + coor.Add(new Tuple(30.50, 0.0008973037, 0.0008970848)); + coor.Add(new Tuple(30.51, 0.0008966848, 0.0008971100)); + coor.Add(new Tuple(30.53, 0.0008978885, 0.0008967898)); + coor.Add(new Tuple(30.55, 0.0008971179, 0.0008971317)); + coor.Add(new Tuple(30.59, 0.0008966105, 0.0008968836)); + coor.Add(new Tuple(30.61, 0.0008977504, 0.0008968128)); + coor.Add(new Tuple(30.66, 0.0008972878, 0.0008968769)); + coor.Add(new Tuple(30.71, 0.0008964986, 0.0008969494)); + coor.Add(new Tuple(30.75, 0.0008977954, 0.0008968957)); + coor.Add(new Tuple(30.80, 0.0008973423, 0.0008969263)); + coor.Add(new Tuple(30.84, 0.0008969313, 0.0008969850)); + coor.Add(new Tuple(30.89, 0.0008974374, 0.0008966866)); + coor.Add(new Tuple(30.93, 0.0008968990, 0.0008968503)); + coor.Add(new Tuple(30.97, 0.0008966383, 0.0008966906)); + coor.Add(new Tuple(31.03, 0.0008969183, 0.0008966047)); + coor.Add(new Tuple(31.07, 0.0008971888, 0.0008967229)); + coor.Add(new Tuple(31.10, 0.0008966379, 0.0008964460)); + coor.Add(new Tuple(31.15, 0.0008968557, 0.0008964395)); + coor.Add(new Tuple(31.19, 0.0008970668, 0.0008965180)); + coor.Add(new Tuple(31.23, 0.0008966020, 0.0008964064)); + coor.Add(new Tuple(31.27, 0.0008970841, 0.0008964053)); + coor.Add(new Tuple(31.30, 0.0008969168, 0.0008963131)); + coor.Add(new Tuple(31.34, 0.0008966170, 0.0008963062)); + coor.Add(new Tuple(31.37, 0.0008967851, 0.0008960734)); + coor.Add(new Tuple(31.40, 0.0008966450, 0.0008962017)); + coor.Add(new Tuple(31.43, 0.0008964752, 0.0008960325)); + coor.Add(new Tuple(31.46, 0.0008966961, 0.0008960196)); + coor.Add(new Tuple(31.50, 0.0008966717, 0.0008960635)); + coor.Add(new Tuple(31.54, 0.0008969717, 0.0008960068)); + coor.Add(new Tuple(31.56, 0.0008964657, 0.0008959635)); + coor.Add(new Tuple(31.60, 0.0008963145, 0.0008959997)); + coor.Add(new Tuple(31.62, 0.0008963490, 0.0008957229)); + coor.Add(new Tuple(31.65, 0.0008964157, 0.0008957213)); + coor.Add(new Tuple(31.68, 0.0008962378, 0.0008957818)); + coor.Add(new Tuple(31.71, 0.0008961744, 0.0008956264)); + coor.Add(new Tuple(31.72, 0.0008965458, 0.0008956826)); + coor.Add(new Tuple(31.75, 0.0008960294, 0.0008956505)); + coor.Add(new Tuple(31.77, 0.0008963946, 0.0008955874)); + coor.Add(new Tuple(31.79, 0.0008963827, 0.0008956003)); + coor.Add(new Tuple(31.82, 0.0008960765, 0.0008956713)); + coor.Add(new Tuple(31.84, 0.0008961452, 0.0008956556)); + coor.Add(new Tuple(31.85, 0.0008961089, 0.0008954407)); + coor.Add(new Tuple(31.88, 0.0008959193, 0.0008955346)); + coor.Add(new Tuple(31.89, 0.0008959797, 0.0008953353)); + coor.Add(new Tuple(31.92, 0.0008962218, 0.0008953328)); + coor.Add(new Tuple(31.94, 0.0008960271, 0.0008955026)); + coor.Add(new Tuple(31.95, 0.0008960872, 0.0008952739)); + coor.Add(new Tuple(31.96, 0.0008959197, 0.0008952706)); + coor.Add(new Tuple(31.98, 0.0008958011, 0.0008954571)); + coor.Add(new Tuple(32.00, 0.0008957656, 0.0008952849)); + coor.Add(new Tuple(32.01, 0.0008959974, 0.0008952332)); + coor.Add(new Tuple(32.03, 0.0008955976, 0.0008953697)); + coor.Add(new Tuple(32.05, 0.0008958129, 0.0008952908)); + coor.Add(new Tuple(32.06, 0.0008958697, 0.0008952081)); + coor.Add(new Tuple(32.07, 0.0008956920, 0.0008953149)); + coor.Add(new Tuple(32.09, 0.0008958151, 0.0008951341)); + coor.Add(new Tuple(32.10, 0.0008958961, 0.0008950937)); + coor.Add(new Tuple(32.12, 0.0008956508, 0.0008952173)); + coor.Add(new Tuple(32.12, 0.0008958668, 0.0008951133)); + coor.Add(new Tuple(32.13, 0.0008956375, 0.0008950415)); + coor.Add(new Tuple(32.15, 0.0008953126, 0.0008951023)); + coor.Add(new Tuple(32.16, 0.0008955727, 0.0008951449)); + coor.Add(new Tuple(32.17, 0.0008956699, 0.0008949710)); + coor.Add(new Tuple(32.18, 0.0008956014, 0.0008951004)); + coor.Add(new Tuple(32.18, 0.0008956223, 0.0008951328)); + coor.Add(new Tuple(32.19, 0.0008957048, 0.0008949129)); + coor.Add(new Tuple(32.21, 0.0008954445, 0.0008950543)); + coor.Add(new Tuple(32.21, 0.0008956221, 0.0008951640)); + coor.Add(new Tuple(32.22, 0.0008956152, 0.0008949491)); + coor.Add(new Tuple(32.23, 0.0008954710, 0.0008951046)); + coor.Add(new Tuple(32.25, 0.0008956490, 0.0008949299)); + coor.Add(new Tuple(32.25, 0.0008954405, 0.0008949438)); + coor.Add(new Tuple(32.27, 0.0008953835, 0.0008949079)); + coor.Add(new Tuple(32.27, 0.0008956828, 0.0008950079)); + coor.Add(new Tuple(32.28, 0.0008956685, 0.0008949299)); + coor.Add(new Tuple(32.29, 0.0008955779, 0.0008949188)); + coor.Add(new Tuple(32.29, 0.0008955948, 0.0008948665)); + coor.Add(new Tuple(32.30, 0.0008956386, 0.0008949223)); + coor.Add(new Tuple(32.31, 0.0008954645, 0.0008949439)); + coor.Add(new Tuple(32.32, 0.0008955589, 0.0008948317)); + coor.Add(new Tuple(32.32, 0.0008952470, 0.0008948708)); + coor.Add(new Tuple(32.33, 0.0008955017, 0.0008949688)); + coor.Add(new Tuple(32.33, 0.0008955587, 0.0008948828)); + coor.Add(new Tuple(32.34, 0.0008952662, 0.0008948616)); + coor.Add(new Tuple(32.35, 0.0008956657, 0.0008948720)); + coor.Add(new Tuple(32.35, 0.0008956142, 0.0008948047)); + coor.Add(new Tuple(32.35, 0.0008953200, 0.0008948498)); + coor.Add(new Tuple(32.36, 0.0008956432, 0.0008950350)); + coor.Add(new Tuple(32.37, 0.0008954987, 0.0008948340)); + coor.Add(new Tuple(32.37, 0.0008952825, 0.0008947320)); + coor.Add(new Tuple(32.38, 0.0008953134, 0.0008948176)); + coor.Add(new Tuple(32.38, 0.0008956251, 0.0008947319)); + coor.Add(new Tuple(32.38, 0.0008954208, 0.0008947577)); + coor.Add(new Tuple(32.38, 0.0008953679, 0.0008947250)); + coor.Add(new Tuple(32.38, 0.0008955016, 0.0008946936)); + coor.Add(new Tuple(32.39, 0.0008951987, 0.0008947989)); + coor.Add(new Tuple(32.39, 0.0008954207, 0.0008948195)); + coor.Add(new Tuple(32.40, 0.0008954157, 0.0008947950)); + coor.Add(new Tuple(32.41, 0.0008952066, 0.0008947363)); + coor.Add(new Tuple(32.41, 0.0008953898, 0.0008946870)); + coor.Add(new Tuple(32.41, 0.0008952886, 0.0008946294)); + coor.Add(new Tuple(32.42, 0.0008953308, 0.0008947229)); + coor.Add(new Tuple(32.42, 0.0008953743, 0.0008946437)); + coor.Add(new Tuple(32.42, 0.0008953975, 0.0008946807)); + coor.Add(new Tuple(32.43, 0.0008954076, 0.0008947033)); + coor.Add(new Tuple(32.44, 0.0008952549, 0.0008947073)); + coor.Add(new Tuple(32.44, 0.0008952812, 0.0008947232)); + coor.Add(new Tuple(32.44, 0.0008953075, 0.0008947833)); + coor.Add(new Tuple(32.45, 0.0008952448, 0.0008946401)); + coor.Add(new Tuple(32.45, 0.0008953848, 0.0008946348)); + coor.Add(new Tuple(32.45, 0.0008952475, 0.0008946956)); + coor.Add(new Tuple(32.45, 0.0008954270, 0.0008946064)); + coor.Add(new Tuple(32.46, 0.0008953414, 0.0008945516)); + coor.Add(new Tuple(32.46, 0.0008952930, 0.0008946550)); + coor.Add(new Tuple(32.47, 0.0008953959, 0.0008946335)); + coor.Add(new Tuple(32.48, 0.0008952943, 0.0008946271)); + coor.Add(new Tuple(32.48, 0.0008953277, 0.0008946704)); + coor.Add(new Tuple(32.48, 0.0008953308, 0.0008945976)); + coor.Add(new Tuple(32.48, 0.0008951325, 0.0008945785)); + coor.Add(new Tuple(32.48, 0.0008950470, 0.0008945899)); + coor.Add(new Tuple(32.48, 0.0008953179, 0.0008946750)); + coor.Add(new Tuple(32.51, 0.0008952383, 0.0008946059)); + coor.Add(new Tuple(32.52, 0.0008951700, 0.0008945982)); + coor.Add(new Tuple(32.55, 0.0008952572, 0.0008946518)); + coor.Add(new Tuple(32.58, 0.0008952515, 0.0008945528)); + coor.Add(new Tuple(32.61, 0.0008951199, 0.0008945935)); + coor.Add(new Tuple(32.65, 0.0008952242, 0.0008945332)); + coor.Add(new Tuple(32.68, 0.0008950347, 0.0008944785)); + coor.Add(new Tuple(32.74, 0.0008950630, 0.0008945180)); + coor.Add(new Tuple(32.78, 0.0008951407, 0.0008944659)); + coor.Add(new Tuple(32.81, 0.0008949374, 0.0008944475)); + coor.Add(new Tuple(32.87, 0.0008949854, 0.0008943669)); + coor.Add(new Tuple(32.90, 0.0008948170, 0.0008943765)); + coor.Add(new Tuple(32.94, 0.0008948868, 0.0008943582)); + coor.Add(new Tuple(32.99, 0.0008949517, 0.0008943358)); + coor.Add(new Tuple(33.03, 0.0008948052, 0.0008941957)); + coor.Add(new Tuple(33.07, 0.0008946910, 0.0008943496)); + coor.Add(new Tuple(33.11, 0.0008947001, 0.0008942000)); + coor.Add(new Tuple(33.15, 0.0008947289, 0.0008940596)); + coor.Add(new Tuple(33.19, 0.0008946344, 0.0008940593)); + coor.Add(new Tuple(33.23, 0.0008945181, 0.0008940606)); + coor.Add(new Tuple(33.26, 0.0008946285, 0.0008939726)); + coor.Add(new Tuple(33.30, 0.0008943475, 0.0008939852)); + coor.Add(new Tuple(33.33, 0.0008944807, 0.0008939411)); + coor.Add(new Tuple(33.36, 0.0008945080, 0.0008938632)); + coor.Add(new Tuple(33.39, 0.0008943037, 0.0008938470)); + coor.Add(new Tuple(33.42, 0.0008944049, 0.0008938359)); + coor.Add(new Tuple(33.46, 0.0008942574, 0.0008937371)); + coor.Add(new Tuple(33.49, 0.0008942483, 0.0008936864)); + coor.Add(new Tuple(33.52, 0.0008941786, 0.0008936878)); + coor.Add(new Tuple(33.54, 0.0008942638, 0.0008937748)); + coor.Add(new Tuple(33.57, 0.0008942330, 0.0008936011)); + coor.Add(new Tuple(33.60, 0.0008942416, 0.0008935901)); + coor.Add(new Tuple(33.63, 0.0008940751, 0.0008932810)); + coor.Add(new Tuple(33.65, 0.0008940157, 0.0008933115)); + coor.Add(new Tuple(33.68, 0.0008940229, 0.0008934920)); + coor.Add(new Tuple(33.70, 0.0008938946, 0.0008930090)); + coor.Add(new Tuple(33.73, 0.0008939042, 0.0008929830)); + coor.Add(new Tuple(33.76, 0.0008940245, 0.0008931942)); + coor.Add(new Tuple(33.78, 0.0008940191, 0.0008924212)); + coor.Add(new Tuple(33.80, 0.0008938918, 0.0008935634)); + coor.Add(new Tuple(33.83, 0.0008940588, 0.0008933255)); + coor.Add(new Tuple(33.84, 0.0008937771, 0.0008931282)); + coor.Add(new Tuple(33.86, 0.0008937833, 0.0008936592)); + coor.Add(new Tuple(33.88, 0.0008937259, 0.0008930821)); + coor.Add(new Tuple(33.89, 0.0008937341, 0.0008927138)); + coor.Add(new Tuple(33.91, 0.0008937952, 0.0008930374)); + coor.Add(new Tuple(33.93, 0.0008938893, 0.0008931835)); + coor.Add(new Tuple(33.95, 0.0008936779, 0.0008928664)); + coor.Add(new Tuple(33.97, 0.0008936747, 0.0008931475)); + coor.Add(new Tuple(33.99, 0.0008937311, 0.0008932727)); + coor.Add(new Tuple(33.99, 0.0008937074, 0.0008926676)); + coor.Add(new Tuple(34.02, 0.0008936076, 0.0008933576)); + coor.Add(new Tuple(34.02, 0.0008937305, 0.0008930703)); + coor.Add(new Tuple(34.05, 0.0008934564, 0.0008927777)); + coor.Add(new Tuple(34.05, 0.0008936432, 0.0008931641)); + coor.Add(new Tuple(34.07, 0.0008936024, 0.0008928920)); + coor.Add(new Tuple(34.09, 0.0008935058, 0.0008927667)); + coor.Add(new Tuple(34.09, 0.0008935894, 0.0008929911)); + coor.Add(new Tuple(34.10, 0.0008935404, 0.0008932145)); + coor.Add(new Tuple(34.12, 0.0008935207, 0.0008929613)); + coor.Add(new Tuple(34.13, 0.0008934379, 0.0008930592)); + coor.Add(new Tuple(34.14, 0.0008934770, 0.0008932686)); + coor.Add(new Tuple(34.15, 0.0008934141, 0.0008928042)); + coor.Add(new Tuple(34.16, 0.0008934369, 0.0008930030)); + coor.Add(new Tuple(34.18, 0.0008935869, 0.0008926753)); + coor.Add(new Tuple(34.19, 0.0008933977, 0.0008928731)); + coor.Add(new Tuple(34.19, 0.0008933817, 0.0008931622)); + coor.Add(new Tuple(34.21, 0.0008935052, 0.0008927505)); + coor.Add(new Tuple(34.22, 0.0008933576, 0.0008929442)); + coor.Add(new Tuple(34.22, 0.0008933623, 0.0008930201)); + coor.Add(new Tuple(34.23, 0.0008934146, 0.0008927234)); + coor.Add(new Tuple(34.23, 0.0008934127, 0.0008928987)); + coor.Add(new Tuple(34.25, 0.0008933990, 0.0008929903)); + coor.Add(new Tuple(34.26, 0.0008933347, 0.0008926208)); + coor.Add(new Tuple(34.26, 0.0008933578, 0.0008925966)); + coor.Add(new Tuple(34.28, 0.0008933024, 0.0008928596)); + coor.Add(new Tuple(34.28, 0.0008934724, 0.0008927551)); + coor.Add(new Tuple(34.28, 0.0008933203, 0.0008927471)); + coor.Add(new Tuple(34.30, 0.0008932547, 0.0008929135)); + coor.Add(new Tuple(34.30, 0.0008934594, 0.0008926529)); + coor.Add(new Tuple(34.31, 0.0008932944, 0.0008926576)); + coor.Add(new Tuple(34.31, 0.0008932999, 0.0008928700)); + coor.Add(new Tuple(34.32, 0.0008933767, 0.0008925435)); + coor.Add(new Tuple(34.32, 0.0008932116, 0.0008925452)); + coor.Add(new Tuple(34.33, 0.0008934145, 0.0008928315)); + coor.Add(new Tuple(34.33, 0.0008932609, 0.0008924516)); + coor.Add(new Tuple(34.34, 0.0008932842, 0.0008925905)); + coor.Add(new Tuple(34.35, 0.0008932519, 0.0008928786)); + coor.Add(new Tuple(34.35, 0.0008933290, 0.0008927230)); + coor.Add(new Tuple(34.35, 0.0008931937, 0.0008926594)); + coor.Add(new Tuple(34.36, 0.0008931931, 0.0008925669)); + coor.Add(new Tuple(34.36, 0.0008932392, 0.0008924387)); + coor.Add(new Tuple(34.37, 0.0008930882, 0.0008924102)); + coor.Add(new Tuple(34.38, 0.0008933212, 0.0008924856)); + coor.Add(new Tuple(34.38, 0.0008932460, 0.0008924858)); + coor.Add(new Tuple(34.38, 0.0008933219, 0.0008926729)); + coor.Add(new Tuple(34.39, 0.0008933551, 0.0008925332)); + coor.Add(new Tuple(34.39, 0.0008931734, 0.0008923945)); + coor.Add(new Tuple(34.41, 0.0008931344, 0.0008927192)); + coor.Add(new Tuple(34.41, 0.0008932723, 0.0008925836)); + coor.Add(new Tuple(34.40, 0.0008931431, 0.0008923924)); + coor.Add(new Tuple(34.41, 0.0008932292, 0.0008925693)); + coor.Add(new Tuple(34.41, 0.0008931325, 0.0008924431)); + coor.Add(new Tuple(34.42, 0.0008931598, 0.0008924431)); + coor.Add(new Tuple(34.42, 0.0008931430, 0.0008925614)); + coor.Add(new Tuple(34.43, 0.0008931390, 0.0008926122)); + coor.Add(new Tuple(34.42, 0.0008932109, 0.0008924282)); + coor.Add(new Tuple(34.43, 0.0008931896, 0.0008926059)); + coor.Add(new Tuple(34.44, 0.0008930917, 0.0008926521)); + coor.Add(new Tuple(34.45, 0.0008932369, 0.0008923077)); + coor.Add(new Tuple(34.45, 0.0008930241, 0.0008926456)); + coor.Add(new Tuple(34.45, 0.0008931783, 0.0008924706)); + coor.Add(new Tuple(34.45, 0.0008930657, 0.0008923540)); + coor.Add(new Tuple(34.45, 0.0008931268, 0.0008927274)); + coor.Add(new Tuple(34.46, 0.0008929948, 0.0008925181)); + coor.Add(new Tuple(34.46, 0.0008931850, 0.0008924039)); + coor.Add(new Tuple(34.47, 0.0008930785, 0.0008925549)); + coor.Add(new Tuple(34.48, 0.0008931084, 0.0008927159)); + coor.Add(new Tuple(34.48, 0.0008931429, 0.0008925023)); + coor.Add(new Tuple(34.49, 0.0008929504, 0.0008924464)); + coor.Add(new Tuple(34.50, 0.0008931171, 0.0008924883)); + coor.Add(new Tuple(34.52, 0.0008931504, 0.0008924800)); + coor.Add(new Tuple(34.55, 0.0008931033, 0.0008925162)); + coor.Add(new Tuple(34.58, 0.0008930879, 0.0008924992)); + coor.Add(new Tuple(34.62, 0.0008930467, 0.0008925244)); + coor.Add(new Tuple(34.65, 0.0008929446, 0.0008926030)); + coor.Add(new Tuple(34.69, 0.0008930114, 0.0008923829)); + coor.Add(new Tuple(34.74, 0.0008928742, 0.0008924016)); + coor.Add(new Tuple(34.78, 0.0008928799, 0.0008924313)); + coor.Add(new Tuple(34.82, 0.0008928118, 0.0008922059)); + coor.Add(new Tuple(34.86, 0.0008928533, 0.0008923076)); + coor.Add(new Tuple(34.91, 0.0008928137, 0.0008922752)); + coor.Add(new Tuple(34.95, 0.0008927373, 0.0008921479)); + coor.Add(new Tuple(34.99, 0.0008927516, 0.0008921585)); + coor.Add(new Tuple(35.03, 0.0008925876, 0.0008922539)); + coor.Add(new Tuple(35.07, 0.0008926878, 0.0008921285)); + coor.Add(new Tuple(35.10, 0.0008925861, 0.0008920087)); + coor.Add(new Tuple(35.14, 0.0008924476, 0.0008920518)); + coor.Add(new Tuple(35.18, 0.0008926157, 0.0008918849)); + coor.Add(new Tuple(35.21, 0.0008924381, 0.0008918522)); + coor.Add(new Tuple(35.26, 0.0008924654, 0.0008919468)); + coor.Add(new Tuple(35.29, 0.0008922803, 0.0008917336)); + coor.Add(new Tuple(35.32, 0.0008923648, 0.0008917886)); + coor.Add(new Tuple(35.35, 0.0008923185, 0.0008918836)); + coor.Add(new Tuple(35.39, 0.0008922287, 0.0008917223)); + coor.Add(new Tuple(35.42, 0.0008922597, 0.0008916501)); + coor.Add(new Tuple(35.45, 0.0008922015, 0.0008918193)); + coor.Add(new Tuple(35.47, 0.0008922353, 0.0008916280)); + coor.Add(new Tuple(35.50, 0.0008922079, 0.0008915147)); + coor.Add(new Tuple(35.53, 0.0008914265, 0.0008915645)); + coor.Add(new Tuple(35.56, 0.0008922723, 0.0008914922)); + coor.Add(new Tuple(35.59, 0.0008928836, 0.0008914681)); + coor.Add(new Tuple(35.61, 0.0008921027, 0.0008914790)); + coor.Add(new Tuple(35.64, 0.0008919678, 0.0008914506)); + coor.Add(new Tuple(35.67, 0.0008919125, 0.0008914964)); + coor.Add(new Tuple(35.69, 0.0008916493, 0.0008914294)); + coor.Add(new Tuple(35.71, 0.0008917211, 0.0008912539)); + coor.Add(new Tuple(35.73, 0.0008914246, 0.0008914812)); + coor.Add(new Tuple(35.76, 0.0008914269, 0.0008913171)); + coor.Add(new Tuple(35.79, 0.0008921873, 0.0008912201)); + coor.Add(new Tuple(35.80, 0.0008919359, 0.0008913455)); + coor.Add(new Tuple(35.83, 0.0008916605, 0.0008912443)); + coor.Add(new Tuple(35.85, 0.0008921478, 0.0008911898)); + coor.Add(new Tuple(35.86, 0.0008913704, 0.0008912719)); + coor.Add(new Tuple(35.89, 0.0008912116, 0.0008912487)); + coor.Add(new Tuple(35.90, 0.0008918157, 0.0008911207)); + coor.Add(new Tuple(35.93, 0.0008911857, 0.0008912835)); + coor.Add(new Tuple(35.95, 0.0008914791, 0.0008911539)); + coor.Add(new Tuple(35.97, 0.0008918495, 0.0008909575)); + coor.Add(new Tuple(35.99, 0.0008912489, 0.0008911511)); + coor.Add(new Tuple(36.00, 0.0008912934, 0.0008911292)); + coor.Add(new Tuple(36.02, 0.0008916311, 0.0008910038)); + coor.Add(new Tuple(36.03, 0.0008916430, 0.0008911254)); + coor.Add(new Tuple(36.05, 0.0008911201, 0.0008911092)); + coor.Add(new Tuple(36.06, 0.0008912467, 0.0008909543)); + coor.Add(new Tuple(36.08, 0.0008913812, 0.0008909995)); + coor.Add(new Tuple(36.09, 0.0008912056, 0.0008910886)); + coor.Add(new Tuple(36.11, 0.0008915388, 0.0008909692)); + coor.Add(new Tuple(36.13, 0.0008913120, 0.0008909211)); + coor.Add(new Tuple(36.13, 0.0008914253, 0.0008909747)); + coor.Add(new Tuple(36.14, 0.0008916183, 0.0008909891)); + coor.Add(new Tuple(36.16, 0.0008913176, 0.0008909801)); + coor.Add(new Tuple(36.16, 0.0008914878, 0.0008909076)); + coor.Add(new Tuple(36.17, 0.0008913530, 0.0008909573)); + coor.Add(new Tuple(36.18, 0.0008912244, 0.0008909762)); + coor.Add(new Tuple(36.19, 0.0008914609, 0.0008908414)); + coor.Add(new Tuple(36.19, 0.0008915033, 0.0008908642)); + coor.Add(new Tuple(36.20, 0.0008914131, 0.0008908880)); + coor.Add(new Tuple(36.20, 0.0008910369, 0.0008908858)); + coor.Add(new Tuple(36.20, 0.0008916376, 0.0008908728)); + coor.Add(new Tuple(36.21, 0.0008914988, 0.0008908964)); + coor.Add(new Tuple(36.22, 0.0008911332, 0.0008908038)); + coor.Add(new Tuple(36.21, 0.0008916279, 0.0008908267)); + coor.Add(new Tuple(36.23, 0.0008911238, 0.0008908796)); + coor.Add(new Tuple(36.22, 0.0008910424, 0.0008908195)); + coor.Add(new Tuple(36.22, 0.0008911990, 0.0008907830)); + coor.Add(new Tuple(36.22, 0.0008913651, 0.0008908409)); + coor.Add(new Tuple(36.23, 0.0008913840, 0.0008907468)); + coor.Add(new Tuple(36.22, 0.0008915671, 0.0008907468)); + coor.Add(new Tuple(36.22, 0.0008913001, 0.0008908629)); + coor.Add(new Tuple(36.22, 0.0008913584, 0.0008907761)); + coor.Add(new Tuple(36.22, 0.0008914373, 0.0008908021)); + coor.Add(new Tuple(36.22, 0.0008912230, 0.0008908828)); + coor.Add(new Tuple(36.22, 0.0008913907, 0.0008907413)); + #endregion + sb.AppendLine($"Ref Temp.; Tof; Result;"); + foreach (var item in coor) + { + var t = interPol(TempFromTofLUT, item.Item3); + sb.AppendLine($"{item.Item1};{item.Item3};{t}"); + + } + + File.WriteAllText("193400388_result.txt", sb.ToString()); } } } \ No newline at end of file diff --git a/Common/CordoPlot/App.config b/Common/CordoPlot/App.config new file mode 100644 index 00000000..193aecc6 --- /dev/null +++ b/Common/CordoPlot/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Common/CordoPlot/App.xaml b/Common/CordoPlot/App.xaml new file mode 100644 index 00000000..60149e7c --- /dev/null +++ b/Common/CordoPlot/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/Common/CordoPlot/App.xaml.cs b/Common/CordoPlot/App.xaml.cs new file mode 100644 index 00000000..1c7b0769 --- /dev/null +++ b/Common/CordoPlot/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace CordoPlot +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/Common/CordoPlot/CordoPlot.csproj b/Common/CordoPlot/CordoPlot.csproj new file mode 100644 index 00000000..002b73e3 --- /dev/null +++ b/Common/CordoPlot/CordoPlot.csproj @@ -0,0 +1,177 @@ + + + + + Debug + AnyCPU + {FD9EAB89-D2E5-4006-8E4F-7EF7A010749D} + WinExe + CordoPlot + CordoPlot + v4.8 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\OpenTK.GLWpfControl.3.3.0\lib\net452\GLWpfControl.dll + + + ..\packages\OpenTK.3.3.1\lib\net20\OpenTK.dll + + + ..\packages\ScottPlot.5.0.32\lib\net462\ScottPlot.dll + + + ..\packages\ScottPlot.WPF.5.0.32\lib\net462\ScottPlot.WPF.dll + + + ..\packages\SkiaSharp.2.88.8\lib\net462\SkiaSharp.dll + + + ..\packages\SkiaSharp.Views.Desktop.Common.2.88.8\lib\net462\SkiaSharp.Views.Desktop.Common.dll + + + ..\packages\SkiaSharp.Views.WPF.2.88.8\lib\net462\SkiaSharp.Views.WPF.dll + + + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + + + ..\packages\System.Drawing.Common.4.7.3\lib\net461\System.Drawing.Common.dll + + + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + True + + + ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + {1B02C79E-0B19-43E2-8F6B-71EF0C786C97} + CommonCore + + + {0E524D43-7B66-45CD-AA74-41D51AFC3D99} + DataPackages + + + {29617814-313E-409E-AA5D-59C78A9D4DF1} + StreamingProtocol + + + {6CCDB656-C676-4360-BABA-C4596AAD175D} + Measurements + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + \ No newline at end of file diff --git a/Common/CordoPlot/MainWindow.xaml b/Common/CordoPlot/MainWindow.xaml new file mode 100644 index 00000000..7f488107 --- /dev/null +++ b/Common/CordoPlot/MainWindow.xaml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Common/CordoPlot/MainWindow.xaml.cs b/Common/CordoPlot/MainWindow.xaml.cs new file mode 100644 index 00000000..32f08faa --- /dev/null +++ b/Common/CordoPlot/MainWindow.xaml.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Xylem.Common.CommonCore.Consts; +using Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.StreamingProtocol; +using Xylem.Common.Metrology.Measurements; + +namespace CordoPlot +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + } + + private void Button_Click(Object sender, RoutedEventArgs e) + { + + var dialog = new Microsoft.Win32.OpenFileDialog(); + dialog.FileName = "led"; // Default file name + dialog.DefaultExt = ".log"; // Default file extension + dialog.Filter = "Text documents (.log)|*.log"; // Filter files by extension + + // Show open file dialog box + bool? result = dialog.ShowDialog(); + + // Process open file dialog box results + if (result == true) + { + // Open document + string filename = dialog.FileName; + + var AllLines = File.ReadAllLines(filename); + var listOfData = new List(); + var decoder = new StreamingDecoder(); + var currentSyncmark = SyncMarkRecord.DecodeEveryPackage; + //DecodeMsg + foreach (var line in AllLines) + { + decoder = new StreamingDecoder(); + + if (line.Contains("|")) + { + + var t = line.Split('|'); + DateTime recived = DateTime.Now; + DateTime.TryParse(t[0], out recived); + if (t[1].Contains("@")) + { + decoder.DecodeMsg(t[1].Trim()); + IMeasurementRecord recordToAdd; + if (decoder.DataBendDetectTest.IsValid) + { + decoder.DataBendDetectTest.ReceivedTime = recived; + decoder.DataBendDetectTest.SyncMarkRecord = currentSyncmark; + recordToAdd = decoder.DataBendDetectTest ; + } + else if (decoder.DataCalib.IsValid) + { + decoder.DataCalib.ReceivedTime = recived; + decoder.DataCalib.SyncMarkRecord = currentSyncmark; + recordToAdd = decoder.DataCalib; + } + else if (decoder.DataFlowTest.IsValid) + { + decoder.DataFlowTest.ReceivedTime = recived; + decoder.DataFlowTest.SyncMarkRecord = currentSyncmark; + recordToAdd = decoder.DataFlowTest; + } + else + { + //No valid data + continue; + } + listOfData.Add(recordToAdd); + + } + else + { + if (line.Contains("Mark next incoming record as")) + { + if (line.Contains("Mark next incoming record as SyncStart")) + { + currentSyncmark = SyncMarkRecord.SyncStart; + } + else if (line.Contains("Mark next incoming record as DecodeIntermediate")) + { + currentSyncmark = SyncMarkRecord.DecodeIntermediate; + } + else if (line.Contains("Mark next incoming record as SkipDecoding")) + { + currentSyncmark = SyncMarkRecord.SkipDecoding; + } + else if (line.Contains("Mark next incoming record as SyncEnd")) + { + currentSyncmark = SyncMarkRecord.SyncEnd; + } + else + { + currentSyncmark = SyncMarkRecord.DecodeEveryPackage; + } + + } + } + + + } + + //FlowTestRecord + } + + + } + + double[] dataX = { 1, 2, 3, 4, 5 }; + double[] dataY = { 1, 4, 9, 16, 25 }; + WpfPlot1.Plot.Add.Scatter(dataX, dataY); + WpfPlot1.Refresh(); + + } + } +} diff --git a/Common/CordoPlot/OpenTK.dll.config b/Common/CordoPlot/OpenTK.dll.config new file mode 100644 index 00000000..7098d39e --- /dev/null +++ b/Common/CordoPlot/OpenTK.dll.config @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Common/CordoPlot/Properties/AssemblyInfo.cs b/Common/CordoPlot/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..eb957b47 --- /dev/null +++ b/Common/CordoPlot/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CordoPlot")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CordoPlot")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Common/CordoPlot/Properties/Resources.Designer.cs b/Common/CordoPlot/Properties/Resources.Designer.cs new file mode 100644 index 00000000..2ef49c4d --- /dev/null +++ b/Common/CordoPlot/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CordoPlot.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CordoPlot.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Common/CordoPlot/Properties/Resources.resx b/Common/CordoPlot/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Common/CordoPlot/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Common/CordoPlot/Properties/Settings.Designer.cs b/Common/CordoPlot/Properties/Settings.Designer.cs new file mode 100644 index 00000000..4770ef85 --- /dev/null +++ b/Common/CordoPlot/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CordoPlot.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Common/CordoPlot/Properties/Settings.settings b/Common/CordoPlot/Properties/Settings.settings new file mode 100644 index 00000000..033d7a5e --- /dev/null +++ b/Common/CordoPlot/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Common/CordoPlot/packages.config b/Common/CordoPlot/packages.config new file mode 100644 index 00000000..056e0ad5 --- /dev/null +++ b/Common/CordoPlot/packages.config @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Common/CordonelPreadjustmentUi/CordonelPreadjustmentUi.csproj b/Common/CordonelPreadjustmentUi/CordonelPreadjustmentUi.csproj index 53086dca..73615840 100644 --- a/Common/CordonelPreadjustmentUi/CordonelPreadjustmentUi.csproj +++ b/Common/CordonelPreadjustmentUi/CordonelPreadjustmentUi.csproj @@ -111,6 +111,11 @@ + + + + true + ..\packages\Newtonsoft.Json.13.0.3\lib\net40\Newtonsoft.Json.dll @@ -129,7 +134,7 @@ - ..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Net.Http.dll + ..\..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Net.Http.dll diff --git a/Common/CordonelPreadjustmentUi/MeterStateControl.cs b/Common/CordonelPreadjustmentUi/MeterStateControl.cs index c42192a5..1a272dec 100644 --- a/Common/CordonelPreadjustmentUi/MeterStateControl.cs +++ b/Common/CordonelPreadjustmentUi/MeterStateControl.cs @@ -4,10 +4,10 @@ using System; using System.Collections.Generic; using System.Drawing; using System.Linq; +using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; -using Xylem.Common.Hardware.WaterMeter.Genesis.Registers; using Xylem.Common.Logic.SoftwareAccessHelper; using Xylem.Common.Ui.CordonelPreadjustmentUi.Helper.Extensions; @@ -88,6 +88,36 @@ namespace CordonelPreadjustmentUi { try { + if (MeterTempMode == TempMode.CalcTof) + { + //Qickfiyx für 2016 statt der flansche auf die p150 ip thermometer + var ret = new List(); + + HttpClient client = new HttpClient(); // actually only one object should be created by Application + string page = client.GetStringAsync("http://10.49.41.36/de/user.htm?Sess=").Result; + + foreach (var item in page.Replace("
", "}").Split('}')) + { + if (item.Contains("°C
")) + { + decimal d = 0; + if (decimal.TryParse(item.Replace("°C<", "§").Split('§')[0], out d)) + { + ret.Add(d); + } + ; + + } + //°C + } + if (ret.Count == 2) + { + + SetTemperature((ret.Sum() / 2), false); + return; + } + } + var cRecords = Meter.CurrentRecords.ToList(); Log($"cRecords.Count={cRecords.Count}"); if (cRecords != null && cRecords.Any()) @@ -118,7 +148,7 @@ namespace CordonelPreadjustmentUi Log($"avgTof;{x}({sumTof}/{countTof})"); - + checkTempMeter = interPol(TempFromTofLUT, x); Meter.CurrentRecords.Clear(); } @@ -179,31 +209,31 @@ namespace CordonelPreadjustmentUi try { - - if ((x <= points[0].Item1) && (x >= points.Last().Item1)) - { - var i = 0; - foreach (var val in points) + + if ((x <= points[0].Item1) && (x >= points.Last().Item1)) { - if (points[i].Item1 <= x) + var i = 0; + foreach (var val in points) { - x1 = points[i - 1].Item1; - y1 = points[i - 1].Item2; - x2 = points[i].Item1; - y2 = points[i].Item2; - break; + if (points[i].Item1 <= x) + { + x1 = points[i - 1].Item1; + y1 = points[i - 1].Item2; + x2 = points[i].Item1; + y2 = points[i].Item2; + break; + } + i = i + 1; } - i = i + 1; + + checkTempMeter = (decimal)((y2 - y1) / (x2 - x1) * (x - x1) + y1); + } + else + { + checkTempMeter = 1; } - checkTempMeter = (decimal)((y2 - y1) / (x2 - x1) * (x - x1) + y1); - } - else - { - checkTempMeter = 1; - } - - return checkTempMeter; + return checkTempMeter; } catch (Exception ex) { @@ -309,7 +339,7 @@ namespace CordonelPreadjustmentUi var pcbid = "notFound"; try { - + if (Meter.Slot == 11) { pcbid = "193400032"; @@ -365,7 +395,7 @@ namespace CordonelPreadjustmentUi { Log("StartTempWatch" + ex.Message); } - + } public enum TempMode diff --git a/Common/CordonelPreadjustmentUi/PreAdjustmentSettingsContainer.cs b/Common/CordonelPreadjustmentUi/PreAdjustmentSettingsContainer.cs index 1d26d79a..27cb9b84 100644 --- a/Common/CordonelPreadjustmentUi/PreAdjustmentSettingsContainer.cs +++ b/Common/CordonelPreadjustmentUi/PreAdjustmentSettingsContainer.cs @@ -18,7 +18,7 @@ namespace CordonelPreadjustmentUi public Int32 ZeroOffset1 { get; internal set; } = 0; public Int32 ZeroOffset2 { get; internal set; } = 0; public Int32 ZeroOffset3 { get; internal set; } = 0; - public Int32 Samplerate { get; internal set; } = 10; + public Int32 Samplerate { get; internal set; } = 16; public MeterSize MeterSize { get; internal set; } = MeterSize.DN50; public LedMode LedMode { get; internal set; } = LedMode.CalibData; #endregion diff --git a/Common/CordonelPreadjustmentUi/Processes/Actions/OffsetTestProcess.cs b/Common/CordonelPreadjustmentUi/Processes/Actions/OffsetTestProcess.cs index c5784501..c08adde3 100644 --- a/Common/CordonelPreadjustmentUi/Processes/Actions/OffsetTestProcess.cs +++ b/Common/CordonelPreadjustmentUi/Processes/Actions/OffsetTestProcess.cs @@ -105,7 +105,7 @@ namespace CordonelPreadjustmentUi.Processes.Actions if (MaxTimeoutWarnings <= 0) { pp.DebugMessage($"Fatal timeout while collecting data. Please check LED singnal. Has {offsetRecords.Count} from {pp.Setting.OffsetTestNumberOfLines * 3}", meterctl.Slot, "DC", meterctl.Meter.PcbId); - Ok = false; + // Ok = false; } if (CheckAbort(Ok, meterctl)) { return Ok; } diff --git a/Common/Hardware/Interfaces/Ports/SerialPorts/BaseSerialPort.cs b/Common/Hardware/Interfaces/Ports/SerialPorts/BaseSerialPort.cs index 559838d0..13ae7987 100644 --- a/Common/Hardware/Interfaces/Ports/SerialPorts/BaseSerialPort.cs +++ b/Common/Hardware/Interfaces/Ports/SerialPorts/BaseSerialPort.cs @@ -444,6 +444,7 @@ namespace Xylem.Common.Hardware.Interfaces.Ports.SerialPorts if (!string.IsNullOrEmpty(rxStringRecord)) { //decode optional at synchronized data SyncStart, SyncEnd or DecodeIntermediate + //todo remove after air problem if (SyncMarkRecord.SkipDecoding != dataSyncMarkThisRun) { OnRawRecordReceived?.Invoke(this, new StringPortDataEventArgs(rxStringRecord, diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs index ce341f57..ec30a07d 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs @@ -819,7 +819,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore //nobody is listening } } - + public Dictionary> ErrorCurrent = new Dictionary>(); /// /// Track all incoming led record packages (Calibration and Flow) /// @@ -849,6 +849,18 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore return; } + //if (calRec.Validation != 0) + //{ + // if (!ErrorCurrent.ContainsKey(calRec.Channel)) + // { + // ErrorCurrent.Add(calRec.Channel, new Tuple(1, DateTime.Now)); + // } + // else + // { + // ErrorCurrent[calRec.Channel] = new Tuple(ErrorCurrent[calRec.Channel].Item1 + 1, DateTime.Now); + // } + // _logger.Info($"MessuremntError on {calRec.Channel} Code: {calRec.Validation}"); + //} } AddData(((IMeasurementRecord)result)); } diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterCalibration.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterCalibration.cs index 37f98c2f..6d5784ba 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterCalibration.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterCalibration.cs @@ -121,6 +121,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public void SetCalibFactorsAllChannels(Boolean justLog = false) { + WriteRegister(Register.Genesisflow.SampleRate, 2, checkRegister: true); + WriteRegister(Register.Genesisflow.TriggerIdle, 0x1234, true); for (var channel = 0; channel < MeterConfig.CalibChannels; channel++) { if (_calibFactor[channel].IsCalculated == false) continue; @@ -132,16 +134,25 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore else { var registerRawCalibFactor = _calibFactor[channel].GetMeterRawCalibFactor(); - WriteRegister(_calibFactor[channel].RegisterToStoreCalibFactor, + var resultWrite = WriteRegister(_calibFactor[channel].RegisterToStoreCalibFactor, registerRawCalibFactor, checkRegister: true); - _logger.Info($"Slot:{Slot}, Channel:{channel} - Stored calibration factor({_registersToStoreCalibFactor})"); + _logger.Info($"Slot:{Slot}, Channel:{channel} - Stored calibration factor({_registersToStoreCalibFactor[channel]})"); + + if (resultWrite) + { + _logger.Warn($"Set calibration went wrong {_calibFactor[channel].RegisterToStoreCalibFactor}, with {registerRawCalibFactor}"); + } } } - WriteRegister(Register.Genesisflow.SampleRate, 10, checkRegister: true); + WriteRegister(Register.Genesisflow.ResetAccumulators, true); //WriteRegister(Register.Genesisflow.ForwardArrow, 0, checkRegister: true); - WriteRegister(Register.Genesisflow.StoreCalibration, 1); + WriteRegister(Register.Genesisflow.StoreCalibration, 1,true); + + _logger.Info($"Slot:{Slot} - StoreCalibration { RegisterConverter.ByteArrayToValue(ReadRegister(Register.Genesisflow.StoreCalibration))}"); + WriteRegister(Register.Genesisflow.TriggerActive, 1, true); _logger.Info($"Slot:{Slot} - Set forward arrow of LCD, reset accumulators, set sample rate to 2Hz"); + WriteRegister(Register.Genesisflow.SampleRate, 10, checkRegister: true); } } } \ No newline at end of file diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterMeasurement.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterMeasurement.cs index 07293149..d4fc7395 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterMeasurement.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/_GenesisMeterMeasurement.cs @@ -50,7 +50,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore //SkipPreparationForTestBench = true; //TODO set display unit //TODO calculated overflow volume for display - WriteRegister(Register.Genesisflow.SampleRate, 16, checkRegister: true); + WriteRegister(Register.Genesisflow.SampleRate, 0x0a, checkRegister: true); WriteRegister(Register.Genesisflow.LedMode, (Byte)LedMode.FlowTestAndCalibData, checkRegister: true); WriteRegister("GENESISFLOW_SealDisplay", 0, true, true); diff --git a/Common/Hardware/WaterMeter/WaterMeterCore/WaterMeterRegisters/obj/Debug/WaterMeterRegisters.csproj.CoreCompileInputs.cache b/Common/Hardware/WaterMeter/WaterMeterCore/WaterMeterRegisters/obj/Debug/WaterMeterRegisters.csproj.CoreCompileInputs.cache index 8d4994b0..d110f5fc 100644 --- a/Common/Hardware/WaterMeter/WaterMeterCore/WaterMeterRegisters/obj/Debug/WaterMeterRegisters.csproj.CoreCompileInputs.cache +++ b/Common/Hardware/WaterMeter/WaterMeterCore/WaterMeterRegisters/obj/Debug/WaterMeterRegisters.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -8fbe991b217e7692af4817ad205b768685aa5a72 +c43c40a030005a8f189e6179faf40a6d42bfef5c diff --git a/Common/ProductionUiCordonel/ProductionProcesses/Actions/ProductionCheckShippingState.cs b/Common/ProductionUiCordonel/ProductionProcesses/Actions/ProductionCheckShippingState.cs index 44d1826f..fb58a630 100644 --- a/Common/ProductionUiCordonel/ProductionProcesses/Actions/ProductionCheckShippingState.cs +++ b/Common/ProductionUiCordonel/ProductionProcesses/Actions/ProductionCheckShippingState.cs @@ -2,6 +2,7 @@ using ProductionUiCordonel.ProductionProcesses.Enum; using ProductionUiCordonel.UserControls.FinalTest; using System; +using System.Linq; using System.Windows.Controls; using System.Windows.Threading; using Xylem.Common.CommonCore.Configuration; @@ -191,11 +192,27 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions UserControl.lblText.Dispatcher.Invoke(DispatcherPriority.Send, - new Action(() => - { - UserControl.lblText.Content = "Lut not correct"; - } - )); + new Action(() => + { + UserControl.lblText.Content = "Lut not correct"; + } + )); + } + + var meterFWApp = Meter.MeterAppListVersion.First(a => a.AppId == 24); + + if (!string.IsNullOrEmpty(res[9]) && meterFWApp.StrVersion.Replace(".", "") != uint.Parse(res[9]).ToString("X4")) + { + currentProcessState = ProductionProcessState.Error; + + + + UserControl.lblText.Dispatcher.Invoke(DispatcherPriority.Send, + new Action(() => + { + UserControl.lblText.Content = $"FW not correct Meter has {meterFWApp.Version} and should have {uint.Parse(res[9])}"; + } + )); } diff --git a/Common/Service/MeterProcessState/Controllers/FinalCheckController.cs b/Common/Service/MeterProcessState/Controllers/FinalCheckController.cs index b0cb4fab..2124d383 100644 --- a/Common/Service/MeterProcessState/Controllers/FinalCheckController.cs +++ b/Common/Service/MeterProcessState/Controllers/FinalCheckController.cs @@ -28,6 +28,53 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers ); } + ///// + ///// Get the values to correct battery usage in field + ///// + ///// PcbID from Meter + ///// + //[Route("GetPowermonCorrectionData"), HttpGet] + //public async Task GetPowermonCorrectionData(String pcbID) + //{ + // try + // { + // return await Task.Run(() => + // { + // using (var dataAccess = new SqlDataAccess(GlobalConfig.ConnectionString.Value)) + // { + + // var sb = new StringBuilder(); + + // sb.AppendLine($" SELECT distinct[MapPcbIdToSerialNumber_SerialNumber], mapOrder.CordonelPressureTest_FertigungsAuftragsNr "); + // sb.AppendLine($" FROM Auftrag.dbo.Cordonel_PressureTest mapOrder "); + // sb.AppendLine($" left outer join [Auftrag].[dbo].[MapPcbIdToSerialNumber] map on mapOrder.CordonelPressureTest_PcbId = map.MapPcbIdToSerialNumber_PcbId "); + // sb.AppendLine($" left outer join Auftrag.dbo.AuftragPositionSerienNr mapSrn on map.[MapPcbIdToSerialNumber_SerialNumber] = mapSrn.SerienNr and mapSrn.Pruefgangnr = 0 "); + // sb.AppendLine($" left outer join Auftrag.dbo.AlleAuftragPositionen auftraginfo on auftraginfo.AuftragNr = mapSrn.AuftragNr and auftraginfo.PositionNr = mapSrn.PositionNr "); + + // sb.AppendLine($" where mapOrder.CordonelPressureTest_PcbId = '{pcbID}'"); + + // var mapData = dataAccess.ExecuteQuery(sb.ToString()); + // if (mapData.Rows.Count != 1) + // { + // throw new ApplicationException("No base data found"); + + // } + // orderNr = (Int32)mapData.Rows[0]["CordonelPressureTest_FertigungsAuftragsNr"]; + + // } + + // return Request.CreateResponse(HttpStatusCode.OK, ret); + + // }); + // } + // catch (Exception ex) + // { + // return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); + // } + //} + + + //LocalWebRequest /// /// Get Radio Configuration from database matching the PcbID diff --git a/Common/Service/MeterProcessState/Controllers/TestBenchController.cs b/Common/Service/MeterProcessState/Controllers/TestBenchController.cs index c2be5ae3..edde80ca 100644 --- a/Common/Service/MeterProcessState/Controllers/TestBenchController.cs +++ b/Common/Service/MeterProcessState/Controllers/TestBenchController.cs @@ -126,6 +126,7 @@ FROM [CordonelMeterSizes] WHERE [Dn_VakoID] = SUBSTRING([Identnr].[VakoCode], 4, 2)) AS [NewNennweiteID] , [lut].[FileCrc] AS [LutCrc] + , fw.FWVersionHex as FWVersion FROM [Cordonel_AssignedPicking] AS [MapOrder] LEFT OUTER JOIN [MapPcbIdToSerialNumber] AS [map] ON [MapOrder].[CordonelAssignedPicking_PcbId] = [map].[MapPcbIdToSerialNumber_PcbId] @@ -145,6 +146,12 @@ FROM [CordonelMeterSizes] WHERE [Dn_VakoID] = SUBSTRING([Identnr].[VakoCode], 4, 2)) AND [lut].[CurrentVersionForProd] = 1 + left outer join Cordonel_CurrentFw AS fw + ON [fw].Metersize = (SELECT TOP 1 [Dn_InternalId] + FROM [CordonelMeterSizes] + WHERE [Dn_VakoID] = SUBSTRING([Identnr].[VakoCode], 4, 2)) + AND [fw].CurrentForProd = 1 + WHERE [MapOrder].[CordonelAssignedPicking_IsDeleted] = 0 AND [MapOrder].[CordonelAssignedPicking_PcbId] = @{nameof(PcbID)} ") .SetParameter(nameof(PcbID), PcbID) @@ -159,6 +166,7 @@ $"{x.GetInt()}", // Dn, $"{x.GetInt()}", // NewNennweiteID, $"{x.GetValue()}", // LutCrc + $"{x.GetValue()}", // Fwversion }); if (results.Count() == 1) diff --git a/Common/Tools/Tools.JsonToXlsHelper/obj/Debug/Tools.JsonToXlsHelper.csproj.CoreCompileInputs.cache b/Common/Tools/Tools.JsonToXlsHelper/obj/Debug/Tools.JsonToXlsHelper.csproj.CoreCompileInputs.cache index 550809f9..84b6b3be 100644 --- a/Common/Tools/Tools.JsonToXlsHelper/obj/Debug/Tools.JsonToXlsHelper.csproj.CoreCompileInputs.cache +++ b/Common/Tools/Tools.JsonToXlsHelper/obj/Debug/Tools.JsonToXlsHelper.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -1babc7d629fd8c486aff20f4990c117c2e58a68f +65d75c3322f8a137c69963cfdc0cb6f1ffacf62a diff --git a/Common/Ui/LegacyGenesisControl/ctlBatch.cs b/Common/Ui/LegacyGenesisControl/ctlBatch.cs index f63c834f..ab312399 100644 --- a/Common/Ui/LegacyGenesisControl/ctlBatch.cs +++ b/Common/Ui/LegacyGenesisControl/ctlBatch.cs @@ -1619,6 +1619,24 @@ namespace XylemCommonUiLegacyGenCtl _logger.Debug($"ScaleFactorRefToDut = {result.Value.ScaleFactorRefToDut}"); _logger.Debug($"Start Record: TimeS={result.Value.DutStartRecord.GetTimeS()}, VolumeCm={result.Value.DutStartRecord.GetVolumeCm()}"); _logger.Debug($"End Record: TimeS={result.Value.DutStopRecord.GetTimeS()}, VolumeCm={result.Value.DutStopRecord.GetVolumeCm()}"); + //try + //{ + // var meter = batch.ListOfMeters.First(f => f.Slot == Slot); + // if (meter is GenesisMeter genesisMeter) + // { + // foreach (var item in genesisMeter.ErrorCurrent) + // { + // _logger.Debug($"Error Cound:CHNL {item.Key} : Total count {item.Value.Item1} ; last error {item.Value.Item2}"); + // } + + // } + + //} + //catch (Exception) + //{ + + //} + var sbError = string.Empty; diff --git a/Common/Ui/LegacyGenesisControl/ctlCRdy.cs b/Common/Ui/LegacyGenesisControl/ctlCRdy.cs index 81fa194f..00b83457 100644 --- a/Common/Ui/LegacyGenesisControl/ctlCRdy.cs +++ b/Common/Ui/LegacyGenesisControl/ctlCRdy.cs @@ -530,7 +530,7 @@ namespace XylemCommonUiLegacyGenCtl Path2State = MeterReadyResults.NotStarted; Path3State = MeterReadyResults.NotStarted; - if (string.IsNullOrEmpty(meter.PcbId)) + if (string.IsNullOrEmpty(meter.PcbId) ) { PcbId = meter.GetPcbId(); } @@ -538,6 +538,12 @@ namespace XylemCommonUiLegacyGenCtl { PcbId = meter.PcbId; } + + if (string.IsNullOrEmpty(PcbId) || PcbId.Length < 5) + { + PcbId = meter.GetPcbId(); + } + if (ctlCancellationToken.IsCancellationRequested) { return; @@ -550,7 +556,7 @@ namespace XylemCommonUiLegacyGenCtl { return; } - if (!string.IsNullOrEmpty(meter.PcbId) && meter.Login()) + if (!string.IsNullOrEmpty(meter.PcbId) && meter.PcbId.Length < 6 && meter.Login()) { changeCurrentSlotState(TaskState.LoginDone);