From 3cfde1ab1bc155aa96a20d1de8c3725dca311e52 Mon Sep 17 00:00:00 2001 From: Prakash Sharma Date: Mon, 27 Jan 2025 14:18:38 +0530 Subject: [PATCH 01/47] Added 4 New Plugins, 1. BitStamp 2. Gemini 3. Kraken 4. KuCoin --- VisualHFT.Commons/Model/enums.cs | 3 +- .../PluginManager/BasePluginDataRetriever.cs | 29 + .../BitStamp.Net/BitStamp.Net.csproj | 13 + .../Clients/BitStampHttpClient.cs | 66 ++ .../BitStamp.Net/Models/BitStampModels.cs | 61 + .../Clients/CoinbaseSocketClient.cs | 18 + .../Coinbase.Net/Coinbase.Net.csproj | 13 + .../Coinbase.Net/Models/CoinbaseModels.cs | 85 ++ .../Gemini.Net/Clients/GeminiHttpClient.cs | 57 + .../Gemini.Net/Clients/GeminiSocketClient.cs | 52 + .../Gemini.Net/Gemini.Net.csproj | 18 + .../Gemini.Net/Models/GeminiModels.cs | 120 ++ .../BitStampPlugin.cs | 530 +++++++++ .../CustomDateConverter.cs | 71 ++ .../MarketConnectors.BitStamp/JsonParser.cs | 19 + .../MarketConnectors.BitStamp.csproj | 24 + .../Model/PlugInSettings.cs | 22 + .../UserControls/PluginSettingsView.xaml | 130 +++ .../UserControls/PluginSettingsView.xaml.cs | 38 + .../ViewModels/PluginSettingsViewModel.cs | 188 ++++ .../CoinbasePlugin.cs | 481 ++++++++ .../CustomDateConverter.cs | 71 ++ .../MarketConnectors.Coinbase/JsonParser.cs | 19 + .../MarketConnectors.Coinbase.csproj | 21 + .../Model/PlugInSettings.cs | 22 + .../UserControls/PluginSettingsView.xaml | 133 +++ .../UserControls/PluginSettingsView.xaml.cs | 38 + .../ViewModels/PluginSettingsViewModel.cs | 188 ++++ .../CustomDateConverter.cs | 71 ++ .../MarketConnectors.Gemini/GeminiPlugin.cs | 764 +++++++++++++ .../MarketConnectors.Gemini/JsonParser.cs | 19 + .../MarketConnectors.Gemini.csproj | 24 + .../Model/PlugInSettings.cs | 21 + .../UserControls/PluginSettingsView.xaml | 126 +++ .../UserControls/PluginSettingsView.xaml.cs | 38 + .../ViewModels/PluginSettingsViewModel.cs | 181 +++ .../MarketConnectors.Kraken/KrakenPlugin.cs | 781 +++++++++++++ .../MarketConnectors.Kraken.csproj | 19 + .../Model/PlugInSettings.cs | 18 + .../UserControls/PluginSettingsView.xaml | 130 +++ .../UserControls/PluginSettingsView.xaml.cs | 27 + .../ViewModels/PluginSettingsViewModel.cs | 222 ++++ .../MarketConnectors.KuCoin/KuCoinPlugin.cs | 1001 +++++++++++++++++ .../MarketConnectors.KuCoin.csproj | 23 + .../Model/PlugInSettings.cs | 19 + .../UserControls/PluginSettingsView.xaml | 133 +++ .../UserControls/PluginSettingsView.xaml.cs | 27 + .../ViewModels/PluginSettingsViewModel.cs | 221 ++++ VisualHFT.sln | 68 ++ 49 files changed, 6462 insertions(+), 1 deletion(-) create mode 100644 VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/BitStamp.Net.csproj create mode 100644 VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/Clients/BitStampHttpClient.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/Models/BitStampModels.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Clients/CoinbaseSocketClient.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Coinbase.Net.csproj create mode 100644 VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Models/CoinbaseModels.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Clients/GeminiHttpClient.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Clients/GeminiSocketClient.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Gemini.Net.csproj create mode 100644 VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Models/GeminiModels.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BitStamp/BitStampPlugin.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BitStamp/CustomDateConverter.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BitStamp/JsonParser.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BitStamp/MarketConnectors.BitStamp.csproj create mode 100644 VisualHFT.Plugins/MarketConnectors.BitStamp/Model/PlugInSettings.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BitStamp/UserControls/PluginSettingsView.xaml create mode 100644 VisualHFT.Plugins/MarketConnectors.BitStamp/UserControls/PluginSettingsView.xaml.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.BitStamp/ViewModels/PluginSettingsViewModel.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Coinbase/CoinbasePlugin.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Coinbase/CustomDateConverter.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Coinbase/JsonParser.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Coinbase/MarketConnectors.Coinbase.csproj create mode 100644 VisualHFT.Plugins/MarketConnectors.Coinbase/Model/PlugInSettings.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Coinbase/UserControls/PluginSettingsView.xaml create mode 100644 VisualHFT.Plugins/MarketConnectors.Coinbase/UserControls/PluginSettingsView.xaml.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Coinbase/ViewModels/PluginSettingsViewModel.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Gemini/MarketConnectors.Gemini/CustomDateConverter.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Gemini/MarketConnectors.Gemini/GeminiPlugin.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Gemini/MarketConnectors.Gemini/JsonParser.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Gemini/MarketConnectors.Gemini/MarketConnectors.Gemini.csproj create mode 100644 VisualHFT.Plugins/MarketConnectors.Gemini/MarketConnectors.Gemini/Model/PlugInSettings.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Gemini/MarketConnectors.Gemini/UserControls/PluginSettingsView.xaml create mode 100644 VisualHFT.Plugins/MarketConnectors.Gemini/MarketConnectors.Gemini/UserControls/PluginSettingsView.xaml.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Gemini/MarketConnectors.Gemini/ViewModels/PluginSettingsViewModel.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Kraken/KrakenPlugin.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Kraken/MarketConnectors.Kraken.csproj create mode 100644 VisualHFT.Plugins/MarketConnectors.Kraken/Model/PlugInSettings.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Kraken/UserControls/PluginSettingsView.xaml create mode 100644 VisualHFT.Plugins/MarketConnectors.Kraken/UserControls/PluginSettingsView.xaml.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.Kraken/ViewModels/PluginSettingsViewModel.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.KuCoin/KuCoinPlugin.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.KuCoin/MarketConnectors.KuCoin.csproj create mode 100644 VisualHFT.Plugins/MarketConnectors.KuCoin/Model/PlugInSettings.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.KuCoin/UserControls/PluginSettingsView.xaml create mode 100644 VisualHFT.Plugins/MarketConnectors.KuCoin/UserControls/PluginSettingsView.xaml.cs create mode 100644 VisualHFT.Plugins/MarketConnectors.KuCoin/ViewModels/PluginSettingsViewModel.cs diff --git a/VisualHFT.Commons/Model/enums.cs b/VisualHFT.Commons/Model/enums.cs index bf22126e..c27fd499 100644 --- a/VisualHFT.Commons/Model/enums.cs +++ b/VisualHFT.Commons/Model/enums.cs @@ -72,7 +72,8 @@ public enum eORDERTIMEINFORCE NONE, GTC, IOC, - FOK + FOK, + MOK }; public enum eORDERTYPE diff --git a/VisualHFT.Commons/PluginManager/BasePluginDataRetriever.cs b/VisualHFT.Commons/PluginManager/BasePluginDataRetriever.cs index 4f2b7302..b2560541 100644 --- a/VisualHFT.Commons/PluginManager/BasePluginDataRetriever.cs +++ b/VisualHFT.Commons/PluginManager/BasePluginDataRetriever.cs @@ -448,6 +448,35 @@ protected int RecognizeDecimalPlacesAutomatically(IEnumerable values) return Math.Max(1, maxDecimalPlaces); } + protected int RecognizeDecimalPlacesAutomatically(IEnumerable values) + { + int maxDecimalPlaces = 0; + NumberFormatInfo nfi = CultureInfo.CurrentCulture.NumberFormat; + + foreach (decimal value in values) + { + // Convert the value to a string using the current culture's number format + string valueAsString = value.ToString(CultureInfo.CurrentCulture); + + // Find the decimal separator of the current culture + string decimalSeparator = nfi.NumberDecimalSeparator; + int indexOfDecimal = valueAsString.IndexOf(decimalSeparator); + + if (indexOfDecimal != -1) + { + // Count the decimal places after the decimal separator + int decimalPlaces = valueAsString.Substring(indexOfDecimal + decimalSeparator.Length).TrimEnd('0').Length; + + // Update maxDecimalPlaces if this value has more decimal places + if (decimalPlaces > maxDecimalPlaces) + { + maxDecimalPlaces = decimalPlaces; + } + } + } + + return Math.Max(1, maxDecimalPlaces); + } diff --git a/VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/BitStamp.Net.csproj b/VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/BitStamp.Net.csproj new file mode 100644 index 00000000..3b5b1707 --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/BitStamp.Net.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/Clients/BitStampHttpClient.cs b/VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/Clients/BitStampHttpClient.cs new file mode 100644 index 00000000..ea25f28f --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/Clients/BitStampHttpClient.cs @@ -0,0 +1,66 @@ + +using BitStamp.Net.Models; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http.Json; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace BitStamp.Net.Clients +{ + public class BitStampHttpClient + { + private string? APIKey; + private string? APISecret; + private static HttpClient geminiClient = new HttpClient(); + + + static BitStampHttpClient() + { + geminiClient.BaseAddress = new Uri("https://www.bitstamp.net/api/v2/"); + } + + private bool IsAuthHeaderPresent { get { return geminiClient.DefaultRequestHeaders.Contains("X-GEMINI-APIKEY"); } } + + public void SetAuthentication(string apikey, string apisecret) + { + APIKey = apikey; + APISecret = apisecret; + + if (!IsAuthHeaderPresent) + { + // geminiClient.DefaultRequestHeaders.Add("X-GEMINI-APIKEY", APIKey); + } + } + + public async Task InitializeSnapshotAsync(string symbol) + { + InitialResponse resp = new InitialResponse(); + try + { + + /* + var response = await geminiClient.GetAsync("order_book/" + symbol); + if (response != null) + { + string json = await response.Content.ReadAsStringAsync(); + resp = JsonConvert.DeserializeObject(json); + + }*/ + string str = "{\"timestamp\":\"1731266603\",\"microtimestamp\":\"1731266603059797\",\"bids\":[[\"80402\",\"0.51862891\"],[\"80401\",\"0.17412665\"],[\"80400\",\"0.32338196\"],[\"80399\",\"0.07458615\"],[\"80395\",\"0.17403433\"],[\"80394\",\"0.29668951\"],[\"80393\",\"0.18220000\"],[\"80392\",\"1.01999516\"],[\"80391\",\"0.01700650\"],[\"80388\",\"0.07646557\"],[\"80387\",\"0.04513605\"],[\"80384\",\"1.31426249\"],[\"80381\",\"0.29668951\"],[\"80372\",\"0.00030000\"],[\"80371\",\"0.18220000\"],[\"80370\",\"1.13225242\"],[\"80367\",\"0.32378024\"],[\"80366\",\"4.16625544\"],[\"80362\",\"0.00778130\"],[\"80360\",\"0.18220000\"],[\"80359\",\"1.13241512\"],[\"80358\",\"0.04978388\"],[\"80356\",\"0.00199689\"],[\"80352\",\"0.32365488\"],[\"80350\",\"0.00248911\"],[\"80349\",\"0.18220000\"],[\"80347\",\"1.02986497\"],[\"80339\",\"0.00040000\"],[\"80337\",\"0.54319568\"],[\"80336\",\"0.00100000\"],[\"80334\",\"0.18220000\"],[\"80327\",\"0.00199785\"],[\"80325\",\"0.18220000\"],[\"80319\",\"0.48548233\"],[\"80318\",\"0.00179834\"],[\"80316\",\"0.18220000\"],[\"80308\",\"1.57210505\"],[\"80307\",\"0.18244854\"],[\"80300\",\"0.00249066\"],[\"80299\",\"0.52641664\"],[\"80298\",\"0.18220000\"],[\"80293\",\"1.45648444\"],[\"80289\",\"0.72582871\"],[\"80286\",\"0.00019531\"],[\"80280\",\"0.18220000\"],[\"80279\",\"0.54371902\"],[\"80276\",\"1.61603315\"],[\"80273\",\"1.84661852\"],[\"80271\",\"0.18220000\"],[\"80270\",\"0.48762252\"],[\"80262\",\"0.18220000\"],[\"80261\",\"0.00016115\"],[\"80260\",\"0.54189056\"],[\"80253\",\"0.18220000\"],[\"80252\",\"0.10228156\"],[\"80250\",\"0.54447279\"],[\"80244\",\"0.18220000\"],[\"80241\",\"0.48785750\"],[\"80236\",\"0.00100000\"],[\"80235\",\"0.18220000\"],[\"80231\",\"0.54215172\"],[\"80226\",\"0.18220000\"],[\"80222\",\"0.48801157\"],[\"80219\",\"3.59962224\"],[\"80214\",\"1.79169556\"],[\"80212\",\"0.54257180\"],[\"80206\",\"0.00019558\"],[\"80204\",\"0.10000000\"],[\"80202\",\"0.54241312\"],[\"80200\",\"0.00249377\"],[\"80197\",\"0.00024888\"],[\"80191\",\"0.00024890\"],[\"80164\",\"0.02302760\"],[\"80155\",\"2.72400000\"],[\"80154\",\"0.00200360\"],[\"80150\",\"0.00249532\"],[\"80145\",\"0.00180352\"],[\"80140\",\"0.00100000\"],[\"80136\",\"0.00100000\"],[\"80135\",\"0.00200424\"],[\"80125\",\"3.10995893\"],[\"80120\",\"0.00200000\"],[\"80113\",\"6.00096699\"],[\"80102\",\"5.16800000\"],[\"80100\",\"0.00762496\"],[\"80094\",\"0.00024920\"],[\"80086\",\"0.00132008\"],[\"80085\",\"0.80103871\"],[\"80081\",\"1.55375670\"],[\"80069\",\"0.00024928\"],[\"80052\",\"0.00577886\"],[\"80050\",\"0.00249844\"],[\"80045\",\"0.00019617\"],[\"80023\",\"0.00024942\"],[\"80015\",\"0.00012560\"],[\"80000\",\"0.67349950\"],[\"79992\",\"3.62769161\"],[\"79990\",\"0.00228928\"],[\"79965\",\"0.00019646\"],[\"79950\",\"0.00250156\"],[\"79919\",\"5.54100000\"],[\"79909\",\"0.00024978\"],[\"79900\",\"0.00250313\"],[\"79886\",\"0.00019429\"],[\"79872\",\"2.47865503\"],[\"79850\",\"0.00250470\"],[\"79830\",\"0.00025003\"],[\"79811\",\"0.00025009\"],[\"79806\",\"0.00019704\"],[\"79800\",\"0.00250627\"],[\"79789\",\"0.00025015\"],[\"79787\",\"0.00025016\"],[\"79777\",\"0.08000000\"],[\"79750\",\"0.00250784\"],[\"79726\",\"0.00019733\"],[\"79700\",\"0.00250941\"],[\"79695\",\"0.00025045\"],[\"79685\",\"0.00025048\"],[\"79650\",\"0.00251099\"],[\"79647\",\"0.00016094\"],[\"79646\",\"0.00019763\"],[\"79600\",\"0.00251256\"],[\"79567\",\"0.00019546\"],[\"79550\",\"1.24220378\"],[\"79526\",\"0.00025098\"],[\"79507\",\"0.00634576\"],[\"79500\",\"0.00251572\"],[\"79487\",\"0.00019822\"],[\"79481\",\"0.00025112\"],[\"79450\",\"0.00251731\"],[\"79442\",\"0.00070000\"],[\"79431\",\"0.00025128\"],[\"79430\",\"0.00016283\"],[\"79422\",\"0.05000000\"],[\"79408\",\"0.00019603\"],[\"79407\",\"0.00025136\"],[\"79400\",\"0.00281858\"],[\"79395\",\"0.00025140\"],[\"79369\",\"0.00025148\"],[\"79350\",\"0.00252048\"],[\"79329\",\"0.00019633\"],[\"79300\",\"0.00252207\"],[\"79250\",\"0.00252366\"],[\"79249\",\"0.00019911\"],[\"79232\",\"0.00025191\"],[\"79215\",\"0.25000000\"],[\"79200\",\"0.71752525\"],[\"79186\",\"0.00704790\"],[\"79177\",\"0.00070000\"],[\"79170\",\"0.00019684\"],[\"79158\",\"0.00080000\"],[\"79150\",\"0.00277902\"],[\"79100\",\"0.00775917\"],[\"79091\",\"0.00019713\"],[\"79090\",\"1.57163990\"],[\"79089\",\"0.01251752\"],[\"79084\",\"0.00025238\"],[\"79050\",\"0.00253004\"],[\"79044\",\"0.00025251\"],[\"79029\",\"0.00155814\"],[\"79018\",\"0.00025260\"],[\"79015\",\"0.00040000\"],[\"79012\",\"0.00019741\"],[\"79000\",\"0.10253165\"],[\"78998\",\"1.20735066\"],[\"78996\",\"0.00025267\"],[\"78988\",\"0.13180483\"],[\"78975\",\"0.00025273\"],[\"78970\",\"0.30500000\"],[\"78950\",\"0.00253325\"],[\"78933\",\"0.00019773\"],[\"78929\",\"0.00050000\"],[\"78906\",\"0.00025295\"],[\"78854\",\"0.00019802\"],[\"78838\",\"0.00025317\"],[\"78835\",\"0.00025318\"],[\"78800\",\"0.25000000\"],[\"78782\",\"0.00060000\"],[\"78781\",\"0.00640424\"],[\"78780\",\"0.00025336\"],[\"78776\",\"0.00019581\"],[\"78773\",\"0.00025338\"],[\"78771\",\"0.00025339\"],[\"78700\",\"0.56764930\"],[\"78697\",\"0.00019867\"],[\"78666\",\"0.00252101\"],[\"78660\",\"0.00025375\"],[\"78658\",\"0.00016278\"],[\"78653\",\"0.00016306\"],[\"78637\",\"0.00025382\"],[\"78628\",\"0.00080000\"],[\"78618\",\"0.00119888\"],[\"78600\",\"1.02081170\"],[\"78594\",\"0.00016265\"],[\"78580\",\"0.00100000\"],[\"78571\",\"0.00025403\"],[\"78568\",\"0.00100000\"],[\"78560\",\"0.00200000\"],[\"78550\",\"0.00100000\"],[\"78540\",\"0.00119665\"],[\"78520\",\"0.00200000\"],[\"78500\",\"0.00200000\"],[\"78480\",\"0.00200000\"],[\"78477\",\"0.00025434\"],[\"78472\",\"0.00100000\"],[\"78461\",\"0.00019947\"],[\"78460\",\"0.00100000\"],[\"78455\",\"0.00025441\"],[\"78450\",\"0.00100000\"],[\"78440\",\"0.00200000\"],[\"78420\",\"0.00100000\"],[\"78400\",\"0.00300000\"],[\"78383\",\"0.00019724\"],[\"78381\",\"0.00025465\"],[\"78373\",\"0.00025467\"],[\"78370\",\"0.00025468\"],[\"78353\",\"0.00025474\"],[\"78305\",\"0.00019754\"],[\"78298\",\"0.00025492\"],[\"78293\",\"0.00747820\"],[\"78292\",\"0.00180000\"],[\"78280\",\"0.00200000\"],[\"78226\",\"0.00020037\"],[\"78201\",\"0.00025523\"],[\"78148\",\"0.00019812\"],[\"78144\",\"0.00016321\"],[\"78127\",\"0.01000000\"],[\"78116\",\"0.00016462\"],[\"78100\",\"0.25000000\"],[\"78092\",\"0.00200000\"],[\"78075\",\"0.00025565\"],[\"78070\",\"0.00019842\"],[\"78062\",\"0.20342804\"],[\"78010\",\"0.02500000\"],[\"78002\",\"0.00897412\"],[\"78000\",\"0.20531730\"],[\"77992\",\"0.00019872\"],[\"77989\",\"0.00025593\"],[\"77982\",\"0.00025595\"],[\"77977\",\"0.01000000\"],[\"77969\",\"0.00025599\"],[\"77938\",\"0.59135731\"],[\"77916\",\"0.00025617\"],[\"77914\",\"0.00019901\"],[\"77909\",\"0.00230000\"],[\"77900\",\"0.10025622\"],[\"77877\",\"0.01000000\"],[\"77836\",\"0.00019931\"],[\"77815\",\"0.00025650\"],[\"77800\",\"0.10000000\"],[\"77777\",\"0.13927986\"],[\"77759\",\"0.00019704\"],[\"77743\",\"0.00041939\"],[\"77734\",\"0.00025677\"],[\"77730\",\"0.00025678\"],[\"77688\",\"0.00025692\"],[\"77681\",\"0.00019990\"],[\"77680\",\"0.00200000\"],[\"77677\",\"0.01000000\"],[\"77660\",\"0.00100000\"],[\"77650\",\"0.00100000\"],[\"77640\",\"0.00100000\"],[\"77620\",\"0.00100000\"],[\"77616\",\"0.00016336\"],[\"77603\",\"0.00020020\"],[\"77600\",\"0.29200000\"],[\"77580\",\"0.00100000\"],[\"77577\",\"0.01000000\"],[\"77570\",\"0.00025731\"],[\"77566\",\"0.00270000\"],[\"77560\",\"0.00100000\"],[\"77526\",\"0.00019793\"],[\"77500\",\"0.66246222\"],[\"77477\",\"0.01000000\"],[\"77448\",\"0.00020080\"],[\"77406\",\"0.00258377\"],[\"77377\",\"0.01500000\"],[\"77375\",\"0.60837739\"],[\"77371\",\"0.00019852\"],[\"77300\",\"0.10000000\"],[\"77294\",\"0.00019881\"],[\"77244\",\"0.00100000\"],[\"77216\",\"0.00020170\"],[\"77177\",\"0.02000000\"],[\"77139\",\"0.00019942\"],[\"77115\",\"0.25000000\"],[\"77066\",\"0.00290000\"],[\"77062\",\"0.00019970\"],[\"77036\",\"0.00016296\"],[\"77016\",\"1.00000000\"],[\"77003\",\"0.00646078\"],[\"77000\",\"0.22645129\"],[\"76985\",\"0.00019997\"],[\"76939\",\"0.00016287\"],[\"76920\",\"0.00016462\"],[\"76908\",\"0.00020027\"],[\"76900\",\"2.31159947\"],[\"76848\",\"0.00300000\"],[\"76831\",\"0.00020058\"],[\"76800\",\"0.35884114\"],[\"76767\",\"0.00016381\"],[\"76755\",\"0.00019826\"],[\"76730\",\"0.00016808\"],[\"76678\",\"0.00020117\"],[\"76630\",\"0.00300000\"],[\"76601\",\"0.00020145\"],[\"76525\",\"0.00019914\"],[\"76505\",\"0.00060000\"],[\"76500\",\"0.00529124\"],[\"76477\",\"0.00016296\"],[\"76448\",\"0.00020206\"],[\"76438\",\"0.00100000\"],[\"76390\",\"0.00066053\"],[\"76372\",\"0.00019975\"],[\"76300\",\"0.10000000\"],[\"76296\",\"0.00020003\"],[\"76269\",\"0.00070000\"],[\"76263\",\"0.00016471\"],[\"76250\",\"0.00655738\"],[\"76238\",\"0.00150000\"],[\"76222\",\"1.00000000\"],[\"76220\",\"0.00020033\"],[\"76190\",\"0.01312508\"],[\"76143\",\"0.00020324\"],[\"76125\",\"0.13136288\"],[\"76121\",\"0.01050958\"],[\"76090\",\"0.01971350\"],[\"76067\",\"0.00020091\"],[\"76042\",\"0.00663550\"],[\"76029\",\"0.00016458\"],[\"76000\",\"0.31542104\"],[\"75998\",\"0.02564201\"],[\"75991\",\"0.00020121\"],[\"75983\",\"0.00200000\"],[\"75920\",\"0.03951528\"],[\"75915\",\"0.00020153\"],[\"75875\",\"0.02998937\"],[\"75852\",\"0.08867267\"],[\"75840\",\"0.00019917\"],[\"75821\",\"0.00665484\"],[\"75808\",\"0.00017003\"],[\"75801\",\"1.00000000\"],[\"75800\",\"0.60000000\"],[\"75764\",\"0.00020210\"],[\"75759\",\"0.00016978\"],[\"75702\",\"0.00016361\"],[\"75694\",\"0.00900000\"],[\"75688\",\"0.00020240\"],[\"75677\",\"0.03000000\"],[\"75666\",\"0.00264319\"],[\"75625\",\"0.01000000\"],[\"75613\",\"0.00020011\"],[\"75575\",\"0.00017004\"],[\"75573\",\"0.00017073\"],[\"75556\",\"0.00140000\"],[\"75537\",\"0.00020306\"],[\"75526\",\"0.00017000\"],[\"75509\",\"0.00016781\"],[\"75507\",\"0.00017105\"],[\"75500\",\"2.13553642\"],[\"75486\",\"0.80151749\"],[\"75462\",\"0.00020068\"],[\"75451\",\"0.00160000\"],[\"75443\",\"0.01338184\"],[\"75438\",\"0.43983138\"],[\"75436\",\"0.00016986\"],[\"75406\",\"0.00016965\"],[\"75400\",\"0.05677887\"],[\"75386\",\"0.00020366\"],[\"75380\",\"0.01000000\"],[\"75378\",\"0.00016995\"],[\"75360\",\"0.00100000\"],[\"75355\",\"0.00120000\"],[\"75350\",\"0.01028998\"],[\"75311\",\"0.00020127\"],[\"75300\",\"0.10100000\"],[\"75277\",\"0.03000000\"],[\"75250\",\"0.00199335\"],[\"75240\",\"0.00017064\"],[\"75236\",\"0.00020157\"],[\"75193\",\"0.00017135\"],[\"75167\",\"0.00016957\"],[\"75160\",\"0.00020456\"],[\"75142\",\"0.00200000\"],[\"75124\",\"0.14000000\"],[\"75087\",\"0.02000000\"],[\"75085\",\"0.00037301\"],[\"75012\",\"0.00210000\"],[\"75010\",\"0.00020247\"],[\"75000\",\"0.22064768\"],[\"74970\",\"0.00016824\"],[\"74954\",\"0.00017030\"],[\"74935\",\"1.04396070\"],[\"74892\",\"0.00673444\"],[\"74871\",\"0.00220000\"],[\"74861\",\"0.00020038\"],[\"74851\",\"0.00016981\"],[\"74800\",\"0.10000000\"],[\"74786\",\"0.00020338\"],[\"74777\",\"0.03000000\"],[\"74773\",\"0.00130162\"],[\"74750\",\"0.00654878\"],[\"74711\",\"0.00020369\"],[\"74701\",\"0.00017017\"],[\"74699\",\"0.00195159\"],[\"74647\",\"0.00034052\"],[\"74636\",\"0.00020400\"],[\"74600\",\"0.25000000\"],[\"74574\",\"0.10000000\"],[\"74566\",\"0.00017077\"],[\"74563\",\"0.00034245\"],[\"74562\",\"0.00020159\"],[\"74560\",\"0.00016970\"],[\"74553\",\"0.01000000\"],[\"74500\",\"0.07950000\"],[\"74495\",\"0.00017074\"],[\"74487\",\"0.00020463\"],[\"74479\",\"0.00100000\"],[\"74460\",\"0.00100000\"],[\"74450\",\"0.00100000\"],[\"74440\",\"0.00200000\"],[\"74420\",\"0.00117129\"],[\"74417\",\"0.00017019\"],[\"74415\",\"0.00016987\"],[\"74413\",\"0.00020219\"],[\"74400\",\"0.00300000\"],[\"74384\",\"0.00017096\"],[\"74380\",\"0.00100000\"],[\"74360\",\"0.00200000\"],[\"74350\",\"0.47003833\"],[\"74349\",\"0.00100000\"],[\"74348\",\"0.00200000\"],[\"74346\",\"0.00016977\"],[\"74340\",\"0.00100000\"],[\"74339\",\"0.00020248\"],[\"74320\",\"0.00200000\"],[\"74300\",\"0.10200000\"],[\"74280\",\"0.00200000\"],[\"74266\",\"0.01077208\"],[\"74264\",\"0.00020551\"],[\"74260\",\"0.00100000\"],[\"74250\",\"0.00100000\"],[\"74240\",\"0.00200000\"],[\"74238\",\"0.00017015\"],[\"74236\",\"0.00017075\"],[\"74220\",\"0.00100000\"],[\"74211\",\"0.02000000\"],[\"74208\",\"0.97770000\"],[\"74204\",\"0.00200000\"],[\"74200\",\"0.00300000\"],[\"74191\",\"0.00017024\"],[\"74190\",\"0.00020307\"],[\"74180\",\"0.00100000\"],[\"74163\",\"0.00690158\"],[\"74160\",\"0.00200000\"],[\"74150\",\"0.00100000\"],[\"74140\",\"0.00017142\"],[\"74116\",\"0.00020336\"],[\"74111\",\"0.04723000\"],[\"74105\",\"0.15000000\"],[\"74085\",\"0.00016997\"],[\"74071\",\"0.00220000\"],[\"74069\",\"0.20000000\"],[\"74047\",\"0.01000000\"],[\"74042\",\"0.00020367\"],[\"74028\",\"0.14019019\"],[\"74012\",\"0.00414940\"],[\"74000\",\"0.41519863\"],[\"73972\",\"0.00013518\"],[\"73968\",\"0.00020397\"],[\"73965\",\"0.00450212\"],[\"73933\",\"0.00692305\"],[\"73919\",\"0.00017044\"],[\"73917\",\"0.00016797\"],[\"73894\",\"0.00020428\"],[\"73885\",\"0.00230000\"],[\"73860\",\"0.02770105\"],[\"73857\",\"0.00615324\"],[\"73850\",\"0.02166553\"],[\"73846\",\"0.00016983\"],[\"73833\",\"0.00016952\"],[\"73821\",\"0.07000000\"],[\"73820\",\"0.00020458\"],[\"73800\",\"0.10000000\"],[\"73798\",\"0.00017063\"],[\"73791\",\"0.00016967\"],[\"73753\",\"0.00016872\"],[\"73747\",\"0.00020212\"],[\"73730\",\"0.02441340\"],[\"73708\",\"0.00250000\"],[\"73699\",\"0.00017113\"],[\"73690\",\"0.20000000\"],[\"73675\",\"0.00017025\"],[\"73673\",\"0.00020519\"],[\"73648\",\"0.00017017\"],[\"73641\",\"0.00017045\"],[\"73625\",\"0.00016915\"],[\"73622\",\"0.00017087\"],[\"73599\",\"0.00020550\"],[\"73569\",\"0.00611671\"],[\"73561\",\"0.00017130\"],[\"73533\",\"0.00017163\"],[\"73526\",\"0.00020302\"],[\"73512\",\"0.01309990\"],[\"73508\",\"0.00260000\"],[\"73500\",\"0.63304761\"],[\"73489\",\"0.00017052\"],[\"73458\",\"0.00017030\"],[\"73452\",\"0.00020611\"],[\"73434\",\"0.00016969\"],[\"73427\",\"0.00902000\"],[\"73406\",\"0.00017066\"],[\"73405\",\"0.00017015\"],[\"73379\",\"0.00020364\"],[\"73333\",\"0.01000000\"],[\"73332\",\"0.00017024\"],[\"73319\",\"0.01578376\"],[\"73308\",\"0.00280000\"],[\"73306\",\"0.00020395\"],[\"73300\",\"0.10000000\"],[\"73269\",\"0.00209574\"],[\"73232\",\"0.00020705\"],[\"73220\",\"0.00017128\"],[\"73211\",\"0.00017003\"],[\"73209\",\"0.00017050\"],[\"73159\",\"0.00020488\"],[\"73156\",\"0.00109850\"],[\"73148\",\"0.00300000\"],[\"73121\",\"0.01025697\"],[\"73111\",\"0.15000000\"],[\"73110\",\"0.00017107\"],[\"73100\",\"0.33611491\"],[\"73091\",\"0.00016973\"],[\"73086\",\"0.00020518\"],[\"73077\",\"0.02500000\"],[\"73061\",\"0.14442725\"],[\"73048\",\"0.00017004\"],[\"73023\",\"0.00016969\"],[\"73022\",\"0.02570458\"],[\"73013\",\"0.00020549\"],[\"73007\",\"0.01421781\"],[\"73005\",\"0.00111115\"],[\"73000\",\"0.05447944\"],[\"72999\",\"0.01485761\"],[\"72980\",\"0.00017031\"],[\"72977\",\"0.05000000\"],[\"72937\",\"0.00270000\"],[\"72923\",\"0.00017111\"],[\"72850\",\"1.02337680\"],[\"72833\",\"6.10000000\"],[\"72828\",\"0.06865491\"],[\"72826\",\"0.00656358\"],[\"72815\",\"0.00280000\"],[\"72807\",\"0.00100000\"],[\"72800\",\"0.22053571\"],[\"72760\",\"0.00349000\"],[\"72700\",\"0.00200000\"],[\"72694\",\"0.00600000\"],[\"72680\",\"0.00200000\"],[\"72660\",\"0.00100000\"],[\"72653\",\"0.01400000\"],[\"72650\",\"0.00100000\"],[\"72640\",\"0.00200000\"],[\"72631\",\"0.00017119\"],[\"72620\",\"0.00100000\"],[\"72600\",\"0.00317124\"],[\"72580\",\"0.00100000\"],[\"72560\",\"0.00200000\"],[\"72550\",\"0.00100000\"],[\"72540\",\"0.00100000\"],[\"72520\",\"0.00200000\"],[\"72515\",\"0.00300000\"],[\"72510\",\"0.20000000\"],[\"72500\",\"0.75266747\"],[\"72480\",\"0.00200000\"],[\"72460\",\"0.00100000\"],[\"72450\",\"0.00100000\"],[\"72444\",\"0.00900000\"],[\"72440\",\"0.00200000\"],[\"72420\",\"0.00100000\"],[\"72405\",\"0.00017166\"],[\"72402\",\"0.00300000\"],[\"72400\",\"0.00300000\"],[\"72360\",\"0.00001000\"],[\"72333\",\"0.00275116\"],[\"72320\",\"0.00100000\"],[\"72311\",\"0.02000000\"],[\"72302\",\"0.00460568\"],[\"72300\",\"0.11467497\"],[\"72280\",\"0.00100000\"],[\"72260\",\"0.00100000\"],[\"72240\",\"0.00100000\"],[\"72205\",\"0.15000000\"],[\"72200\",\"0.01038781\"],[\"72150\",\"0.20094248\"],[\"72147\",\"0.07000000\"],[\"72100\",\"0.10000000\"],[\"72054\",\"0.00512393\"],[\"72000\",\"0.21101386\"],[\"71990\",\"0.02083622\"],[\"71978\",\"0.00700000\"],[\"71956\",\"0.00028292\"],[\"71943\",\"0.03320684\"],[\"71931\",\"0.01000000\"],[\"71921\",\"0.09800000\"],[\"71800\",\"0.09200557\"],[\"71781\",\"1.14234964\"],[\"71719\",\"0.20217794\"],[\"71700\",\"0.02231520\"],[\"71680\",\"0.00100000\"],[\"71678\",\"0.09156226\"],[\"71660\",\"0.00100000\"],[\"71655\",\"0.00697788\"],[\"71642\",\"0.00435498\"],[\"71640\",\"0.00100000\"],[\"71620\",\"0.00100000\"],[\"71600\",\"0.10282122\"],[\"71599\",\"0.01571250\"],[\"71580\",\"0.00100000\"],[\"71569\",\"0.00547723\"],[\"71560\",\"0.00100000\"],[\"71550\",\"0.27253668\"],[\"71540\",\"0.00100000\"],[\"71520\",\"0.00100000\"],[\"71511\",\"0.04755000\"],[\"71500\",\"0.06139426\"],[\"71480\",\"0.00100000\"],[\"71450\",\"1.00000000\"],[\"71417\",\"0.20583334\"],[\"71407\",\"0.00300000\"],[\"71400\",\"1.48543235\"],[\"71390\",\"0.10000000\"],[\"71372\",\"0.10000000\"],[\"71312\",\"0.00400000\"],[\"71300\",\"0.10000000\"],[\"71295\",\"0.00017533\"],[\"71277\",\"0.03000000\"],[\"71200\",\"0.15000000\"],[\"71197\",\"0.00100000\"],[\"71161\",\"0.00300000\"],[\"71100\",\"0.59485152\"],[\"71088\",\"0.03588351\"],[\"71085\",\"0.02500000\"],[\"71079\",\"0.00739318\"],[\"71077\",\"0.00500000\"],[\"71058\",\"0.38620563\"],[\"71042\",\"0.01002000\"],[\"71000\",\"0.32771830\"],[\"70914\",\"0.00017406\"],[\"70896\",\"0.00300000\"],[\"70764\",\"0.00408399\"],[\"70753\",\"0.01800000\"],[\"70694\",\"0.00900000\"],[\"70676\",\"0.00471164\"],[\"70640\",\"0.02548131\"],[\"70612\",\"0.35431655\"],[\"70569\",\"0.00450623\"],[\"70556\",\"0.00676058\"],[\"70555\",\"0.00138056\"],[\"70550\",\"0.20200000\"],[\"70500\",\"1.10000000\"],[\"70491\",\"0.00100000\"],[\"70440\",\"0.00100000\"],[\"70420\",\"0.00100000\"],[\"70400\",\"0.00100000\"],[\"70380\",\"0.00100000\"],[\"70245\",\"0.15000000\"],[\"70180\",\"0.00100000\"],[\"70140\",\"0.00100000\"],[\"70101\",\"0.08012367\"],[\"70100\",\"0.23961483\"],[\"70060\",\"0.00100000\"],[\"70039\",\"0.00752437\"],[\"70030\",\"0.77431101\"],[\"70021\",\"0.03600000\"],[\"70019\",\"0.19000000\"],[\"70010\",\"0.59000000\"],[\"70000\",\"2.45741425\"],[\"69970\",\"0.00714592\"],[\"69899\",\"0.06487932\"],[\"69856\",\"0.00721484\"],[\"69836\",\"0.02500000\"],[\"69607\",\"0.00040690\"],[\"69577\",\"0.02500000\"],[\"69569\",\"0.00405353\"],[\"69561\",\"0.00431276\"],[\"69500\",\"0.02388488\"],[\"69495\",\"0.26985000\"],[\"69400\",\"0.44668587\"],[\"69393\",\"0.10000000\"],[\"69296\",\"0.86621161\"],[\"69256\",\"0.00301000\"],[\"69200\",\"0.16705202\"],[\"69190\",\"0.06281182\"],[\"69178\",\"0.02229755\"],[\"69169\",\"0.00739347\"],[\"69111\",\"0.04052000\"],[\"69087\",\"0.00482000\"],[\"69050\",\"0.14650253\"],[\"69015\",\"0.15993696\"],[\"69014\",\"0.62130088\"],[\"69000\",\"1.39372461\"],[\"68990\",\"0.01449485\"],[\"68944\",\"0.00900000\"],[\"68923\",\"0.22454502\"],[\"68823\",\"0.16349827\"],[\"68750\",\"0.00209090\"],[\"68740\",\"0.00100000\"],[\"68720\",\"0.00200000\"],[\"68710\",\"0.10297715\"],[\"68700\",\"0.00200000\"],[\"68698\",\"0.00755533\"],[\"68680\",\"0.07200000\"],[\"68660\",\"0.00100000\"],[\"68652\",\"0.01495109\"],[\"68650\",\"0.00100000\"],[\"68640\",\"0.00200000\"],[\"68627\",\"0.02500000\"],[\"68620\",\"0.00100000\"],[\"68600\",\"0.00300000\"],[\"68580\",\"0.00100000\"],[\"68569\",\"0.00928991\"],[\"68560\",\"0.00200000\"],[\"68550\",\"0.00100000\"],[\"68546\",\"0.00442664\"],[\"68545\",\"0.00080000\"],[\"68542\",\"0.00179651\"],[\"68540\",\"0.00100000\"],[\"68520\",\"0.00200000\"],[\"68508\",\"0.00301000\"],[\"68500\",\"0.18852554\"],[\"68480\",\"0.00200000\"],[\"68460\",\"0.00100000\"],[\"68450\",\"0.00100000\"],[\"68440\",\"0.00100000\"],[\"68388\",\"0.00938050\"],[\"68347\",\"0.06000000\"],[\"68336\",\"0.00200000\"],[\"68323\",\"0.00100000\"],[\"68288\",\"0.00717875\"],[\"68262\",\"0.01000000\"],[\"68150\",\"0.54981399\"],[\"68142\",\"0.20000000\"],[\"68141\",\"0.01460920\"],[\"68127\",\"0.02500000\"],[\"68041\",\"0.01463057\"],[\"68000\",\"0.12587189\"],[\"67990\",\"0.01470805\"],[\"67962\",\"0.03000000\"],[\"67908\",\"0.00790775\"],[\"67896\",\"0.00042349\"],[\"67885\",\"0.00179651\"],[\"67804\",\"0.00090000\"],[\"67777\",\"0.03087050\"],[\"67769\",\"0.00019183\"],[\"67740\",\"0.01141127\"],[\"67569\",\"0.00790303\"],[\"67560\",\"0.02368265\"],[\"67550\",\"0.06485566\"],[\"67534\",\"0.00493084\"],[\"67500\",\"0.52367037\"],[\"67480\",\"0.02667457\"],[\"67418\",\"0.00019283\"],[\"67392\",\"0.45929255\"],[\"67350\",\"1.00000000\"],[\"67332\",\"0.01000000\"],[\"67321\",\"0.25000000\"],[\"67300\",\"0.20000000\"],[\"67259\",\"0.12065299\"],[\"67250\",\"0.01115242\"],[\"67209\",\"0.03987781\"],[\"67194\",\"0.00900000\"],[\"67154\",\"0.01000000\"],[\"67148\",\"0.04200000\"],[\"67111\",\"0.04173000\"],[\"67100\",\"0.00736215\"],[\"67063\",\"0.00100000\"],[\"67001\",\"0.00149251\"],[\"67000\",\"0.51149253\"],[\"66990\",\"0.02985520\"],[\"66979\",\"0.18268412\"],[\"66928\",\"0.00717875\"],[\"66923\",\"0.23125557\"],[\"66901\",\"0.00149474\"],[\"66886\",\"0.00750000\"],[\"66801\",\"0.00149698\"],[\"66796\",\"0.00016648\"],[\"66767\",\"0.20331900\"],[\"66754\",\"0.12145339\"],[\"66733\",\"0.00038491\"],[\"66701\",\"0.00336352\"],[\"66671\",\"0.00501500\"],[\"66650\",\"0.00016684\"],[\"66625\",\"0.00016975\"],[\"66623\",\"0.00016691\"],[\"66611\",\"0.00186681\"],[\"66601\",\"0.00150147\"],[\"66600\",\"0.25038319\"],[\"66578\",\"0.37549941\"],[\"66577\",\"0.03000000\"],[\"66569\",\"0.00748096\"],[\"66550\",\"0.29301277\"],[\"66540\",\"0.00016531\"],[\"66536\",\"0.00186890\"],[\"66501\",\"0.00374755\"],[\"66500\",\"0.75187969\"],[\"66487\",\"0.05000000\"],[\"66485\",\"0.00200000\"],[\"66467\",\"0.06038432\"],[\"66461\",\"0.00187100\"],[\"66450\",\"0.11421369\"],[\"66408\",\"0.03000000\"],[\"66401\",\"0.04725832\"],[\"66400\",\"0.00030000\"],[\"66371\",\"0.20000000\"],[\"66363\",\"0.00015144\"],[\"66334\",\"0.00038547\"],[\"66322\",\"0.00112000\"],[\"66315\",\"0.00017110\"],[\"66312\",\"0.00187521\"],[\"66306\",\"0.00187541\"],[\"66301\",\"0.00150827\"],[\"66268\",\"0.00375296\"],[\"66254\",\"0.02816282\"],[\"66231\",\"0.00187752\"],[\"66202\",\"0.00038375\"],[\"66201\",\"0.00151055\"],[\"66200\",\"0.00755287\"],[\"66194\",\"0.00375713\"],[\"66141\",\"0.00015195\"],[\"66121\",\"0.00376132\"],[\"66101\",\"0.00151283\"],[\"66084\",\"0.00188170\"],[\"66070\",\"0.00038491\"],[\"66055\",\"0.00500000\"],[\"66016\",\"0.00504423\"],[\"66013\",\"0.00188372\"],[\"66010\",\"0.00376761\"],[\"66001\",\"0.00151512\"],[\"66000\",\"0.34285330\"],[\"65938\",\"0.00227189\"],[\"65937\",\"0.00377181\"],[\"65864\",\"0.00188798\"],[\"65850\",\"1.00000000\"],[\"65842\",\"0.00015264\"],[\"65839\",\"0.00100000\"],[\"65829\",\"0.25000000\"],[\"65821\",\"0.10000000\"],[\"65806\",\"0.00038725\"],[\"65789\",\"0.00150000\"],[\"65753\",\"0.00288405\"],[\"65700\",\"0.02739726\"],[\"65682\",\"0.35760000\"],[\"65675\",\"0.00038541\"],[\"65655\",\"0.20000000\"],[\"65650\",\"0.03785222\"],[\"65581\",\"0.00126000\"],[\"65569\",\"0.00713752\"],[\"65547\",\"0.02500000\"],[\"65544\",\"0.02634858\"],[\"65535\",\"0.00632550\"],[\"65500\",\"0.11840609\"],[\"65450\",\"0.00100000\"],[\"65444\",\"0.00900000\"],[\"65432\",\"0.00528778\"],[\"65413\",\"0.00038906\"],[\"65400\",\"0.00100000\"],[\"65350\",\"0.00100000\"],[\"65310\",\"0.01454000\"],[\"65300\",\"0.01150286\"],[\"65299\",\"0.25000000\"],[\"65283\",\"0.03105484\"],[\"65277\",\"0.03000000\"],[\"65250\",\"0.00100000\"],[\"65225\",\"0.00016862\"],[\"65200\",\"0.00100000\"],[\"65120\",\"0.00282555\"],[\"65111\",\"0.04303000\"],[\"65007\",\"0.02191130\"],[\"65000\",\"1.62421941\"],[\"64999\",\"0.00070000\"],[\"64995\",\"0.12522194\"],[\"64950\",\"0.00200000\"],[\"64900\",\"0.00200000\"],[\"64855\",\"0.01258191\"],[\"64850\",\"0.00200000\"],[\"64840\",\"0.00141000\"],[\"64800\",\"0.01036352\"],[\"64777\",\"0.03000000\"],[\"64733\",\"0.00795899\"],[\"64721\",\"0.01103000\"],[\"64662\",\"0.00100000\"],[\"64650\",\"0.01000000\"],[\"64630\",\"0.22225820\"],[\"64607\",\"0.25000000\"],[\"64569\",\"0.00723257\"],[\"64547\",\"0.07000000\"],[\"64543\",\"0.15945887\"],[\"64508\",\"0.01400000\"],[\"64500\",\"0.07741472\"],[\"64462\",\"0.02800000\"],[\"64385\",\"0.00707089\"],[\"64249\",\"0.00540151\"],[\"64227\",\"0.00025000\"],[\"64212\",\"0.00297449\"],[\"64159\",\"0.00017142\"],[\"64099\",\"0.00158000\"],[\"64032\",\"5.00000000\"],[\"64009\",\"0.00297338\"],[\"64000\",\"10.13087548\"],[\"63932\",\"0.01119939\"],[\"63913\",\"0.00483666\"],[\"63901\",\"0.25000000\"],[\"63893\",\"0.00313023\"],[\"63890\",\"0.01000000\"],[\"63872\",\"0.00805320\"],[\"63792\",\"0.00242292\"],[\"63754\",\"0.05200000\"],[\"63746\",\"0.46983340\"],[\"63694\",\"0.00900000\"],[\"63663\",\"0.00015786\"],[\"63655\",\"0.01200219\"],[\"63577\",\"0.03000000\"],[\"63576\",\"0.01000000\"],[\"63569\",\"0.00742500\"],[\"63426\",\"0.00157664\"],[\"63400\",\"0.40757097\"],[\"63376\",\"0.50000000\"],[\"63358\",\"0.00177000\"],[\"63300\",\"0.01139020\"],[\"63274\",\"0.02000000\"],[\"63252\",\"0.00017388\"],[\"63201\",\"0.25000000\"],[\"63176\",\"0.00017409\"],[\"63162\",\"0.00017413\"],[\"63145\",\"0.02481590\"],[\"63120\",\"0.02000000\"],[\"63112\",\"0.01302000\"],[\"63111\",\"0.04440000\"],[\"63100\",\"0.01002842\"],[\"63052\",\"0.03584343\"],[\"63050\",\"0.35844567\"],[\"63000\",\"3.61098956\"],[\"62991\",\"0.01000000\"],[\"62962\",\"0.01588259\"],[\"62950\",\"0.02859412\"],[\"62900\",\"0.03058823\"],[\"62854\",\"0.01097782\"],[\"62800\",\"0.10000000\"],[\"62752\",\"0.00707089\"],[\"62750\",\"0.03163345\"],[\"62722\",\"0.00035070\"],[\"62662\",\"0.01595863\"],[\"62650\",\"0.20200000\"],[\"62647\",\"0.06000000\"],[\"62617\",\"0.00198000\"],[\"62600\",\"0.01000000\"],[\"62569\",\"0.00663268\"],[\"62550\",\"0.03197442\"],[\"62500\",\"1.03240178\"],[\"62495\",\"0.01000000\"],[\"62478\",\"0.00324456\"],[\"62452\",\"0.25000000\"],[\"62405\",\"0.00826015\"],[\"62377\",\"0.00020000\"],[\"62362\",\"0.01603540\"],[\"62358\",\"0.00389730\"],[\"62350\",\"0.01538461\"],[\"62320\",\"0.00986103\"],[\"62308\",\"0.00330920\"],[\"62267\",\"0.13090401\"],[\"62259\",\"0.00340318\"],[\"62252\",\"0.03630405\"],[\"62250\",\"0.44871334\"],[\"62227\",\"0.00050000\"],[\"62217\",\"0.00017677\"],[\"62215\",\"0.00017678\"],[\"62210\",\"0.00017679\"],[\"62167\",\"0.00016166\"],[\"62163\",\"0.10000000\"],[\"62149\",\"0.00100000\"],[\"62143\",\"0.00016172\"],[\"62139\",\"0.00017700\"],[\"62136\",\"0.00017700\"],[\"62105\",\"0.49052411\"],[\"62102\",\"0.00017906\"],[\"62062\",\"0.01611291\"],[\"62061\",\"0.00830594\"],[\"62052\",\"0.00250000\"],[\"62019\",\"0.00249583\"],[\"62010\",\"0.03500000\"],[\"62000\",\"1.31977256\"],[\"61944\",\"0.00900000\"],[\"61888\",\"0.00083370\"],[\"61881\",\"0.01315072\"],[\"61876\",\"0.00322000\"],[\"61849\",\"0.00834229\"],[\"61801\",\"0.00017993\"],[\"61800\",\"0.22042071\"],[\"61791\",\"0.00017996\"],[\"61786\",\"0.00334032\"],[\"61765\",\"0.01489472\"],[\"61762\",\"0.01619118\"],[\"61750\",\"0.02688000\"],[\"61728\",\"0.00017817\"],[\"61716\",\"0.00017820\"],[\"61669\",\"0.00810780\"],[\"61650\",\"0.31630170\"],[\"61649\",\"0.00017840\"],[\"61643\",\"0.25000000\"],[\"61637\",\"0.00017844\"],[\"61569\",\"0.00602576\"],[\"61560\",\"0.00170000\"],[\"61552\",\"0.03671751\"],[\"61550\",\"0.36718115\"],[\"61536\",\"1.00050377\"],[\"61511\",\"0.00500000\"],[\"61500\",\"0.32401626\"],[\"61462\",\"0.01627021\"],[\"61400\",\"0.10000000\"],[\"61393\",\"0.10000000\"],[\"61370\",\"0.00840740\"],[\"61330\",\"0.10000000\"],[\"61300\",\"0.01000000\"],[\"61285\",\"0.00100000\"],[\"61243\",\"0.00017959\"],[\"61234\",\"0.07000000\"],[\"61222\",\"0.00117988\"],[\"61221\",\"0.00017965\"],[\"61220\",\"0.02000000\"],[\"61212\",\"0.00017967\"],[\"61190\",\"0.00421607\"],[\"61185\",\"0.00017976\"],[\"61161\",\"0.01653010\"],[\"61152\",\"0.00843737\"],[\"61135\",\"0.00248000\"],[\"61133\",\"0.00017991\"],[\"61129\",\"0.00168811\"],[\"61128\",\"0.00084407\"],[\"61123\",\"0.00100000\"],[\"61120\",\"0.10000000\"],[\"61111\",\"0.04582000\"],[\"61103\",\"0.00710849\"],[\"61100\",\"0.80000000\"],[\"61091\",\"0.01000000\"],[\"61080\",\"0.05000000\"],[\"61050\",\"1.04267927\"],[\"61008\",\"0.00227838\"],[\"61005\",\"0.00018228\"],[\"61003\",\"0.02457256\"],[\"61000\",\"2.42545195\"],[\"60992\",\"0.00147399\"],[\"60880\",\"0.00018265\"],[\"60860\",\"0.01643115\"],[\"60856\",\"0.00279831\"],[\"60841\",\"0.00018277\"],[\"60830\",\"0.00632911\"],[\"60823\",\"0.01203000\"],[\"60800\",\"0.10000000\"],[\"60753\",\"0.00018304\"],[\"60718\",\"0.00337537\"],[\"60668\",\"0.00795150\"],[\"60667\",\"0.00018129\"],[\"60641\",\"0.00137997\"],[\"60633\",\"0.00018340\"],[\"60599\",\"0.01000000\"],[\"60597\",\"0.00018351\"],[\"60569\",\"0.00741303\"],[\"60560\",\"0.01651254\"],[\"60551\",\"0.00933097\"],[\"60500\",\"11.26350413\"],[\"60476\",\"0.00631655\"],[\"60394\",\"0.00278000\"],[\"60368\",\"0.05000000\"],[\"60364\",\"0.01027254\"],[\"60333\",\"0.00017000\"],[\"60300\",\"0.20000000\"],[\"60260\",\"0.01662234\"],[\"60228\",\"0.00018463\"],[\"60226\",\"0.00893036\"],[\"60220\",\"0.00018264\"],[\"60207\",\"0.00018267\"],[\"60200\",\"0.10000000\"],[\"60194\",\"0.00900000\"],[\"60175\",\"0.00018277\"],[\"60149\",\"0.00019394\"],[\"60136\",\"1.00000000\"],[\"60113\",\"0.13000000\"],[\"60100\",\"0.85500000\"],[\"60093\",\"0.00018505\"],[\"60088\",\"0.00332845\"],[\"60068\",\"0.00016731\"],[\"60037\",\"0.00018319\"],[\"60001\",\"0.02208296\"],[\"60000\",\"7.11260239\"],[\"59999\",\"0.02000000\"],[\"59959\",\"0.01667806\"],[\"59915\",\"0.03338062\"],[\"59900\",\"0.05011686\"],[\"59800\",\"0.10000000\"],[\"59711\",\"0.00018623\"],[\"59653\",\"0.00312000\"],[\"59626\",\"0.00038185\"],[\"59600\",\"2.43456376\"],[\"59569\",\"0.00837684\"],[\"59530\",\"1.00000000\"],[\"59500\",\"0.08665545\"],[\"59400\",\"0.10000000\"],[\"59341\",\"0.00016936\"],[\"59325\",\"0.01103000\"],[\"59320\",\"0.02800000\"],[\"59288\",\"1.00000000\"],[\"59230\",\"0.00018569\"],[\"59227\",\"0.00075000\"],[\"59200\",\"0.00016976\"],[\"59180\",\"0.00018790\"],[\"59159\",\"0.00018591\"],[\"59125\",\"0.00173708\"],[\"59119\",\"0.00019900\"],[\"59111\",\"0.04738000\"],[\"59049\",\"0.00168711\"],[\"59037\",\"0.00018629\"],[\"59034\",\"0.00018630\"],[\"59001\",\"0.00169488\"],[\"59000\",\"0.70305084\"],[\"58999\",\"0.03000000\"],[\"58995\",\"0.09500000\"],[\"58912\",\"0.00349000\"],[\"58908\",\"0.00700000\"],[\"58901\",\"0.00169776\"],[\"58900\",\"0.33848896\"],[\"58877\",\"0.00030000\"],[\"58864\",\"0.00018891\"],[\"58850\",\"0.00424808\"],[\"58847\",\"0.06000000\"],[\"58817\",\"0.00100000\"],[\"58801\",\"0.00170065\"],[\"58800\",\"0.10000000\"],[\"58718\",\"0.00018938\"],[\"58709\",\"0.00018733\"],[\"58708\",\"0.00018733\"],[\"58701\",\"0.00170354\"],[\"58696\",\"0.00100108\"],[\"58678\",\"0.00018743\"],[\"58641\",\"0.00018755\"],[\"58619\",\"0.00018763\"],[\"58601\",\"0.00170645\"],[\"58577\",\"0.00075000\"],[\"58569\",\"0.00676126\"],[\"58556\",\"0.10000000\"],[\"58543\",\"0.01545872\"],[\"58540\",\"0.12065254\"],[\"58501\",\"0.00170937\"],[\"58500\",\"0.61278657\"],[\"58491\",\"0.00019011\"],[\"58444\",\"0.00900000\"],[\"58402\",\"0.00019040\"],[\"58401\",\"0.00171229\"],[\"58400\",\"0.25000000\"],[\"58376\",\"0.50000000\"],[\"58301\",\"0.00171523\"],[\"58300\",\"0.00068611\"],[\"58214\",\"0.00018893\"],[\"58201\",\"0.00171818\"],[\"58189\",\"0.00019110\"],[\"58171\",\"0.00391000\"],[\"58170\",\"0.00019028\"],[\"58146\",\"0.25000000\"],[\"58145\",\"0.00018915\"],[\"58138\",\"0.00018917\"],[\"58123\",\"0.01000000\"],[\"58111\",\"0.00038272\"],[\"58100\",\"0.17125645\"],[\"58056\",\"0.00018945\"],[\"58041\",\"0.00018949\"],[\"58031\",\"0.00018953\"],[\"58000\",\"0.90747059\"],[\"57990\",\"0.00017331\"],[\"57894\",\"0.00019208\"],[\"57889\",\"0.00802335\"],[\"57884\",\"0.01800000\"],[\"57832\",\"0.00019228\"],[\"57815\",\"0.15637810\"],[\"57801\",\"0.00019238\"],[\"57760\",\"0.00160000\"],[\"57655\",\"0.00019076\"],[\"57577\",\"0.00200000\"],[\"57500\",\"5.25336870\"],[\"57434\",\"0.05000000\"],[\"57430\",\"0.00438000\"],[\"57378\",\"0.01000000\"],[\"57358\",\"0.00763930\"],[\"57339\",\"0.03774046\"],[\"57260\",\"0.10100000\"],[\"57255\",\"3.00000000\"],[\"57199\",\"0.00019238\"],[\"57184\",\"0.00019233\"],[\"57167\",\"0.00019500\"],[\"57123\",\"0.00100000\"],[\"57111\",\"0.04904000\"],[\"57100\",\"0.21584938\"],[\"57061\",\"0.00502000\"],[\"57053\",\"0.00019277\"],[\"57047\",\"0.00019279\"],[\"57046\",\"0.00019280\"],[\"57041\",\"0.00019281\"],[\"57033\",\"0.00019284\"],[\"57012\",\"0.00900000\"],[\"57007\",\"0.00055000\"],[\"57001\",\"0.00103507\"],[\"57000\",\"1.64246610\"],[\"56888\",\"0.15468991\"],[\"56845\",\"0.00100000\"],[\"56789\",\"0.01614749\"],[\"56788\",\"0.10371910\"],[\"56753\",\"0.01094215\"],[\"56700\",\"0.07141093\"],[\"56696\",\"0.00019968\"],[\"56694\",\"0.00900000\"],[\"56689\",\"0.00490000\"],[\"56682\",\"0.00019404\"],[\"56666\",\"0.00020171\"],[\"56632\",\"0.00019563\"],[\"56624\",\"0.04030093\"],[\"56612\",\"0.00100000\"],[\"56569\",\"0.00777811\"],[\"56500\",\"0.26894795\"],[\"56340\",\"0.00905217\"],[\"56329\",\"0.33730405\"],[\"56230\",\"0.02110000\"],[\"56213\",\"0.04580791\"],[\"56206\",\"0.00039587\"],[\"56200\",\"0.01169039\"],[\"56184\",\"0.00017888\"],[\"56138\",\"0.01122234\"],[\"56125\",\"0.00781433\"],[\"56123\",\"0.01000000\"],[\"56077\",\"0.00050000\"],[\"56042\",\"0.00019625\"],[\"56039\",\"0.00019626\"],[\"56036\",\"0.25019627\"],[\"56033\",\"0.00019629\"],[\"56030\",\"0.00019630\"],[\"56000\",\"0.36626266\"],[\"55984\",\"0.02200000\"],[\"55948\",\"0.00549000\"],[\"55924\",\"0.00318071\"],[\"55912\",\"0.01053000\"],[\"55777\",\"0.25099951\"],[\"55698\",\"0.00897698\"],[\"55693\",\"0.00020371\"],[\"55692\",\"0.00020696\"],[\"55653\",\"0.00020053\"],[\"55624\",\"0.00020239\"],[\"55605\",\"0.00200000\"],[\"55577\",\"0.00100000\"],[\"55570\",\"0.02699298\"],[\"55551\",\"0.04862000\"],[\"55534\",\"0.05000000\"],[\"55520\",\"0.09000000\"],[\"55500\",\"0.08138129\"],[\"55478\",\"0.01000000\"],[\"55464\",\"0.00360594\"],[\"55287\",\"0.01820678\"],[\"55207\",\"0.00615000\"],[\"55204\",\"0.00021065\"],[\"55200\",\"0.01811594\"],[\"55156\",\"0.00020414\"],[\"55121\",\"0.00020632\"],[\"55099\",\"0.01814914\"],[\"55052\",\"0.00019979\"],[\"55050\",\"0.00019979\"],[\"55041\",\"0.00019982\"],[\"55040\",\"0.00019983\"],[\"55039\",\"0.00019983\"],[\"55007\",\"0.00021500\"],[\"55000\",\"1.02411787\"],[\"54973\",\"0.00023648\"],[\"54944\",\"0.00900000\"],[\"54843\",\"0.07293547\"],[\"54831\",\"0.00023709\"],[\"54712\",\"0.01173000\"],[\"54695\",\"0.00020752\"],[\"54694\",\"0.00020904\"],[\"54678\",\"0.00021446\"],[\"54672\",\"0.00021806\"],[\"54627\",\"0.00455819\"],[\"54500\",\"0.15000000\"],[\"54469\",\"0.00023867\"],[\"54466\",\"0.00689000\"],[\"54460\",\"0.00774413\"],[\"54444\",\"0.25800823\"],[\"54400\",\"0.10000000\"],[\"54377\",\"0.05190000\"],[\"54333\",\"0.25000000\"],[\"54300\",\"0.10000000\"],[\"54206\",\"0.00022182\"],[\"54200\",\"0.10000000\"],[\"54177\",\"0.00021331\"],[\"54144\",\"0.00021105\"],[\"54118\",\"0.00021676\"],[\"54113\",\"0.00500000\"],[\"54111\",\"0.04990000\"],[\"54100\",\"0.13720000\"],[\"54084\",\"0.02600000\"],[\"54050\",\"0.05000000\"],[\"54027\",\"0.05230000\"],[\"54020\",\"0.10000000\"],[\"54002\",\"0.00300000\"],[\"54001\",\"0.01000000\"],[\"54000\",\"1.50749996\"],[\"53910\",\"0.00062325\"],[\"53900\",\"0.08254174\"],[\"53825\",\"0.01182000\"],[\"53799\",\"0.00955408\"],[\"53736\",\"0.00018703\"],[\"53725\",\"0.00772000\"],[\"53703\",\"0.00022023\"],[\"53641\",\"0.00022416\"],[\"53634\",\"0.05000000\"],[\"53624\",\"0.00021669\"],[\"53622\",\"0.00021515\"],[\"53582\",\"0.05000000\"],[\"53578\",\"0.01000000\"],[\"53577\",\"0.00125000\"],[\"53520\",\"0.00180000\"],[\"53500\",\"0.37830813\"],[\"53333\",\"0.02678110\"],[\"53195\",\"0.00022802\"],[\"53194\",\"0.00922042\"],[\"53183\",\"0.00021865\"],[\"53174\",\"0.00022267\"],[\"53150\",\"0.04750611\"],[\"53144\",\"0.00022639\"],[\"53111\",\"0.00020000\"],[\"53070\",\"0.01200301\"],[\"53000\",\"0.19460150\"],[\"52999\",\"0.05700000\"],[\"52984\",\"0.00864000\"],[\"52860\",\"0.01152000\"],[\"52703\",\"0.00023210\"],[\"52672\",\"0.00023444\"],[\"52649\",\"0.00022461\"],[\"52628\",\"0.00023036\"],[\"52626\",\"0.00022685\"],[\"52551\",\"0.05140000\"],[\"52550\",\"0.00116079\"],[\"52500\",\"0.03284955\"],[\"52450\",\"0.00400381\"],[\"52428\",\"0.00500000\"],[\"52400\",\"0.01217557\"],[\"52332\",\"0.00070000\"],[\"52288\",\"0.00066937\"],[\"52248\",\"0.17769101\"],[\"52243\",\"0.00968000\"],[\"52184\",\"0.03000000\"],[\"52168\",\"0.00022886\"],[\"52166\",\"0.00023282\"],[\"52159\",\"0.00191721\"],[\"52123\",\"0.01000000\"],[\"52109\",\"0.00023702\"],[\"52100\",\"0.02110341\"],[\"52077\",\"0.00060000\"],[\"52010\",\"0.01000000\"],[\"52007\",\"0.00150000\"],[\"52001\",\"0.00100000\"],[\"52000\",\"1.11941852\"],[\"51999\",\"0.02500000\"],[\"51950\",\"0.15615008\"],[\"51850\",\"0.02290000\"],[\"51800\",\"0.00293436\"],[\"51759\",\"0.00100000\"],[\"51705\",\"0.10000000\"],[\"51678\",\"0.01400000\"],[\"51672\",\"0.00023889\"],[\"51666\",\"0.01210819\"],[\"51645\",\"0.00023301\"],[\"51641\",\"0.00023511\"],[\"51630\",\"0.01234650\"],[\"51622\",\"0.00024119\"],[\"51520\",\"0.10000000\"],[\"51502\",\"0.01084000\"],[\"51500\",\"0.00291262\"],[\"51460\",\"0.02331908\"],[\"51444\",\"0.00670000\"],[\"51422\",\"0.01202000\"],[\"51300\",\"0.02600000\"],[\"51247\",\"0.13200000\"],[\"51200\",\"0.03906250\"],[\"51166\",\"0.00024141\"],[\"51150\",\"0.00024367\"],[\"51136\",\"0.00024790\"],[\"51127\",\"0.00023778\"],[\"51111\",\"0.26035000\"],[\"51100\",\"0.23991100\"],[\"51051\",\"0.05310000\"],[\"51047\",\"0.03751570\"],[\"51040\",\"0.00132249\"],[\"51025\",\"0.10000000\"],[\"51018\",\"0.01771923\"],[\"51015\",\"0.10000000\"],[\"51000\",\"0.63535413\"],[\"50950\",\"6.00553484\"],[\"50893\",\"0.10503625\"],[\"50880\",\"0.04913522\"],[\"50761\",\"0.01214000\"],[\"50751\",\"0.05195957\"],[\"50743\",\"0.00025619\"],[\"50672\",\"0.00024186\"],[\"50656\",\"0.00025284\"],[\"50653\",\"0.00024836\"],[\"50633\",\"0.00024408\"],[\"50627\",\"0.00024625\"],[\"50501\",\"0.00591681\"],[\"50500\",\"0.20296240\"],[\"50400\",\"0.03968253\"],[\"50281\",\"0.00019988\"],[\"50200\",\"0.05976095\"],[\"50173\",\"0.00384669\"],[\"50152\",\"0.00021933\"],[\"50121\",\"0.00025137\"],[\"50116\",\"0.00049545\"],[\"50103\",\"0.00025321\"],[\"50102\",\"1.59225180\"],[\"50101\",\"0.39943314\"],[\"50100\",\"0.50923372\"],[\"50099\",\"0.01696640\"],[\"50095\",\"0.01724723\"],[\"50077\",\"0.00070000\"],[\"50050\",\"0.00020000\"],[\"50020\",\"0.01360000\"],[\"50010\",\"0.00973905\"],[\"50001\",\"0.02235955\"],[\"50000\",\"1.15664263\"],[\"49999\",\"0.12344746\"],[\"49980\",\"0.19964145\"],[\"49950\",\"0.50000000\"],[\"49900\",\"0.50000000\"],[\"49849\",\"0.10000000\"],[\"49800\",\"0.08032128\"],[\"49694\",\"0.02000000\"],[\"49676\",\"1.40913116\"],[\"49551\",\"0.05450000\"],[\"49520\",\"0.00200000\"],[\"49500\",\"0.04269906\"],[\"49347\",\"0.15600000\"],[\"49303\",\"0.00100000\"],[\"49280\",\"0.25000000\"],[\"49279\",\"0.01523000\"],[\"49200\",\"0.00101626\"],[\"49113\",\"0.01152000\"],[\"49093\",\"0.00500000\"],[\"49049\",\"0.00020000\"],[\"49000\",\"0.34641685\"],[\"48871\",\"0.10000000\"],[\"48850\",\"0.05000000\"],[\"48803\",\"1.44326168\"],[\"48799\",\"0.03356933\"],[\"48780\",\"0.10000000\"],[\"48777\",\"0.17500000\"],[\"48752\",\"0.00102560\"],[\"48710\",\"0.10000000\"],[\"48684\",\"0.15000000\"],[\"48538\",\"0.01706000\"],[\"48524\",\"0.25000000\"],[\"48500\",\"0.54036310\"],[\"48440\",\"0.11524896\"],[\"48400\",\"0.40169875\"],[\"48302\",\"0.00564448\"],[\"48270\",\"0.03490781\"],[\"48200\",\"0.01034242\"],[\"48182\",\"0.00735917\"],[\"48100\",\"0.05405405\"],[\"48051\",\"0.05620000\"],[\"48048\",\"0.00020000\"],[\"48001\",\"0.00150000\"],[\"48000\",\"0.20019896\"],[\"47996\",\"0.00215642\"],[\"47898\",\"0.13570503\"],[\"47849\",\"0.07579468\"],[\"47813\",\"0.01000000\"],[\"47811\",\"0.10000000\"],[\"47797\",\"0.01911000\"],[\"47760\",\"0.11000000\"],[\"47752\",\"0.00105130\"],[\"47621\",\"0.01000000\"],[\"47574\",\"0.00070000\"],[\"47525\",\"0.01024829\"],[\"47517\",\"0.00080000\"],[\"47503\",\"0.00058943\"],[\"47502\",\"0.00058944\"],[\"47501\",\"0.00058946\"],[\"47500\",\"0.00829688\"],[\"47447\",\"0.18000000\"],[\"47300\",\"1.50428520\"],[\"47250\",\"0.00529100\"],[\"47241\",\"0.01058402\"],[\"47213\",\"0.01102000\"],[\"47190\",\"0.01582962\"],[\"47100\",\"0.30000000\"],[\"47056\",\"0.02140000\"],[\"47047\",\"0.00020000\"],[\"47000\",\"4.42923276\"],[\"46904\",\"0.01285694\"],[\"46900\",\"0.10660980\"],[\"46789\",\"0.00100000\"],[\"46786\",\"0.02442097\"],[\"46752\",\"0.00107380\"],[\"46750\",\"0.00190374\"],[\"46666\",\"0.49929285\"],[\"46551\",\"0.05800000\"],[\"46500\",\"0.00874197\"],[\"46478\",\"0.15000000\"],[\"46433\",\"0.00540000\"],[\"46353\",\"0.13860418\"],[\"46200\",\"0.01000000\"],[\"46112\",\"0.02000000\"],[\"46050\",\"0.20000000\"],[\"46046\",\"0.00020000\"],[\"46020\",\"0.01083234\"],[\"46012\",\"0.15000000\"],[\"46010\",\"0.00220000\"],[\"46000\",\"4.58289131\"],[\"45789\",\"0.20000000\"],[\"45775\",\"0.01000000\"],[\"45729\",\"0.00218679\"],[\"45710\",\"1.00000000\"],[\"45678\",\"0.03566268\"],[\"45631\",\"0.00859065\"],[\"45614\",\"0.01000000\"],[\"45595\",\"0.01000000\"],[\"45547\",\"0.20400000\"],[\"45512\",\"0.02500000\"],[\"45500\",\"0.04590421\"],[\"45456\",\"0.01590000\"],[\"45400\",\"0.00300000\"],[\"45300\",\"0.50000000\"],[\"45216\",\"0.00100000\"],[\"45135\",\"0.03290459\"],[\"45123\",\"0.00913835\"],[\"45113\",\"0.01102000\"],[\"45077\",\"0.00090000\"],[\"45051\",\"0.06000000\"],[\"45045\",\"0.00030000\"],[\"45000\",\"6.17140674\"],[\"44851\",\"0.12106371\"],[\"44848\",\"0.00026757\"],[\"44786\",\"0.01858875\"],[\"44752\",\"0.00112170\"],[\"44500\",\"0.08723823\"],[\"44444\",\"0.01030510\"],[\"44355\",\"0.10000000\"],[\"44264\",\"0.07000000\"],[\"44233\",\"0.01000000\"],[\"44200\",\"0.04411764\"],[\"44145\",\"0.01519325\"],[\"44123\",\"0.00100000\"],[\"44057\",\"0.01000000\"],[\"44044\",\"0.00040000\"],[\"44030\",\"0.12000000\"],[\"44000\",\"0.60520185\"],[\"43752\",\"0.00112905\"],[\"43750\",\"0.03830314\"],[\"43588\",\"0.00042396\"],[\"43551\",\"0.06200000\"],[\"43507\",\"0.00086974\"],[\"43500\",\"0.10000000\"],[\"43280\",\"0.01140000\"],[\"43278\",\"0.00240306\"],[\"43250\",\"0.01381756\"],[\"43185\",\"0.20000000\"],[\"43100\",\"0.08600000\"],[\"43043\",\"0.00050000\"],[\"43023\",\"0.02365052\"],[\"43000\",\"0.83763020\"],[\"42995\",\"0.00521223\"],[\"42889\",\"0.33943435\"],[\"42884\",\"0.00070000\"],[\"42752\",\"0.00117420\"],[\"42628\",\"0.01300540\"],[\"42600\",\"9.59347417\"],[\"42589\",\"0.09572894\"],[\"42577\",\"0.05864669\"],[\"42500\",\"0.10562831\"],[\"42415\",\"0.04223600\"],[\"42400\",\"9.63872641\"],[\"42352\",\"0.01000000\"],[\"42300\",\"0.01182033\"],[\"42251\",\"0.06395000\"],[\"42250\",\"0.00591715\"],[\"42200\",\"9.68440758\"],[\"42157\",\"0.00100000\"],[\"42125\",\"0.08533602\"],[\"42113\",\"0.01000000\"],[\"42080\",\"0.01009291\"],[\"42066\",\"0.27330000\"],[\"42042\",\"0.00060000\"],[\"42029\",\"0.25000000\"],[\"42005\",\"0.10000000\"],[\"42000\",\"10.18144330\"],[\"41888\",\"0.00023873\"],[\"41800\",\"9.77708133\"],[\"41705\",\"0.08615273\"],[\"41600\",\"9.85284153\"],[\"41578\",\"0.00100000\"],[\"41505\",\"0.13188772\"],[\"41400\",\"9.87154589\"],[\"41324\",\"0.15000000\"],[\"41260\",\"0.00120700\"],[\"41234\",\"0.05000000\"],[\"41200\",\"9.93160193\"],[\"41111\",\"0.01000000\"],[\"41090\",\"0.00025000\"],[\"41051\",\"0.06578000\"],[\"41041\",\"0.00070000\"],[\"41040\",\"0.02200000\"],[\"41022\",\"0.22176169\"],[\"41002\",\"0.00279571\"],[\"41000\",\"10.02516095\"],[\"40850\",\"0.00500000\"],[\"40800\",\"10.01671568\"],[\"40752\",\"0.00123180\"],[\"40600\",\"10.06605911\"],[\"40580\",\"0.08950122\"],[\"40500\",\"0.00245930\"],[\"40438\",\"0.00028000\"],[\"40400\",\"10.36589108\"],[\"40335\",\"0.00245444\"],[\"40251\",\"0.00200000\"],[\"40200\",\"10.16621890\"],[\"40100\",\"0.00109726\"],[\"40074\",\"0.50430129\"],[\"40071\",\"0.00100000\"],[\"40040\",\"0.00080000\"],[\"40000\",\"13.03889014\"],[\"39852\",\"0.01683426\"],[\"39800\",\"10.35820195\"],[\"39787\",\"0.07792057\"],[\"39751\",\"0.06794000\"],[\"39750\",\"0.03570616\"],[\"39600\",\"10.32025252\"],[\"39580\",\"0.02337771\"],[\"39500\",\"0.35252151\"],[\"39494\",\"0.25000000\"],[\"39400\",\"10.37263959\"],[\"39200\",\"10.42556122\"],[\"39051\",\"0.00171570\"],[\"39039\",\"0.00090000\"],[\"39000\",\"0.15237638\"],[\"38741\",\"0.10000000\"],[\"38600\",\"0.00840218\"],[\"38577\",\"0.00100000\"],[\"38551\",\"0.07006000\"],[\"38500\",\"0.32602597\"],[\"38450\",\"0.11320129\"],[\"38432\",\"0.07735870\"],[\"38415\",\"0.48922309\"],[\"38411\",\"0.50000000\"],[\"38283\",\"0.00259521\"],[\"38255\",\"0.13393621\"],[\"38250\",\"0.01000000\"],[\"38081\",\"5.00000000\"],[\"38062\",\"1.63357918\"],[\"38038\",\"0.00100000\"],[\"38000\",\"0.04468386\"],[\"37859\",\"0.00939258\"],[\"37810\",\"0.25000000\"],[\"37777\",\"0.00295285\"],[\"37760\",\"0.27000000\"],[\"37686\",\"0.00026429\"],[\"37670\",\"0.00100000\"],[\"37500\",\"0.02661332\"],[\"37488\",\"0.00070000\"],[\"37364\",\"0.01162250\"],[\"37267\",\"0.00563928\"],[\"37251\",\"0.07250000\"],[\"37250\",\"0.10000000\"],[\"37037\",\"0.00110000\"],[\"37000\",\"0.06966490\"],[\"36938\",\"0.35000000\"],[\"36884\",\"0.00804765\"],[\"36777\",\"0.00120000\"],[\"36631\",\"0.00200000\"],[\"36600\",\"0.01000000\"],[\"36555\",\"0.30000000\"],[\"36525\",\"0.05000000\"],[\"36388\",\"0.00026988\"],[\"36345\",\"0.00852279\"],[\"36200\",\"0.20858369\"],[\"36051\",\"0.08515000\"],[\"36050\",\"1.02712565\"],[\"36036\",\"0.00120000\"],[\"36000\",\"0.01566776\"],[\"35985\",\"0.01389467\"],[\"35743\",\"0.00072700\"],[\"35700\",\"1.13238094\"],[\"35555\",\"0.01000000\"],[\"35500\",\"0.01671746\"],[\"35342\",\"0.02480035\"],[\"35123\",\"0.00100000\"],[\"35108\",\"0.00944656\"],[\"35044\",\"0.20000000\"],[\"35035\",\"0.00130000\"],[\"35000\",\"1.49800478\"],[\"34900\",\"0.01000000\"],[\"34800\",\"0.00832875\"],[\"34751\",\"0.08834000\"],[\"34622\",\"0.00670301\"],[\"34600\",\"0.03612716\"],[\"34561\",\"0.01181563\"],[\"34517\",\"0.00140000\"],[\"34500\",\"0.57030358\"],[\"34375\",\"0.01850443\"],[\"34363\",\"0.01139116\"],[\"34200\",\"0.10000000\"],[\"34150\",\"0.00202049\"],[\"34080\",\"0.00076300\"],[\"34034\",\"0.00140000\"],[\"34000\",\"0.28219475\"],[\"33600\",\"0.01000000\"],[\"33551\",\"0.09150000\"],[\"33500\",\"0.01764835\"],[\"33477\",\"0.00160000\"],[\"33385\",\"0.00500000\"],[\"33380\",\"0.01000000\"],[\"33333\",\"0.00334653\"],[\"33209\",\"0.02000000\"],[\"33123\",\"0.00100000\"],[\"33108\",\"0.01044530\"],[\"33033\",\"0.00150000\"],[\"33000\",\"0.10199402\"],[\"32850\",\"0.00048706\"],[\"32780\",\"0.06156192\"],[\"32688\",\"0.00030000\"],[\"32632\",\"0.01941652\"],[\"32520\",\"0.31000000\"],[\"32500\",\"0.02269230\"],[\"32370\",\"0.10000000\"],[\"32344\",\"0.01179428\"],[\"32296\",\"0.03096358\"],[\"32251\",\"0.09519000\"],[\"32200\",\"0.01800000\"],[\"32124\",\"0.14932386\"],[\"32123\",\"0.00100000\"],[\"32100\",\"0.01548323\"],[\"32032\",\"0.01660000\"],[\"32000\",\"0.38683780\"],[\"31900\",\"0.05000000\"],[\"31877\",\"0.00200000\"],[\"31750\",\"0.10000000\"],[\"31708\",\"0.10000000\"],[\"31510\",\"0.00091000\"],[\"31500\",\"0.02000000\"],[\"31344\",\"0.00899287\"],[\"31248\",\"0.00100000\"],[\"31085\",\"0.00804246\"],[\"31051\",\"0.09886000\"],[\"31031\",\"0.00170000\"],[\"31000\",\"0.04678701\"],[\"30888\",\"0.00047591\"],[\"30780\",\"0.08800000\"],[\"30750\",\"0.04028357\"],[\"30500\",\"0.11422950\"],[\"30420\",\"0.01000000\"],[\"30288\",\"1.09428054\"],[\"30195\",\"0.00095131\"],[\"30100\",\"0.16083388\"],[\"30099\",\"0.02953586\"],[\"30055\",\"0.00308200\"],[\"30030\",\"0.00180000\"],[\"30010\",\"0.01007863\"],[\"30000\",\"125.42271078\"],[\"29988\",\"1.30175700\"],[\"29987\",\"0.00114115\"],[\"29900\",\"0.23851070\"],[\"29889\",\"0.01057245\"],[\"29751\",\"0.10318000\"],[\"29750\",\"0.03334554\"],[\"29500\",\"0.00040000\"],[\"29400\",\"0.50000000\"],[\"29342\",\"0.00340808\"],[\"29200\",\"0.07000000\"],[\"29188\",\"0.00050000\"],[\"29116\",\"0.05000000\"],[\"29029\",\"0.00190000\"],[\"29000\",\"0.00862068\"],[\"28888\",\"0.00038880\"],[\"28851\",\"0.00100000\"],[\"28551\",\"0.10750000\"],[\"28500\",\"0.05040000\"],[\"28100\",\"0.07490177\"],[\"28028\",\"0.00200000\"],[\"28008\",\"0.01772757\"],[\"28000\",\"0.05981330\"],[\"27777\",\"0.09100000\"],[\"27760\",\"0.35000000\"],[\"27551\",\"0.09328000\"],[\"27500\",\"0.01409090\"],[\"27388\",\"0.00076675\"],[\"27355\",\"0.00286236\"],[\"27130\",\"0.00368595\"],[\"27093\",\"0.10000000\"],[\"27064\",\"0.00365842\"],[\"27027\",\"0.00210000\"],[\"27000\",\"0.21950000\"],[\"26900\",\"0.10500000\"],[\"26834\",\"0.00100000\"],[\"26660\",\"0.00596399\"],[\"26560\",\"0.00120000\"],[\"26551\",\"0.09678000\"],[\"26320\",\"1.78865274\"],[\"26200\",\"0.19892175\"],[\"26094\",\"0.20000000\"],[\"26026\",\"0.00220000\"],[\"26000\",\"0.00721538\"],[\"25888\",\"0.00080000\"],[\"25736\",\"0.00046627\"],[\"25700\",\"0.01556420\"],[\"25576\",\"0.00390991\"],[\"25500\",\"0.01392157\"],[\"25465\",\"0.01164412\"],[\"25273\",\"0.01173862\"],[\"25115\",\"0.01291724\"],[\"25027\",\"0.00490000\"],[\"25025\",\"0.00230000\"],[\"25012\",\"0.00043972\"],[\"25009\",\"0.00043979\"],[\"25006\",\"0.00043982\"],[\"25000\",\"5.41777483\"],[\"24910\",\"0.00120000\"],[\"24675\",\"0.02518800\"],[\"24600\",\"0.03601000\"],[\"24567\",\"0.59081084\"],[\"24555\",\"0.10000000\"],[\"24550\",\"0.01217923\"],[\"24500\",\"0.05489795\"],[\"24400\",\"0.03631100\"],[\"24200\",\"0.03661100\"],[\"24110\",\"0.01000000\"],[\"24024\",\"0.00240000\"],[\"24021\",\"0.00041630\"],[\"24000\",\"0.26688267\"],[\"23866\",\"0.00419006\"],[\"23810\",\"0.00120000\"],[\"23800\",\"0.03722600\"],[\"23760\",\"0.42000000\"],[\"23707\",\"0.00333234\"],[\"23669\",\"0.04833326\"],[\"23600\",\"0.03754230\"],[\"23500\",\"0.04255319\"],[\"23456\",\"0.02000000\"],[\"23400\",\"0.03786320\"],[\"23287\",\"0.00429424\"],[\"23221\",\"0.04198785\"],[\"23200\",\"0.03818900\"],[\"23023\",\"0.00250000\"],[\"23000\",\"0.04286883\"],[\"22900\",\"0.01000000\"],[\"22838\",\"0.00051361\"],[\"22811\",\"0.00131000\"],[\"22800\",\"0.03885900\"],[\"22798\",\"0.00050000\"],[\"22600\",\"0.03920000\"],[\"22555\",\"0.02220000\"],[\"22541\",\"0.00100000\"],[\"22500\",\"0.44444444\"],[\"22488\",\"0.00050000\"],[\"22400\",\"0.03955000\"],[\"22203\",\"0.00054047\"],[\"22200\",\"0.03990990\"],[\"22069\",\"0.01087498\"],[\"22022\",\"0.00260000\"],[\"22005\",\"0.03019812\"],[\"22000\",\"0.47623271\"],[\"21888\",\"0.00050000\"],[\"21800\",\"0.04064000\"],[\"21700\",\"0.01000000\"],[\"21600\",\"0.04101850\"],[\"21410\",\"0.00140000\"],[\"21400\",\"0.04140200\"],[\"21200\",\"0.04179200\"],[\"21088\",\"0.00058000\"],[\"21085\",\"0.10000000\"],[\"21021\",\"0.00270000\"],[\"21000\",\"0.23700237\"],[\"20800\",\"0.04259600\"],[\"20798\",\"0.00048888\"],[\"20748\",\"0.10000000\"],[\"20700\",\"0.01000000\"],[\"20682\",\"0.02581300\"],[\"20600\",\"0.04301000\"],[\"20521\",\"0.00150000\"],[\"20520\",\"0.08572124\"],[\"20480\",\"0.00488281\"],[\"20400\",\"0.04343100\"],[\"20299\",\"0.00492635\"],[\"20260\",\"0.50000000\"],[\"20200\",\"0.04386100\"],[\"20026\",\"0.00099860\"],[\"20020\",\"0.00100000\"],[\"20016\",\"0.00054947\"],[\"20008\",\"0.00054972\"],[\"20007\",\"0.00109948\"],[\"20006\",\"0.24832550\"],[\"20005\",\"0.69127718\"],[\"20000\",\"1.48979950\"],[\"19999\",\"0.01000000\"],[\"19800\",\"0.04474740\"],[\"19700\",\"0.00380000\"],[\"19606\",\"0.00180000\"],[\"19600\",\"0.04520400\"],[\"19570\",\"0.00255493\"],[\"19500\",\"2.66145127\"],[\"19400\",\"0.04567000\"],[\"19200\",\"0.04614580\"],[\"19100\",\"0.01400000\"],[\"19052\",\"0.50000000\"],[\"19001\",\"0.00100000\"],[\"19000\",\"0.00332421\"],[\"18849\",\"0.00159159\"],[\"18780\",\"0.00800000\"],[\"18511\",\"0.00190000\"],[\"18500\",\"0.00900000\"],[\"18388\",\"0.00100000\"],[\"18300\",\"0.01200000\"],[\"18082\",\"0.00553036\"],[\"18001\",\"0.18669079\"],[\"18000\",\"2.17210279\"],[\"17910\",\"0.00210000\"],[\"17777\",\"0.30000000\"],[\"17520\",\"0.58000000\"],[\"17500\",\"0.00525714\"],[\"17480\",\"0.10000000\"],[\"17350\",\"0.00060000\"],[\"17300\",\"0.30000000\"],[\"17251\",\"0.00240000\"],[\"17214\",\"0.00580922\"],[\"17138\",\"0.00600000\"],[\"17001\",\"0.00100000\"],[\"17000\",\"0.42428352\"],[\"16888\",\"0.00520487\"],[\"16687\",\"0.05417800\"],[\"16666\",\"0.03700000\"],[\"16651\",\"0.00240000\"],[\"16595\",\"0.16631515\"],[\"16300\",\"0.25000000\"],[\"16130\",\"0.13000000\"],[\"16001\",\"0.00100000\"],[\"16000\",\"1.00718750\"],[\"15985\",\"0.02178781\"],[\"15952\",\"0.42262880\"],[\"15900\",\"2.50000000\"],[\"15810\",\"0.00280000\"],[\"15750\",\"0.00158730\"],[\"15635\",\"0.00150000\"],[\"15600\",\"0.20000000\"],[\"15589\",\"0.31913529\"],[\"15585\",\"0.18655758\"],[\"15578\",\"0.31871871\"],[\"15571\",\"0.18624366\"],[\"15522\",\"0.00064425\"],[\"15500\",\"0.02400000\"],[\"15437\",\"0.00353287\"],[\"15400\",\"2.00000000\"],[\"15388\",\"0.00194964\"],[\"15355\",\"0.02739169\"],[\"15333\",\"0.00371747\"],[\"15300\",\"0.05000000\"],[\"15279\",\"1.00000000\"],[\"15211\",\"0.00340000\"],[\"15204\",\"0.71988172\"],[\"15188\",\"0.00197531\"],[\"15171\",\"0.33300000\"],[\"15105\",\"0.00583669\"],[\"15100\",\"0.15000000\"],[\"15088\",\"0.00198840\"],[\"15060\",\"0.66000000\"],[\"15001\",\"0.01623225\"],[\"15000\",\"16.37494885\"],[\"14888\",\"0.00201511\"],[\"14688\",\"0.00204255\"],[\"14620\",\"0.00300000\"],[\"14600\",\"2.00000000\"],[\"14591\",\"0.00600000\"],[\"14555\",\"0.00206122\"],[\"14500\",\"0.51500000\"],[\"14490\",\"0.12207729\"],[\"14400\",\"1.00000000\"],[\"14388\",\"0.00208514\"],[\"14300\",\"0.03139860\"],[\"14208\",\"0.02000000\"],[\"14200\",\"0.02000000\"],[\"14188\",\"0.00211453\"],[\"14088\",\"0.00212954\"],[\"14070\",\"0.24041764\"],[\"14061\",\"0.00240000\"],[\"14010\",\"0.01000000\"],[\"14000\",\"0.08522643\"],[\"13940\",\"1.60000000\"],[\"13888\",\"0.00216021\"],[\"13828\",\"0.00520000\"],[\"13800\",\"0.40000000\"],[\"13737\",\"0.25000000\"],[\"13701\",\"0.22898273\"],[\"13555\",\"0.00221328\"],[\"13488\",\"0.00222427\"],[\"13420\",\"0.01600000\"],[\"13400\",\"1.00000000\"],[\"13333\",\"0.01000000\"],[\"13312\",\"0.00409623\"],[\"13303\",\"0.00751710\"],[\"13288\",\"0.00225775\"],[\"13200\",\"0.50000000\"],[\"13123\",\"0.00080000\"],[\"13100\",\"0.00770000\"],[\"13088\",\"0.00229225\"],[\"13059\",\"0.01723203\"],[\"13000\",\"0.37105191\"],[\"12900\",\"0.00397674\"],[\"12888\",\"0.00271578\"],[\"12777\",\"0.35648281\"],[\"12760\",\"0.76000000\"],[\"12750\",\"0.00500000\"],[\"12697\",\"0.00420000\"],[\"12688\",\"0.00275859\"],[\"12686\",\"0.04318921\"],[\"12588\",\"0.00278051\"],[\"12500\",\"0.00850000\"],[\"12488\",\"0.00280277\"],[\"12361\",\"0.00500000\"],[\"12300\",\"2.51500000\"],[\"12288\",\"0.00395386\"],[\"12188\",\"0.00287176\"],[\"12100\",\"0.01595041\"],[\"12088\",\"0.00289552\"],[\"12000\",\"2.14007410\"],[\"11888\",\"0.00294499\"],[\"11800\",\"0.05000000\"],[\"11788\",\"0.00100000\"],[\"11688\",\"0.00299461\"],[\"11606\",\"0.00137800\"],[\"11500\",\"1.50000000\"],[\"11488\",\"0.00304753\"],[\"11448\",\"0.30000000\"],[\"11388\",\"0.00307350\"],[\"11251\",\"0.33300000\"],[\"11200\",\"0.02303035\"],[\"11188\",\"0.00312844\"],[\"11088\",\"0.00315666\"],[\"11005\",\"0.02657356\"],[\"11000\",\"0.15261544\"],[\"10989\",\"0.00171727\"],[\"10988\",\"0.00228000\"],[\"10909\",\"0.01604180\"],[\"10894\",\"0.01274820\"],[\"10888\",\"0.00321464\"],[\"10596\",\"0.04087940\"],[\"10555\",\"0.00331606\"],[\"10543\",\"0.10000000\"],[\"10488\",\"0.00381484\"],[\"10388\",\"0.00336937\"],[\"10374\",\"0.10000000\"],[\"10357\",\"0.00245000\"],[\"10251\",\"1.38000000\"],[\"10188\",\"0.00343551\"],[\"10094\",\"0.00990687\"],[\"10010\",\"0.01600000\"],[\"10001\",\"2.42491250\"],[\"10000\",\"2.53211065\"],[\"9999\",\"1.00381838\"],[\"9973\",\"0.25408603\"],[\"9900\",\"2.00000000\"],[\"9888\",\"0.00455198\"],[\"9800\",\"0.01763281\"],[\"9700\",\"0.01022396\"],[\"9688\",\"0.00361282\"],[\"9675\",\"1.02000000\"],[\"9576\",\"0.00150000\"],[\"9540\",\"0.40000000\"],[\"9488\",\"0.00474389\"],[\"9433\",\"0.00388205\"],[\"9416\",\"0.05034368\"],[\"9388\",\"0.00372827\"],[\"9374\",\"0.05031713\"],[\"9288\",\"0.00376841\"],[\"9200\",\"15.22031855\"],[\"9188\",\"0.00326513\"],[\"9088\",\"0.00385134\"],[\"9016\",\"0.05205333\"],[\"9000\",\"4.23218492\"],[\"8904\",\"0.00535751\"],[\"8898\",\"0.00152714\"],[\"8888\",\"0.00393801\"],[\"8862\",\"0.00304568\"],[\"8850\",\"0.48009491\"],[\"8777\",\"0.53000000\"],[\"8688\",\"0.00402866\"],[\"8672\",\"0.04947062\"],[\"8658\",\"0.01000000\"],[\"8657\",\"0.04931275\"],[\"8588\",\"0.00127154\"],[\"8531\",\"1.12701228\"],[\"8500\",\"0.18823352\"],[\"8488\",\"0.00412359\"],[\"8400\",\"2.03000000\"],[\"8388\",\"0.00357773\"],[\"8340\",\"0.00300000\"],[\"8200\",\"0.00500000\"],[\"8188\",\"0.00549597\"],[\"8177\",\"0.30000000\"],[\"8100\",\"0.00308642\"],[\"8050\",\"0.02000000\"],[\"8024\",\"0.00406091\"],[\"8012\",\"0.01248127\"],[\"8000\",\"0.30930812\"],[\"7787\",\"0.02078199\"],[\"7705\",\"0.01802109\"],[\"7653\",\"0.00400000\"],[\"7600\",\"0.05000000\"],[\"7588\",\"0.00765419\"],[\"7565\",\"0.05288407\"],[\"7550\",\"0.02871786\"],[\"7511\",\"0.05299707\"],[\"7500\",\"0.04128733\"],[\"7429\",\"0.05331527\"],[\"7345\",\"0.05312549\"],[\"7341\",\"0.05341836\"],[\"7326\",\"0.05379905\"],[\"7311\",\"0.05310625\"],[\"7288\",\"0.00288144\"],[\"7242\",\"0.05307997\"],[\"7191\",\"0.05372452\"],[\"7100\",\"0.00352113\"],[\"7050\",\"0.03000000\"],[\"7000\",\"0.45032856\"],[\"6969\",\"0.00988664\"],[\"6875\",\"3.00000000\"],[\"6801\",\"2.10036097\"],[\"6698\",\"0.00534180\"],[\"6550\",\"0.03000000\"],[\"6526\",\"1.19045729\"],[\"6521\",\"0.00420000\"],[\"6501\",\"10.00000000\"],[\"6500\",\"75.28157253\"],[\"6459\",\"0.00406091\"],[\"6411\",\"0.00420000\"],[\"6400\",\"2.00000000\"],[\"6373\",\"0.05541843\"],[\"6342\",\"0.00420000\"],[\"6290\",\"0.00430000\"],[\"6221\",\"0.00470000\"],[\"6162\",\"0.33000000\"],[\"6101\",\"0.00520000\"],[\"6100\",\"0.00500000\"],[\"6079\",\"0.00420000\"],[\"6050\",\"0.03000000\"],[\"6000\",\"0.28041333\"],[\"5600\",\"1.05694821\"],[\"5550\",\"0.03500000\"],[\"5500\",\"0.01809181\"],[\"5337\",\"0.01873711\"],[\"5300\",\"0.01045594\"],[\"5216\",\"1.00000000\"],[\"5200\",\"0.00484134\"],[\"5100\",\"0.00500000\"],[\"5050\",\"0.24000000\"],[\"5014\",\"2.19010171\"],[\"5000\",\"0.13241200\"],[\"4900\",\"0.02192857\"],[\"4800\",\"3.00000000\"],[\"4550\",\"0.04500000\"],[\"4516\",\"1.00000000\"],[\"4500\",\"1.18907222\"],[\"4223\",\"0.32210000\"],[\"4022\",\"1.00000000\"],[\"4000\",\"0.29183266\"],[\"3990\",\"3.00000000\"],[\"3850\",\"0.30087442\"],[\"3837\",\"0.00260620\"],[\"3830\",\"0.04900000\"],[\"3812\",\"0.00262329\"],[\"3800\",\"10.00000000\"],[\"3785\",\"0.00600000\"],[\"3758\",\"2.00000000\"],[\"3754\",\"0.00266383\"],[\"3723\",\"0.50000000\"],[\"3689\",\"0.00162646\"],[\"3645\",\"1.00000000\"],[\"3610\",\"0.00220219\"],[\"3579\",\"0.00339863\"],[\"3567\",\"0.20000000\"],[\"3501\",\"0.00227020\"],[\"3420\",\"0.00500000\"],[\"3415\",\"0.01000000\"],[\"3400\",\"0.50000000\"],[\"3399\",\"0.30000000\"],[\"3327\",\"0.20368238\"],[\"3300\",\"0.20000000\"],[\"3268\",\"0.00153286\"],[\"3255\",\"0.03072196\"],[\"3251\",\"0.00244472\"],[\"3234\",\"0.00500000\"],[\"3100\",\"0.00500000\"],[\"3090\",\"0.61800000\"],[\"3069\",\"0.35688966\"],[\"3049\",\"0.40000000\"],[\"3024\",\"0.63300000\"],[\"3005\",\"0.01697171\"],[\"3001\",\"0.00170000\"],[\"3000\",\"9.27565000\"],[\"2999\",\"1.00000000\"],[\"2959\",\"0.65200000\"],[\"2900\",\"0.05151724\"],[\"2897\",\"0.00180000\"],[\"2896\",\"0.67100000\"],[\"2888\",\"0.00210487\"],[\"2885\",\"0.13000000\"],[\"2800\",\"1.06714285\"],[\"2773\",\"1.41500000\"],[\"2750\",\"0.50000000\"],[\"2735\",\"0.01179910\"],[\"2723\",\"1.52000000\"],[\"2700\",\"0.00294444\"],[\"2688\",\"3.10000000\"],[\"2681\",\"0.00303030\"],[\"2656\",\"0.38000000\"],[\"2655\",\"1.49900000\"],[\"2635\",\"0.00303030\"],[\"2599\",\"0.00200000\"],[\"2568\",\"1.00000000\"],[\"2554\",\"0.00303030\"],[\"2543\",\"1.58700000\"],[\"2528\",\"1.00000000\"],[\"2508\",\"1.00000000\"],[\"2500\",\"0.41000000\"],[\"2468\",\"1.00000000\"],[\"2435\",\"1.68100000\"],[\"2428\",\"1.00000000\"],[\"2400\",\"0.00497083\"],[\"2378\",\"0.00303030\"],[\"2332\",\"1.78000000\"],[\"2312\",\"0.00500000\"],[\"2248\",\"2.00000000\"],[\"2233\",\"1.88500000\"],[\"2138\",\"1.99600000\"],[\"2135\",\"0.01010101\"],[\"2048\",\"2.11300000\"],[\"2004\",\"1.09100000\"],[\"2000\",\"1.13596500\"],[\"1961\",\"1.12300000\"],[\"1897\",\"2.25000000\"],[\"1878\",\"2.37000000\"],[\"1853\",\"0.00500000\"],[\"1800\",\"0.33700000\"],[\"1798\",\"2.50900000\"],[\"1750\",\"0.01454286\"],[\"1722\",\"2.65700000\"],[\"1712\",\"1.10000000\"],[\"1649\",\"2.81400000\"],[\"1600\",\"0.23334375\"],[\"1599\",\"0.06253908\"],[\"1589\",\"0.00500000\"],[\"1588\",\"0.02040302\"],[\"1579\",\"2.98000000\"],[\"1550\",\"0.30000000\"],[\"1512\",\"3.15500000\"],[\"1500\",\"1.00530000\"],[\"1448\",\"3.34100000\"],[\"1425\",\"0.09894736\"],[\"1400\",\"0.39321428\"],[\"1388\",\"0.02096541\"],[\"1333\",\"1.11200000\"],[\"1327\",\"7.44200000\"],[\"1299\",\"0.00500000\"],[\"1265\",\"0.98217882\"],[\"1253\",\"2.50000000\"],[\"1250\",\"0.00636000\"],[\"1217\",\"8.34500000\"],[\"1199\",\"0.01000000\"],[\"1188\",\"0.02646464\"],[\"1165\",\"0.01000000\"],[\"1132\",\"1.29100000\"],[\"1117\",\"1.00000000\"],[\"1116\",\"9.35800000\"],[\"1111\",\"3.23929792\"],[\"1109\",\"0.01000000\"],[\"1055\",\"0.01000000\"],[\"1053\",\"0.76000000\"],[\"1024\",\"10.49300000\"],[\"1006\",\"128.00000000\"],[\"1002\",\"2.72800000\"],[\"1001\",\"0.00700000\"],[\"1000\",\"2.22995000\"],[\"998\",\"0.01000000\"],[\"980\",\"2.80700000\"],[\"977\",\"0.03873357\"],[\"939\",\"5.92400000\"],[\"899\",\"6.27400000\"],[\"897\",\"0.00800000\"],[\"881\",\"0.20000000\"],[\"863\",\"0.17920000\"],[\"861\",\"7.23300000\"],[\"853\",\"3.50000000\"],[\"849\",\"0.00800000\"],[\"836\",\"0.01000000\"],[\"821\",\"0.00707070\"],[\"799\",\"0.00650000\"],[\"789\",\"14.79600000\"],[\"751\",\"0.00800000\"],[\"750\",\"0.01060000\"],[\"748\",\"0.00707070\"],[\"729\",\"0.03000000\"],[\"724\",\"16.59100000\"],[\"719\",\"0.03000000\"],[\"709\",\"0.02430000\"],[\"708\",\"0.01015228\"],[\"700\",\"0.10000000\"],[\"698\",\"0.01000000\"],[\"679\",\"0.10245000\"],[\"663\",\"18.60500000\"],[\"621\",\"0.33000000\"],[\"608\",\"20.86300000\"],[\"600\",\"0.02298333\"],[\"597\",\"0.16734196\"],[\"591\",\"0.33000000\"],[\"580\",\"0.17241379\"],[\"571\",\"1.00000000\"],[\"561\",\"0.10834224\"],[\"558\",\"23.39400000\"],[\"550\",\"0.11445455\"],[\"540\",\"0.01472222\"],[\"530\",\"0.01500000\"],[\"520\",\"0.01528846\"],[\"515\",\"0.01543689\"],[\"512\",\"26.23300000\"],[\"510\",\"0.01558824\"],[\"505\",\"0.01574257\"],[\"501\",\"0.31337325\"],[\"500\",\"2.01590000\"],[\"475\",\"0.01673684\"],[\"455\",\"0.50000000\"],[\"454\",\"0.11664539\"],[\"451\",\"0.01200000\"],[\"450\",\"0.01766667\"],[\"444\",\"0.15000000\"],[\"434\",\"0.09749909\"],[\"432\",\"0.99747691\"],[\"431\",\"0.22573085\"],[\"425\",\"0.05829732\"],[\"420\",\"0.05000000\"],[\"416\",\"0.24000000\"],[\"415\",\"0.01915663\"],[\"414\",\"0.10759646\"],[\"401\",\"0.01500000\"],[\"400\",\"0.27953850\"],[\"396\",\"0.99748000\"],[\"393\",\"0.12725611\"],[\"390\",\"0.01300000\"],[\"378\",\"0.05000000\"],[\"375\",\"0.02120000\"],[\"360\",\"0.12225000\"],[\"350\",\"0.18250000\"],[\"333\",\"0.00493442\"],[\"328\",\"0.09142420\"],[\"326\",\"0.74400000\"],[\"325\",\"2.00000000\"],[\"321\",\"0.29000000\"],[\"320\",\"0.50000000\"],[\"310\",\"0.06129032\"],[\"300\",\"2.99764025\"],[\"295\",\"0.33000000\"],[\"283\",\"0.52791519\"],[\"280\",\"2.65696428\"],[\"271\",\"1.30000000\"],[\"259\",\"10.00000000\"],[\"250\",\"0.02000000\"],[\"236\",\"47.39368813\"],[\"221\",\"0.91000000\"],[\"220\",\"1.30000000\"],[\"200\",\"0.95745788\"],[\"174\",\"0.99747735\"],[\"155\",\"1.00019354\"],[\"153\",\"20.00000000\"],[\"117\",\"0.42564783\"],[\"112\",\"0.44000000\"],[\"111\",\"8.09000000\"],[\"106\",\"0.64150943\"],[\"105\",\"10.00000000\"],[\"103\",\"0.85000000\"],[\"101\",\"939.50000000\"],[\"100\",\"5.46100000\"],[\"95\",\"0.83005263\"],[\"75\",\"1.00000000\"],[\"52\",\"0.73076923\"],[\"50\",\"28.01366673\"],[\"44\",\"0.63636363\"],[\"42\",\"0.90000000\"],[\"40\",\"2.42000000\"],[\"34\",\"1.05882352\"],[\"32\",\"1.00000000\"],[\"30\",\"0.84716666\"],[\"25\",\"15.50107366\"],[\"24\",\"2.39713232\"],[\"22\",\"3.40909090\"],[\"21\",\"1.80000000\"],[\"20\",\"7.97350000\"],[\"19\",\"1.00000000\"],[\"17\",\"0.99717833\"],[\"16\",\"2.25000000\"],[\"15\",\"10.00000000\"],[\"14\",\"23.19413717\"],[\"13\",\"14.63000000\"],[\"12\",\"232.08408109\"],[\"11\",\"649.37945463\"],[\"10\",\"155.17069082\"],[\"9\",\"10.00000000\"],[\"7\",\"107.00000000\"],[\"6\",\"1.00000000\"],[\"5\",\"56.14952600\"],[\"4\",\"94.25000000\"],[\"3\",\"96.59349269\"],[\"2\",\"843.21015936\"],[\"1\",\"95017.65537849\"],[\"0\",\"70727.85174128\"]],\"asks\":[[\"80403\",\"0.00564375\"],[\"80417\",\"0.02264719\"],[\"80423\",\"0.18651566\"],[\"80426\",\"0.37301641\"],[\"80431\",\"0.29668951\"],[\"80434\",\"1.24326863\"],[\"80435\",\"0.17403433\"],[\"80439\",\"0.18220000\"],[\"80442\",\"1.24313555\"],[\"80443\",\"0.04976673\"],[\"80448\",\"0.47888951\"],[\"80459\",\"0.24869294\"],[\"80460\",\"0.68220000\"],[\"80469\",\"0.18220000\"],[\"80474\",\"1.24263884\"],[\"80477\",\"1.24260490\"],[\"80478\",\"0.18220000\"],[\"80484\",\"0.61779275\"],[\"80491\",\"0.18220000\"],[\"80500\",\"0.50025000\"],[\"80505\",\"0.20547000\"],[\"80507\",\"0.18220000\"],[\"80517\",\"1.61603315\"],[\"80518\",\"1.42509989\"],[\"80524\",\"0.11975353\"],[\"80525\",\"0.18220000\"],[\"80534\",\"0.18220000\"],[\"80551\",\"8.76669245\"],[\"80552\",\"0.18220000\"],[\"80570\",\"2.00920000\"],[\"80588\",\"0.18220000\"],[\"80600\",\"0.50000000\"],[\"80606\",\"0.18220000\"],[\"80640\",\"2.73700000\"],[\"80695\",\"0.18220000\"],[\"80699\",\"0.00474645\"],[\"80700\",\"0.50000000\"],[\"80704\",\"0.18220000\"],[\"80711\",\"0.00748117\"],[\"80712\",\"2.61709937\"],[\"80730\",\"0.18220000\"],[\"80732\",\"5.24700000\"],[\"80757\",\"0.18220000\"],[\"80766\",\"0.27977732\"],[\"80768\",\"3.10775604\"],[\"80772\",\"2.01240198\"],[\"80776\",\"0.03706000\"],[\"80799\",\"0.18220000\"],[\"80808\",\"2.03352620\"],[\"80844\",\"0.18220000\"],[\"80849\",\"0.00332437\"],[\"80850\",\"0.00019389\"],[\"80873\",\"6.10767446\"],[\"80889\",\"0.18220000\"],[\"80903\",\"5.50100000\"],[\"80915\",\"0.18220000\"],[\"80931\",\"0.00019602\"],[\"80949\",\"0.18220000\"],[\"80950\",\"0.50000000\"],[\"80965\",\"0.00100000\"],[\"81000\",\"2.03412153\"],[\"81012\",\"0.00019573\"],[\"81034\",\"23.90594282\"],[\"81043\",\"0.00248757\"],[\"81044\",\"0.53495830\"],[\"81050\",\"1.60109591\"],[\"81054\",\"0.53487030\"],[\"81063\",\"0.48131003\"],[\"81073\",\"0.53469915\"],[\"81083\",\"0.53461162\"],[\"81088\",\"3.72498371\"],[\"81093\",\"0.53471916\"],[\"81094\",\"0.00248600\"],[\"81100\",\"2.63980982\"],[\"81101\",\"0.00032157\"],[\"81102\",\"0.48277351\"],[\"81112\",\"0.53632905\"],[\"81120\",\"0.00200000\"],[\"81122\",\"0.53624093\"],[\"81131\",\"0.48254344\"],[\"81140\",\"0.00100000\"],[\"81141\",\"0.53607348\"],[\"81144\",\"0.00248447\"],[\"81145\",\"0.00300000\"],[\"81150\",\"0.10200000\"],[\"81151\",\"0.53598544\"],[\"81160\",\"0.00200000\"],[\"81161\",\"0.53589738\"],[\"81167\",\"0.00034780\"],[\"81170\",\"0.48223436\"],[\"81174\",\"0.00019495\"],[\"81180\",\"0.00297006\"],[\"81190\",\"0.00196974\"],[\"81194\",\"0.00248294\"],[\"81200\",\"2.12618636\"],[\"81201\",\"0.00032118\"],[\"81204\",\"0.01217860\"],[\"81209\",\"0.00177220\"],[\"81219\",\"0.00196880\"],[\"81220\",\"0.00100000\"],[\"81229\",\"0.00196847\"],[\"81239\",\"0.00196815\"],[\"81240\",\"0.00200000\"],[\"81245\",\"0.00248138\"],[\"81250\",\"0.00100000\"],[\"81256\",\"0.00019706\"],[\"81260\",\"0.00100000\"],[\"81261\",\"2.45016752\"],[\"81280\",\"0.00200000\"],[\"81288\",\"0.10000000\"],[\"81292\",\"0.00873300\"],[\"81295\",\"0.00247986\"],[\"81300\",\"2.00200000\"],[\"81301\",\"0.00032078\"],[\"81317\",\"0.16151377\"],[\"81320\",\"0.00200000\"],[\"81329\",\"0.00034673\"],[\"81337\",\"0.00019436\"],[\"81340\",\"0.00100000\"],[\"81346\",\"0.00247830\"],[\"81350\",\"0.00100000\"],[\"81370\",\"0.00200000\"],[\"81390\",\"0.00100000\"],[\"81396\",\"0.00247678\"],[\"81400\",\"0.33678593\"],[\"81401\",\"0.00032039\"],[\"81410\",\"0.00200000\"],[\"81411\",\"0.03557635\"],[\"81418\",\"0.00019406\"],[\"81430\",\"0.00100000\"],[\"81434\",\"1.18295604\"],[\"81435\",\"0.10000000\"],[\"81446\",\"0.00247526\"],[\"81450\",\"0.00300000\"],[\"81470\",\"0.00100000\"],[\"81477\",\"0.02500000\"],[\"81482\",\"0.12000000\"],[\"81490\",\"0.00200000\"],[\"81492\",\"0.00034784\"],[\"81497\",\"0.00247371\"],[\"81500\",\"0.34944046\"],[\"81501\",\"0.00032000\"],[\"81510\",\"0.00100000\"],[\"81530\",\"0.00200000\"],[\"81547\",\"0.00247219\"],[\"81550\",\"0.00200000\"],[\"81570\",\"0.00200000\"],[\"81579\",\"0.01000000\"],[\"81581\",\"0.00019348\"],[\"81588\",\"0.06296216\"],[\"81590\",\"0.00100000\"],[\"81598\",\"0.00247065\"],[\"81600\",\"0.00100000\"],[\"81601\",\"0.00031960\"],[\"81610\",\"0.00200000\"],[\"81630\",\"0.00100000\"],[\"81647\",\"0.10300000\"],[\"81648\",\"0.00246914\"],[\"81650\",\"0.00300000\"],[\"81655\",\"0.00034679\"],[\"81663\",\"0.00019557\"],[\"81670\",\"0.00100000\"],[\"81690\",\"0.00200000\"],[\"81698\",\"0.00246762\"],[\"81701\",\"0.00031921\"],[\"81710\",\"0.00100000\"],[\"81720\",\"0.10100000\"],[\"81740\",\"0.00200000\"],[\"81744\",\"0.00019289\"],[\"81750\",\"0.01500000\"],[\"81760\",\"0.00200000\"],[\"81780\",\"0.00200000\"],[\"81800\",\"0.00100000\"],[\"81801\",\"0.00031882\"],[\"81810\",\"0.00100000\"],[\"81811\",\"0.02800000\"],[\"81818\",\"0.00387516\"],[\"81826\",\"0.00019499\"],[\"81848\",\"0.30300000\"],[\"81850\",\"0.00246304\"],[\"81860\",\"0.00300000\"],[\"81880\",\"0.00100000\"],[\"81888\",\"1.12531261\"],[\"81900\",\"0.00200000\"],[\"81901\",\"0.00031843\"],[\"81908\",\"0.00019469\"],[\"81910\",\"0.00100000\"],[\"81920\",\"0.00100000\"],[\"81940\",\"0.00200000\"],[\"81950\",\"0.00246004\"],[\"81960\",\"0.00200000\"],[\"81977\",\"0.50000000\"],[\"81980\",\"0.00293449\"],[\"81982\",\"0.00034683\"],[\"81990\",\"0.00128908\"],[\"81999\",\"0.05000000\"],[\"82000\",\"7.89862149\"],[\"82001\",\"0.00277655\"],[\"82020\",\"0.00300000\"],[\"82033\",\"0.12256254\"],[\"82050\",\"0.00100000\"],[\"82070\",\"0.00200000\"],[\"82072\",\"0.00019412\"],[\"82080\",\"0.00100000\"],[\"82090\",\"0.00100000\"],[\"82101\",\"0.00031766\"],[\"82108\",\"0.00500000\"],[\"82110\",\"0.00200000\"],[\"82130\",\"0.00200000\"],[\"82146\",\"0.00034576\"],[\"82148\",\"0.10000000\"],[\"82150\",\"0.00200000\"],[\"82154\",\"0.00019382\"],[\"82170\",\"0.00100000\"],[\"82180\",\"0.00100000\"],[\"82190\",\"0.00200000\"],[\"82201\",\"0.00031727\"],[\"82210\",\"0.00100000\"],[\"82222\",\"0.23351220\"],[\"82230\",\"0.00300000\"],[\"82236\",\"0.00019354\"],[\"82250\",\"0.00100000\"],[\"82251\",\"0.50000000\"],[\"82270\",\"0.00200000\"],[\"82280\",\"0.00100000\"],[\"82290\",\"0.00100000\"],[\"82297\",\"0.11000000\"],[\"82300\",\"0.10000000\"],[\"82301\",\"0.00031689\"],[\"82310\",\"0.00234478\"],[\"82318\",\"0.00019325\"],[\"82330\",\"0.00200000\"],[\"82333\",\"0.00050000\"],[\"82350\",\"0.00200000\"],[\"82370\",\"0.00100000\"],[\"82390\",\"0.00300000\"],[\"82400\",\"0.56204438\"],[\"82401\",\"0.00051181\"],[\"82410\",\"0.00100000\"],[\"82430\",\"0.00200000\"],[\"82440\",\"0.00100000\"],[\"82450\",\"0.00100000\"],[\"82455\",\"0.06287538\"],[\"82470\",\"0.00200000\"],[\"82475\",\"0.00034583\"],[\"82483\",\"0.00019266\"],[\"82490\",\"0.00200000\"],[\"82500\",\"1.66038889\"],[\"82501\",\"0.00031612\"],[\"82510\",\"0.00200000\"],[\"82530\",\"0.00100000\"],[\"82540\",\"0.00100000\"],[\"82550\",\"0.00200000\"],[\"82565\",\"0.00019237\"],[\"82570\",\"0.00100000\"],[\"82590\",\"0.00300000\"],[\"82600\",\"0.03968291\"],[\"82601\",\"0.00031573\"],[\"82610\",\"0.00100000\"],[\"82613\",\"1.17474777\"],[\"82630\",\"0.00200000\"],[\"82634\",\"0.00711571\"],[\"82640\",\"0.00165479\"],[\"82648\",\"0.00019443\"],[\"82650\",\"0.00100000\"],[\"82670\",\"0.00200000\"],[\"82690\",\"0.00200000\"],[\"82701\",\"0.00031535\"],[\"82720\",\"0.00200000\"],[\"82731\",\"0.00019413\"],[\"82739\",\"0.02346950\"],[\"82740\",\"0.00200000\"],[\"82750\",\"0.01500000\"],[\"82760\",\"0.00200000\"],[\"82780\",\"0.00100000\"],[\"82790\",\"0.00100000\"],[\"82800\",\"0.00200000\"],[\"82801\",\"0.00031497\"],[\"82805\",\"0.00034375\"],[\"82813\",\"0.00019151\"],[\"82820\",\"0.00100000\"],[\"82828\",\"0.01071122\"],[\"82840\",\"0.00100000\"],[\"82890\",\"0.10100000\"],[\"82896\",\"0.00019356\"],[\"82901\",\"0.00031459\"],[\"82940\",\"0.00100000\"],[\"82961\",\"0.20000000\"],[\"82971\",\"0.00034482\"],[\"82974\",\"0.00041419\"],[\"82979\",\"0.00019326\"],[\"82990\",\"0.00100000\"],[\"83000\",\"1.37756082\"],[\"83001\",\"0.00031421\"],[\"83033\",\"1.02693691\"],[\"83050\",\"0.00100000\"],[\"83057\",\"0.59075376\"],[\"83062\",\"0.00019291\"],[\"83100\",\"0.00100000\"],[\"83101\",\"0.00031383\"],[\"83120\",\"0.12000000\"],[\"83136\",\"0.00034171\"],[\"83145\",\"0.00019263\"],[\"83150\",\"0.00100000\"],[\"83162\",\"0.02385970\"],[\"83184\",\"0.10781766\"],[\"83201\",\"0.00031346\"],[\"83228\",\"0.00019253\"],[\"83232\",\"0.45000000\"],[\"83246\",\"0.00301118\"],[\"83267\",\"0.03750000\"],[\"83278\",\"0.00105952\"],[\"83300\",\"0.02416607\"],[\"83301\",\"0.00031308\"],[\"83303\",\"0.00034478\"],[\"83311\",\"0.00019225\"],[\"83395\",\"0.00019428\"],[\"83399\",\"0.02542449\"],[\"83401\",\"0.00031271\"],[\"83450\",\"0.15000000\"],[\"83469\",\"0.00034172\"],[\"83478\",\"0.00019167\"],[\"83490\",\"0.10000000\"],[\"83500\",\"0.01000000\"],[\"83501\",\"0.00031233\"],[\"83503\",\"0.31927257\"],[\"83512\",\"0.01161818\"],[\"83547\",\"0.10600000\"],[\"83555\",\"0.00035906\"],[\"83562\",\"0.00019369\"],[\"83569\",\"0.00844490\"],[\"83601\",\"0.00031196\"],[\"83619\",\"0.00100000\"],[\"83636\",\"0.00034276\"],[\"83645\",\"0.00019110\"],[\"83700\",\"0.00100000\"],[\"83701\",\"0.00031159\"],[\"83711\",\"0.02900000\"],[\"83729\",\"0.00019312\"],[\"83750\",\"0.01500000\"],[\"83787\",\"0.00041419\"],[\"83801\",\"0.00031121\"],[\"83804\",\"0.00034378\"],[\"83810\",\"0.00270196\"],[\"83813\",\"0.00019282\"],[\"83820\",\"0.25000000\"],[\"83888\",\"0.00047683\"],[\"83896\",\"0.00019024\"],[\"83898\",\"0.05200000\"],[\"83900\",\"1.00000000\"],[\"83901\",\"0.00031084\"],[\"83950\",\"0.23850000\"],[\"83951\",\"0.12000000\"],[\"83971\",\"0.00034068\"],[\"83980\",\"0.00019225\"],[\"84000\",\"2.69909120\"],[\"84001\",\"0.00031047\"],[\"84064\",\"0.00019196\"],[\"84075\",\"0.00971751\"],[\"84100\",\"0.16662653\"],[\"84101\",\"0.61484369\"],[\"84139\",\"0.00034174\"],[\"84148\",\"0.00019167\"],[\"84201\",\"0.00030974\"],[\"84233\",\"0.00019366\"],[\"84241\",\"0.18000000\"],[\"84281\",\"0.00070000\"],[\"84301\",\"0.00030937\"],[\"84307\",\"0.00034069\"],[\"84317\",\"0.00019109\"],[\"84401\",\"0.00049980\"],[\"84476\",\"0.00034170\"],[\"84485\",\"0.00019052\"],[\"84500\",\"0.33213265\"],[\"84501\",\"0.00030864\"],[\"84550\",\"0.00770000\"],[\"84570\",\"0.00019257\"],[\"84601\",\"0.00030827\"],[\"84633\",\"0.00071840\"],[\"84645\",\"0.00034067\"],[\"84655\",\"0.00019228\"],[\"84701\",\"0.00030791\"],[\"84735\",\"0.11000000\"],[\"84739\",\"0.00018974\"],[\"84750\",\"0.01500000\"],[\"84777\",\"0.00100000\"],[\"84791\",\"0.12000000\"],[\"84801\",\"0.00030754\"],[\"84814\",\"0.00033966\"],[\"84824\",\"0.33711099\"],[\"84845\",\"0.00023572\"],[\"84857\",\"0.25000000\"],[\"84901\",\"0.00030718\"],[\"84909\",\"0.00019142\"],[\"84946\",\"0.10000000\"],[\"84950\",\"0.20000000\"],[\"84984\",\"0.00034064\"],[\"84987\",\"0.00012943\"],[\"84990\",\"1.18738454\"],[\"84994\",\"0.03019114\"],[\"84995\",\"0.11500000\"],[\"84999\",\"0.00012941\"],[\"85000\",\"4.53626752\"],[\"85001\",\"0.00030682\"],[\"85008\",\"0.00041419\"],[\"85056\",\"0.22000000\"],[\"85079\",\"0.00019084\"],[\"85095\",\"1.00000000\"],[\"85100\",\"0.01000000\"],[\"85101\",\"0.00030646\"],[\"85154\",\"0.00033963\"],[\"85164\",\"0.00019056\"],[\"85201\",\"0.00030610\"],[\"85249\",\"0.00019028\"],[\"85300\",\"1.00000000\"],[\"85301\",\"0.00030574\"],[\"85324\",\"0.00033861\"],[\"85334\",\"0.00018999\"],[\"85401\",\"0.00030538\"],[\"85419\",\"0.00018970\"],[\"85447\",\"0.10900000\"],[\"85495\",\"0.00033958\"],[\"85501\",\"0.00030503\"],[\"85505\",\"0.00019165\"],[\"85555\",\"0.05035066\"],[\"85590\",\"0.00018914\"],[\"85601\",\"0.00030467\"],[\"85611\",\"0.03000000\"],[\"85666\",\"0.00033856\"],[\"85697\",\"0.01144730\"],[\"85701\",\"0.00030431\"],[\"85801\",\"0.00030396\"],[\"85837\",\"0.00033756\"],[\"85888\",\"0.00069860\"],[\"85901\",\"0.00030361\"],[\"86000\",\"3.54916744\"],[\"86001\",\"0.00030325\"],[\"86009\",\"0.00033851\"],[\"86100\",\"0.00300000\"],[\"86101\",\"0.00030290\"],[\"86181\",\"0.00033749\"],[\"86201\",\"0.00030255\"],[\"86238\",\"0.10000000\"],[\"86300\",\"0.06516415\"],[\"86301\",\"0.00030220\"],[\"86353\",\"0.00033649\"],[\"86354\",\"0.45000000\"],[\"86401\",\"0.00030185\"],[\"86501\",\"0.00030150\"],[\"86526\",\"0.00033743\"],[\"86569\",\"0.00569000\"],[\"86598\",\"0.02500000\"],[\"86601\",\"0.00030115\"],[\"86635\",\"0.00041419\"],[\"86650\",\"0.30000000\"],[\"86699\",\"0.00033643\"],[\"86700\",\"0.03645431\"],[\"86701\",\"0.00030080\"],[\"86800\",\"1.00000000\"],[\"86801\",\"0.00030046\"],[\"86843\",\"0.06058192\"],[\"86869\",\"0.00023288\"],[\"86872\",\"0.00033541\"],[\"86898\",\"0.05200000\"],[\"86901\",\"0.00030011\"],[\"87000\",\"1.93934929\"],[\"87001\",\"0.00029977\"],[\"87030\",\"0.06126813\"],[\"87046\",\"0.00033635\"],[\"87101\",\"0.00029942\"],[\"87201\",\"0.00029908\"],[\"87220\",\"0.00033532\"],[\"87301\",\"0.00029874\"],[\"87347\",\"0.11200000\"],[\"87360\",\"0.02500000\"],[\"87395\",\"0.00033626\"],[\"87401\",\"0.00029839\"],[\"87494\",\"0.01500000\"],[\"87500\",\"2.24583166\"],[\"87501\",\"0.00029805\"],[\"87514\",\"0.00882352\"],[\"87569\",\"0.00033334\"],[\"87601\",\"0.00029771\"],[\"87620\",\"0.03446756\"],[\"87654\",\"0.00577000\"],[\"87701\",\"0.00029737\"],[\"87745\",\"0.00033615\"],[\"87764\",\"0.00882352\"],[\"87777\",\"0.00267832\"],[\"87801\",\"0.00029704\"],[\"87842\",\"0.10000000\"],[\"87901\",\"0.00029670\"],[\"87920\",\"0.00033325\"],[\"88000\",\"2.80613636\"],[\"88001\",\"0.00029636\"],[\"88014\",\"0.01500000\"],[\"88096\",\"0.00033415\"],[\"88101\",\"0.00029602\"],[\"88201\",\"0.00029569\"],[\"88238\",\"0.10000000\"],[\"88264\",\"0.01500000\"],[\"88272\",\"0.00033315\"],[\"88301\",\"0.00029535\"],[\"88395\",\"0.00070000\"],[\"88400\",\"1.00000000\"],[\"88401\",\"0.00029502\"],[\"88449\",\"0.00033404\"],[\"88500\",\"0.50000000\"],[\"88501\",\"0.00029469\"],[\"88555\",\"0.00067756\"],[\"88601\",\"0.00029435\"],[\"88625\",\"0.00033116\"],[\"88700\",\"0.01000000\"],[\"88701\",\"0.00029402\"],[\"88761\",\"0.00089679\"],[\"88800\",\"0.10850785\"],[\"88801\",\"0.00029369\"],[\"88803\",\"0.00033392\"],[\"88855\",\"0.00033764\"],[\"88880\",\"0.22000000\"],[\"88888\",\"1.23973241\"],[\"88901\",\"0.00029336\"],[\"88980\",\"0.00033105\"],[\"88997\",\"0.23000000\"],[\"89000\",\"0.61372809\"],[\"89001\",\"0.00029303\"],[\"89026\",\"0.01270000\"],[\"89101\",\"0.00171270\"],[\"89158\",\"0.00033193\"],[\"89201\",\"0.00029237\"],[\"89247\",\"0.11500000\"],[\"89301\",\"0.00029205\"],[\"89337\",\"0.00033279\"],[\"89401\",\"0.00029172\"],[\"89411\",\"0.02500000\"],[\"89419\",\"0.02000000\"],[\"89498\",\"1.00000000\"],[\"89500\",\"0.00028112\"],[\"89501\",\"0.00029139\"],[\"89515\",\"0.00032994\"],[\"89523\",\"0.00100000\"],[\"89594\",\"0.06432893\"],[\"89601\",\"0.00029107\"],[\"89694\",\"0.00033080\"],[\"89700\",\"0.50994020\"],[\"89701\",\"0.00029074\"],[\"89742\",\"0.00595349\"],[\"89766\",\"0.00100799\"],[\"89801\",\"0.00029042\"],[\"89874\",\"0.00033166\"],[\"89887\",\"0.03000000\"],[\"89888\",\"0.00033376\"],[\"89898\",\"0.05200000\"],[\"89900\",\"1.00000000\"],[\"89901\",\"0.00029010\"],[\"89966\",\"0.00012226\"],[\"89990\",\"1.30000000\"],[\"89995\",\"0.00022223\"],[\"90000\",\"1.22415725\"],[\"90001\",\"0.00028977\"],[\"90005\",\"0.10700578\"],[\"90053\",\"0.00032882\"],[\"90082\",\"0.89885961\"],[\"90101\",\"0.00028945\"],[\"90180\",\"0.25000000\"],[\"90201\",\"0.00028913\"],[\"90234\",\"0.00033151\"],[\"90301\",\"0.00028881\"],[\"90401\",\"0.00028849\"],[\"90414\",\"0.00032868\"],[\"90500\",\"0.10000000\"],[\"90501\",\"0.00028817\"],[\"90595\",\"0.00032953\"],[\"90601\",\"0.00028786\"],[\"90701\",\"0.00028754\"],[\"90776\",\"0.00032854\"],[\"90801\",\"0.00028722\"],[\"90888\",\"0.00066018\"],[\"90901\",\"0.00028691\"],[\"90908\",\"0.00075858\"],[\"90958\",\"0.00032939\"],[\"91000\",\"1.02391380\"],[\"91001\",\"0.00028659\"],[\"91101\",\"0.00028628\"],[\"91140\",\"0.00032838\"],[\"91147\",\"0.11800000\"],[\"91187\",\"0.00047774\"],[\"91201\",\"0.00028596\"],[\"91252\",\"0.10000000\"],[\"91258\",\"1.00000000\"],[\"91301\",\"0.00028565\"],[\"91322\",\"0.00032740\"],[\"91401\",\"0.00028534\"],[\"91500\",\"0.00700000\"],[\"91501\",\"0.00028502\"],[\"91504\",\"0.00032641\"],[\"91569\",\"0.00637376\"],[\"91601\",\"0.00028471\"],[\"91624\",\"0.10781766\"],[\"91687\",\"0.00032724\"],[\"91701\",\"0.00028440\"],[\"91800\",\"0.13183667\"],[\"91801\",\"0.00028409\"],[\"91871\",\"0.00032803\"],[\"91888\",\"0.00021768\"],[\"91900\",\"6.37068273\"],[\"91901\",\"0.00028378\"],[\"92000\",\"1.08504243\"],[\"92001\",\"0.00028348\"],[\"92055\",\"0.00032705\"],[\"92101\",\"0.00028317\"],[\"92201\",\"0.00028286\"],[\"92239\",\"0.00032607\"],[\"92301\",\"0.00028255\"],[\"92340\",\"0.01155961\"],[\"92401\",\"0.00028225\"],[\"92423\",\"0.00032510\"],[\"92501\",\"0.00028194\"],[\"92555\",\"0.04747659\"],[\"92572\",\"0.00422680\"],[\"92575\",\"0.08100000\"],[\"92580\",\"0.28796036\"],[\"92601\",\"0.00028164\"],[\"92608\",\"0.00032588\"],[\"92701\",\"0.00028133\"],[\"92793\",\"0.00032491\"],[\"92801\",\"0.00028103\"],[\"92898\",\"0.05200000\"],[\"92901\",\"0.00028073\"],[\"92979\",\"0.00032569\"],[\"93000\",\"0.16664944\"],[\"93001\",\"0.00028043\"],[\"93047\",\"0.09400000\"],[\"93101\",\"0.00028013\"],[\"93150\",\"0.02894975\"],[\"93165\",\"0.00032472\"],[\"93174\",\"0.23000000\"],[\"93201\",\"0.00027983\"],[\"93301\",\"0.00027953\"],[\"93351\",\"0.00032374\"],[\"93401\",\"0.00027923\"],[\"93425\",\"0.10000000\"],[\"93501\",\"0.00027893\"],[\"93538\",\"0.00032451\"],[\"93601\",\"0.00027863\"],[\"93701\",\"0.00027833\"],[\"93725\",\"0.00032355\"],[\"93801\",\"0.00027804\"],[\"93888\",\"0.00063908\"],[\"93901\",\"0.00027774\"],[\"93912\",\"0.00032257\"],[\"93950\",\"0.00125000\"],[\"94000\",\"0.01366809\"],[\"94001\",\"0.00027744\"],[\"94035\",\"0.00504563\"],[\"94100\",\"0.00032333\"],[\"94101\",\"0.00027715\"],[\"94162\",\"0.00100000\"],[\"94180\",\"0.13000000\"],[\"94201\",\"0.00027685\"],[\"94288\",\"0.00032236\"],[\"94301\",\"0.00027656\"],[\"94357\",\"0.00100000\"],[\"94401\",\"0.00027627\"],[\"94455\",\"0.10000000\"],[\"94477\",\"0.00032310\"],[\"94490\",\"0.07392078\"],[\"94500\",\"0.00026624\"],[\"94501\",\"0.00027598\"],[\"94550\",\"0.10000000\"],[\"94560\",\"0.00100000\"],[\"94601\",\"0.00027568\"],[\"94666\",\"0.00032214\"],[\"94678\",\"0.02500000\"],[\"94701\",\"0.00027539\"],[\"94801\",\"0.00027510\"],[\"94855\",\"0.00032117\"],[\"94901\",\"0.00027481\"],[\"94947\",\"0.09600000\"],[\"94950\",\"1.00000000\"],[\"94955\",\"0.00011584\"],[\"94971\",\"0.00011582\"],[\"94990\",\"1.00000000\"],[\"94995\",\"0.01500000\"],[\"94998\",\"0.00021053\"],[\"94999\",\"0.56000000\"],[\"95000\",\"1.66944666\"],[\"95001\",\"0.00027452\"],[\"95045\",\"0.00032191\"],[\"95101\",\"0.00027423\"],[\"95201\",\"0.00027395\"],[\"95235\",\"0.00032094\"],[\"95301\",\"0.00027366\"],[\"95401\",\"0.00027337\"],[\"95425\",\"0.00031999\"],[\"95500\",\"0.10000000\"],[\"95501\",\"0.00027309\"],[\"95569\",\"0.00443503\"],[\"95601\",\"0.00027280\"],[\"95616\",\"0.00032070\"],[\"95701\",\"0.00027252\"],[\"95733\",\"0.10000001\"],[\"95801\",\"0.00027223\"],[\"95808\",\"0.00032142\"],[\"95888\",\"0.00146009\"],[\"95898\",\"0.05200000\"],[\"95901\",\"0.00027195\"],[\"95953\",\"0.00700000\"],[\"95999\",\"0.00031879\"],[\"96000\",\"0.25661600\"],[\"96001\",\"0.00027166\"],[\"96012\",\"0.21192950\"],[\"96101\",\"0.00027138\"],[\"96191\",\"0.00031950\"],[\"96201\",\"0.00027110\"],[\"96301\",\"0.00027082\"],[\"96384\",\"0.00032020\"],[\"96401\",\"0.00027054\"],[\"96501\",\"0.00027026\"],[\"96576\",\"0.00031759\"],[\"96601\",\"0.00026998\"],[\"96678\",\"0.00774439\"],[\"96701\",\"0.00026970\"],[\"96769\",\"0.00031829\"],[\"96801\",\"0.00026942\"],[\"96840\",\"5.00000000\"],[\"96847\",\"0.09800000\"],[\"96901\",\"0.00026914\"],[\"96963\",\"0.00031898\"],[\"97000\",\"1.01367179\"],[\"97001\",\"0.00026886\"],[\"97078\",\"0.00504564\"],[\"97101\",\"0.00026859\"],[\"97157\",\"0.00031803\"],[\"97187\",\"0.06126814\"],[\"97201\",\"0.00026831\"],[\"97301\",\"0.00026803\"],[\"97321\",\"0.10781766\"],[\"97351\",\"0.00031707\"],[\"97379\",\"0.02000000\"],[\"97388\",\"0.10000000\"],[\"97401\",\"0.00026776\"],[\"97440\",\"0.12764839\"],[\"97471\",\"0.75000000\"],[\"97480\",\"0.27000000\"],[\"97500\",\"0.10000000\"],[\"97501\",\"0.00026748\"],[\"97535\",\"0.00041419\"],[\"97546\",\"0.00031776\"],[\"97601\",\"0.00026721\"],[\"97701\",\"0.00026694\"],[\"97721\",\"0.04945700\"],[\"97741\",\"0.00031680\"],[\"97801\",\"0.00026666\"],[\"97901\",\"0.00026639\"],[\"97937\",\"0.00031748\"],[\"97983\",\"0.26580288\"],[\"97989\",\"0.10000000\"],[\"98000\",\"0.71316048\"],[\"98001\",\"0.00026612\"],[\"98101\",\"0.00026585\"],[\"98132\",\"0.00031491\"],[\"98162\",\"0.00090831\"],[\"98201\",\"0.00026558\"],[\"98280\",\"0.02500000\"],[\"98301\",\"0.00026531\"],[\"98329\",\"0.00031719\"],[\"98401\",\"0.00026504\"],[\"98500\",\"2.04670051\"],[\"98501\",\"0.00026477\"],[\"98510\",\"0.30000000\"],[\"98525\",\"0.00031464\"],[\"98555\",\"0.00060882\"],[\"98601\",\"0.00026450\"],[\"98620\",\"0.02000000\"],[\"98654\",\"0.20273000\"],[\"98701\",\"0.00026423\"],[\"98722\",\"0.00031529\"],[\"98747\",\"0.10000000\"],[\"98765\",\"0.23000000\"],[\"98800\",\"0.01829515\"],[\"98801\",\"0.00026396\"],[\"98885\",\"0.00030339\"],[\"98887\",\"0.04500000\"],[\"98888\",\"0.25650106\"],[\"98898\",\"0.05200000\"],[\"98900\",\"0.03855175\"],[\"98901\",\"0.00026370\"],[\"98920\",\"0.00031595\"],[\"98989\",\"0.05000000\"],[\"99000\",\"2.98039694\"],[\"99001\",\"0.00026343\"],[\"99101\",\"0.00026317\"],[\"99118\",\"0.00031497\"],[\"99201\",\"0.00026290\"],[\"99301\",\"0.00026264\"],[\"99316\",\"0.00031405\"],[\"99401\",\"0.00026237\"],[\"99499\",\"1.00000000\"],[\"99500\",\"1.00025286\"],[\"99501\",\"0.00026211\"],[\"99515\",\"0.00031470\"],[\"99601\",\"0.00026184\"],[\"99613\",\"0.03602827\"],[\"99701\",\"0.00026158\"],[\"99714\",\"0.00031378\"],[\"99800\",\"0.43427485\"],[\"99801\",\"0.00026132\"],[\"99844\",\"0.20000000\"],[\"99870\",\"0.05000000\"],[\"99888\",\"2.16000000\"],[\"99889\",\"1.00000000\"],[\"99900\",\"1.49078867\"],[\"99901\",\"0.00026106\"],[\"99913\",\"0.00031282\"],[\"99925\",\"0.00020015\"],[\"99950\",\"0.50000000\"],[\"99958\",\"0.00011004\"],[\"99963\",\"0.00011004\"],[\"99990\",\"1.00000000\"],[\"99997\",\"0.21995679\"],[\"99998\",\"1.94000000\"],[\"99999\",\"1.08565437\"],[\"100000\",\"3.97941405\"],[\"100001\",\"0.00026080\"],[\"100101\",\"0.00026054\"],[\"100113\",\"0.00031345\"],[\"100201\",\"0.00026028\"],[\"100272\",\"0.10000000\"],[\"100301\",\"0.00026002\"],[\"100313\",\"0.00031252\"],[\"100401\",\"0.00025976\"],[\"100500\",\"1.00000000\"],[\"100501\",\"0.00025950\"],[\"100514\",\"0.00031313\"],[\"100647\",\"0.10200000\"],[\"100715\",\"0.00031221\"],[\"100747\",\"0.02000000\"],[\"100908\",\"0.00075859\"],[\"100916\",\"0.00031126\"],[\"100928\",\"0.00500000\"],[\"101000\",\"0.11379802\"],[\"101073\",\"0.01000000\"],[\"101100\",\"0.10000000\"],[\"101118\",\"0.00031188\"],[\"101320\",\"0.00031095\"],[\"101523\",\"0.00031155\"],[\"101726\",\"0.00031058\"],[\"101789\",\"0.00100000\"],[\"101929\",\"0.00030970\"],[\"101944\",\"0.02500000\"],[\"102000\",\"0.62229483\"],[\"102001\",\"0.30000000\"],[\"102035\",\"0.00125000\"],[\"102067\",\"0.24000000\"],[\"102133\",\"0.00031027\"],[\"102190\",\"0.00977713\"],[\"102333\",\"0.00100000\"],[\"102337\",\"0.00030940\"],[\"102449\",\"0.03500000\"],[\"102542\",\"0.00030994\"],[\"102547\",\"0.07200000\"],[\"102747\",\"0.00030902\"],[\"102953\",\"0.00030959\"],[\"103000\",\"0.11357476\"],[\"103159\",\"0.00030866\"],[\"103164\",\"0.01789477\"],[\"103365\",\"0.00030771\"],[\"103569\",\"0.01160031\"],[\"103572\",\"0.00030832\"],[\"103779\",\"0.00030739\"],[\"103986\",\"0.00030647\"],[\"104000\",\"1.02046933\"],[\"104194\",\"0.00030703\"],[\"104226\",\"0.10781766\"],[\"104403\",\"0.00030758\"],[\"104441\",\"0.02000000\"],[\"104612\",\"0.00030665\"],[\"104821\",\"0.00030574\"],[\"104900\",\"1.75000000\"],[\"104964\",\"0.00010479\"],[\"104968\",\"0.00010479\"],[\"104990\",\"2.00000000\"],[\"105000\",\"0.52761706\"],[\"105030\",\"0.00030482\"],[\"105240\",\"0.00030538\"],[\"105451\",\"0.00030590\"],[\"105662\",\"0.00030499\"],[\"105873\",\"0.00030408\"],[\"105888\",\"0.00028333\"],[\"106000\",\"0.00094717\"],[\"106085\",\"0.00030463\"],[\"106297\",\"0.00030368\"],[\"106510\",\"0.00030422\"],[\"106666\",\"0.03500000\"],[\"106723\",\"0.00030330\"],[\"106936\",\"0.00030239\"],[\"107000\",\"0.00093832\"],[\"107150\",\"0.00030291\"],[\"107267\",\"0.01993401\"],[\"107364\",\"0.00030200\"],[\"107579\",\"0.00030250\"],[\"107777\",\"0.00200000\"],[\"108000\",\"1.08092963\"],[\"108206\",\"0.00070000\"],[\"108888\",\"0.00045920\"],[\"109000\",\"0.45308723\"],[\"109401\",\"0.00293749\"],[\"109449\",\"0.03500000\"],[\"109900\",\"1.75000000\"],[\"109957\",\"0.00010003\"],[\"109975\",\"0.00010002\"],[\"109990\",\"2.00000000\"],[\"110000\",\"1.15360578\"],[\"110001\",\"0.00050000\"],[\"111000\",\"0.01337195\"],[\"111017\",\"0.00500000\"],[\"111809\",\"0.25000000\"],[\"112000\",\"0.00089643\"],[\"112358\",\"0.00125000\"],[\"112460\",\"0.02500000\"],[\"112949\",\"0.03500000\"],[\"113000\",\"0.00088850\"],[\"113798\",\"0.00070000\"],[\"114000\",\"0.00097070\"],[\"114242\",\"0.00070000\"],[\"114900\",\"1.75000000\"],[\"114964\",\"0.00009568\"],[\"114985\",\"0.00009566\"],[\"114990\",\"2.00000000\"],[\"115000\",\"0.27405747\"],[\"115888\",\"0.00025888\"],[\"116000\",\"0.00086552\"],[\"116515\",\"0.02500000\"],[\"116666\",\"0.03500000\"],[\"117000\",\"0.00094812\"],[\"117024\",\"0.25000000\"],[\"118000\",\"0.95258884\"],[\"118888\",\"0.00025235\"],[\"119000\",\"0.03584370\"],[\"119243\",\"0.00070000\"],[\"119449\",\"0.07777777\"],[\"119662\",\"0.00070000\"],[\"119979\",\"0.00009168\"],[\"119990\",\"2.00009167\"],[\"120000\",\"0.58171446\"],[\"120107\",\"0.00070000\"],[\"120480\",\"0.01284335\"],[\"121000\",\"0.06482975\"],[\"122000\",\"0.10363803\"],[\"122200\",\"0.01000000\"],[\"122333\",\"0.00150000\"],[\"122481\",\"0.26000000\"],[\"123000\",\"0.10081626\"],[\"123555\",\"0.06786892\"],[\"124000\",\"0.01088968\"],[\"124449\",\"0.03500000\"],[\"124940\",\"0.00008804\"],[\"124974\",\"0.00008801\"],[\"124990\",\"2.00000000\"],[\"125000\",\"0.23128873\"],[\"125650\",\"1.00000000\"],[\"125812\",\"0.00070000\"],[\"126000\",\"0.00087683\"],[\"127000\",\"0.05024754\"],[\"128000\",\"2.00086438\"],[\"128193\",\"0.26000000\"],[\"128777\",\"0.00260000\"],[\"129000\",\"0.01567829\"],[\"129449\",\"0.03500000\"],[\"129990\",\"2.00000000\"],[\"130000\",\"0.22451950\"],[\"131000\",\"0.00083641\"],[\"131400\",\"0.26800000\"],[\"131636\",\"0.00088612\"],[\"131777\",\"0.00400000\"],[\"131957\",\"0.00070000\"],[\"132000\",\"0.00083061\"],[\"133000\",\"0.00082489\"],[\"134000\",\"0.00081925\"],[\"134171\",\"0.27000000\"],[\"134449\",\"0.07777777\"],[\"134990\",\"2.00000000\"],[\"135000\",\"0.10372530\"],[\"135791\",\"0.01805000\"],[\"136000\",\"0.00080824\"],[\"136666\",\"0.00200000\"],[\"137000\",\"0.00736927\"],[\"137534\",\"0.02814749\"],[\"138000\",\"0.15096782\"],[\"138379\",\"0.00588184\"],[\"139000\",\"0.00022108\"],[\"139200\",\"0.01000000\"],[\"139449\",\"0.03500000\"],[\"139990\",\"2.00000000\"],[\"140000\",\"0.13913353\"],[\"140428\",\"0.27000000\"],[\"141000\",\"0.00008000\"],[\"142000\",\"0.49622708\"],[\"142333\",\"0.00200000\"],[\"143000\",\"0.00008000\"],[\"144000\",\"0.00008000\"],[\"144444\",\"0.10000000\"],[\"144449\",\"0.03500000\"],[\"144990\",\"2.00000000\"],[\"145000\",\"1.39642501\"],[\"146000\",\"0.02208000\"],[\"146977\",\"0.28000000\"],[\"147000\",\"0.00008000\"],[\"147263\",\"0.00031740\"],[\"148000\",\"0.00008000\"],[\"148888\",\"1.18796893\"],[\"148987\",\"0.10000000\"],[\"149000\",\"0.40643349\"],[\"149200\",\"0.02000000\"],[\"149449\",\"0.03500000\"],[\"149500\",\"0.00665000\"],[\"149990\",\"2.00000000\"],[\"150000\",\"1.37474827\"],[\"150331\",\"0.00455793\"],[\"151000\",\"0.00009000\"],[\"151655\",\"0.00013188\"],[\"152000\",\"0.00009000\"],[\"152777\",\"0.00100000\"],[\"153000\",\"0.00009000\"],[\"153831\",\"0.28000000\"],[\"154000\",\"0.00049000\"],[\"154990\",\"3.00000000\"],[\"155000\",\"0.00009000\"],[\"155555\",\"0.05000000\"],[\"156000\",\"0.00009000\"],[\"157000\",\"0.00009000\"],[\"158000\",\"0.10709000\"],[\"159000\",\"0.00009000\"],[\"159990\",\"3.00000000\"],[\"160000\",\"0.12508408\"],[\"161005\",\"0.29000000\"],[\"162888\",\"0.00052288\"],[\"164990\",\"3.00000000\"],[\"165020\",\"0.00605950\"],[\"165215\",\"0.02566828\"],[\"166666\",\"0.05000000\"],[\"167760\",\"0.00596054\"],[\"168340\",\"0.00594035\"],[\"169000\",\"0.00012426\"],[\"169990\",\"3.00000000\"],[\"170000\",\"0.10504407\"],[\"171917\",\"0.02814749\"],[\"172200\",\"0.02000000\"],[\"174687\",\"0.11073351\"],[\"174990\",\"3.00000000\"],[\"175222\",\"0.02500000\"],[\"176373\",\"0.30000000\"],[\"178123\",\"0.00086979\"],[\"179990\",\"3.00000000\"],[\"180000\",\"0.15267868\"],[\"184990\",\"3.00000000\"],[\"185947\",\"0.01000000\"],[\"186186\",\"0.02500000\"],[\"186500\",\"0.00540052\"],[\"188000\",\"0.00347914\"],[\"188888\",\"0.00052942\"],[\"189120\",\"0.02000000\"],[\"189465\",\"0.08027209\"],[\"189990\",\"3.00000000\"],[\"190000\",\"0.10130000\"],[\"192840\",\"0.00518645\"],[\"193206\",\"0.32000000\"],[\"193910\",\"0.00515756\"],[\"194000\",\"0.00691877\"],[\"194111\",\"0.00515249\"],[\"194342\",\"0.01000000\"],[\"194990\",\"3.00000000\"],[\"196000\",\"0.03852292\"],[\"197000\",\"0.00510442\"],[\"199000\",\"0.10502513\"],[\"199990\",\"1.09766324\"],[\"199999\",\"0.00034530\"],[\"200000\",\"0.18186994\"],[\"204900\",\"0.50000000\"],[\"205000\",\"0.00004777\"],[\"210000\",\"5.00150000\"],[\"211647\",\"0.34000000\"],[\"214896\",\"0.02814749\"],[\"217423\",\"0.03000000\"],[\"220000\",\"0.00160000\"],[\"222221\",\"0.10000000\"],[\"222222\",\"0.02500000\"],[\"224909\",\"0.36000000\"],[\"230000\",\"0.01075000\"],[\"231000\",\"0.06300000\"],[\"236471\",\"0.03000000\"],[\"237137\",\"1.00000000\"],[\"239001\",\"0.38000000\"],[\"240000\",\"0.00180000\"],[\"241706\",\"0.01000000\"],[\"250000\",\"0.06306098\"],[\"253977\",\"0.40000000\"],[\"256000\",\"3.00000000\"],[\"259674\",\"0.05000000\"],[\"260000\",\"0.00200000\"],[\"260555\",\"0.25000000\"],[\"268620\",\"0.02814749\"],[\"270000\",\"0.00210000\"],[\"278217\",\"0.45000000\"],[\"280000\",\"0.00220000\"],[\"281431\",\"0.05000000\"],[\"282222\",\"0.25000000\"],[\"283000\",\"0.00357142\"],[\"287000\",\"0.00350598\"],[\"290000\",\"0.00230000\"],[\"294713\",\"0.01000000\"],[\"295000\",\"0.01000000\"],[\"296200\",\"0.05000000\"],[\"299000\",\"0.00668896\"],[\"300000\",\"0.15846496\"],[\"301500\",\"0.00333568\"],[\"301700\",\"0.00333333\"],[\"304000\",\"0.00330729\"],[\"304772\",\"0.47000000\"],[\"309421\",\"0.05000000\"],[\"311700\",\"0.00322507\"],[\"314800\",\"0.01000000\"],[\"318000\",\"0.50000000\"],[\"318500\",\"0.25000000\"],[\"333333\",\"0.01307020\"],[\"333888\",\"0.00500000\"],[\"335775\",\"0.02814749\"],[\"338000\",\"0.00383750\"],[\"346185\",\"0.05000000\"],[\"358000\",\"0.00281151\"],[\"362000\",\"0.25000000\"],[\"365726\",\"0.47000000\"],[\"371804\",\"0.01000000\"],[\"379148\",\"0.05000000\"],[\"383000\",\"0.00262990\"],[\"384000\",\"0.00271267\"],[\"392000\",\"0.00255769\"],[\"396400\",\"0.00253121\"],[\"397000\",\"0.00505694\"],[\"399000\",\"0.00626566\"],[\"400000\",\"0.00250000\"],[\"401600\",\"3.00000000\"],[\"402000\",\"0.00249847\"],[\"405000\",\"0.00248671\"],[\"409015\",\"0.05000000\"],[\"409740\",\"0.00245059\"],[\"419719\",\"0.02814749\"],[\"429000\",\"0.00234009\"],[\"430000\",\"0.01236043\"],[\"432000\",\"0.00232540\"],[\"432100\",\"0.00232624\"],[\"435000\",\"0.01000000\"],[\"436000\",\"0.01000000\"],[\"436710\",\"0.00050000\"],[\"438871\",\"0.45000000\"],[\"439600\",\"0.00228237\"],[\"439741\",\"0.05000000\"],[\"440000\",\"0.01000000\"],[\"444444\",\"0.21000000\"],[\"450000\",\"0.27046641\"],[\"461501\",\"0.00217268\"],[\"470000\",\"1.10065492\"],[\"472000\",\"0.00212939\"],[\"475000\",\"0.00212694\"],[\"481319\",\"0.05000000\"],[\"483475\",\"1.00000000\"],[\"485000\",\"0.04797700\"],[\"499000\",\"0.01002004\"],[\"500000\",\"1.21011083\"],[\"524078\",\"0.05000000\"],[\"524648\",\"0.02814749\"],[\"526646\",\"0.40000000\"],[\"550000\",\"0.10000000\"],[\"571406\",\"0.05000000\"],[\"598203\",\"0.00266254\"],[\"599000\",\"0.00834725\"],[\"600000\",\"0.00170000\"],[\"613761\",\"0.05000000\"],[\"655810\",\"0.02814749\"],[\"681049\",\"0.05000000\"],[\"690000\",\"0.01535000\"],[\"699000\",\"0.00715308\"],[\"700000\",\"0.00150000\"],[\"731607\",\"0.05000000\"],[\"749500\",\"2.00000000\"],[\"750000\",\"0.30000000\"],[\"781064\",\"0.05000000\"],[\"800000\",\"0.00130000\"],[\"819762\",\"0.02814749\"],[\"821641\",\"0.05000000\"],[\"850000\",\"3.00000000\"],[\"875000\",\"0.60000000\"],[\"878000\",\"0.10000000\"],[\"888888\",\"0.22500022\"],[\"900000\",\"0.02262057\"],[\"902703\",\"0.05000000\"],[\"979700\",\"0.66600000\"],[\"995000\",\"1.00000000\"],[\"999000\",\"0.01001001\"],[\"999990\",\"0.05198428\"],[\"999999\",\"4.82078867\"],[\"1000000\",\"1.53519529\"],[\"1024703\",\"0.02814749\"],[\"1026310\",\"0.05000000\"],[\"1124000\",\"0.05000000\"],[\"1200000\",\"0.00100000\"],[\"1250000\",\"0.05000000\"],[\"1280878\",\"0.02814749\"],[\"1425000\",\"0.05000000\"],[\"2000000\",\"0.00631293\"],[\"2123985\",\"0.00296122\"],[\"2900000\",\"0.50000000\"],[\"4300000\",\"0.01000000\"],[\"4350000\",\"0.01000000\"],[\"4360000\",\"0.01000000\"],[\"4400000\",\"0.01000000\"],[\"4834747\",\"0.00140000\"],[\"5000000\",\"1.00003223\"],[\"6959280\",\"0.01011937\"],[\"7225310\",\"0.00333000\"],[\"8424678\",\"0.00140000\"],[\"9999999\",\"0.29459340\"],[\"10000000\",\"0.75775880\"],[\"15000000\",\"0.25000000\"],[\"19030952\",\"0.00252000\"],[\"47109669\",\"0.00255000\"],[\"49474672\",\"0.00130000\"],[\"84389797\",\"0.00140000\"],[\"90000000\",\"0.00000040\"],[\"94800000\",\"0.00241000\"],[\"98562100\",\"0.00000260\"],[\"99869999\",\"0.00600000\"],[\"483980000\",\"0.01790848\"]]}"; + resp = JsonConvert.DeserializeObject(str); + } + catch (Exception ex) + { + } + + return resp; + } + + + } +} diff --git a/VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/Models/BitStampModels.cs b/VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/Models/BitStampModels.cs new file mode 100644 index 00000000..b00e8b58 --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BaseDAL/BitStamp.Net/Models/BitStampModels.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BitStamp.Net.Models +{ + public class Data + { + public string channel { get; set; } + } + + public class BitStampSubscriptions + { + public string @event { get; set; } = "bts:subscribe"; + public Data data { get; set; } + } + public class BitStampTradeData + { + public int id { get; set; } + public long timestamp { get; set; } + public decimal amount { get; set; } + public string amount_str { get; set; } + public decimal price { get; set; } + public string price_str { get; set; } + public int type { get; set; } + public string microtimestamp { get; set; } + public long buy_order_id { get; set; } + public long sell_order_id { get; set; } + } + + public class BitStampTrade + { + public BitStampTradeData data { get; set; } + public string channel { get; set; } + public string @event { get; set; } + } + public class InitialResponse + { + public string timestamp { get; set; } + public string microtimestamp { get; set; } + public List> bids { get; set; } + public List> asks { get; set; } + } + public class BitStampOrderBookData + { + public string timestamp { get; set; } + public string microtimestamp { get; set; } + public List> bids { get; set; } + public List> asks { get; set; } + } + + public class BitStampOrderBook + { + public BitStampOrderBookData data { get; set; } + public string channel { get; set; } + public string @event { get; set; } + } + +} diff --git a/VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Clients/CoinbaseSocketClient.cs b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Clients/CoinbaseSocketClient.cs new file mode 100644 index 00000000..1bca6821 --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Clients/CoinbaseSocketClient.cs @@ -0,0 +1,18 @@ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.WebSockets; +using System.Reactive; +using System.Text; +using System.Threading.Tasks; +using Websocket.Client; + +namespace Coinbase.Net.Clients +{ + public class CoinbaseSocketClient + { + + + } +} diff --git a/VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Coinbase.Net.csproj b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Coinbase.Net.csproj new file mode 100644 index 00000000..8af3f0b9 --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Coinbase.Net.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Models/CoinbaseModels.cs b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Models/CoinbaseModels.cs new file mode 100644 index 00000000..cb0ef0da --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Coinbase.Net/Models/CoinbaseModels.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; + +namespace Coinbase.Net.Models +{ + public class CoinbaseSubscription + { + public string type { get; set; } = "subscribe"; + public List product_ids { get; set; } + public List channels { get; set; } + public string signature { get; set; } + public string key{ get; set; } + public string passphrase { get; set; } + public string timestamp { get; set; } + } + + + public class CoinbaseCredentials + { + public string AccessKey { get; set; } + + public string Passphrase { get; set; } + + public string SigningKey { get; set; } + + public CoinbaseCredentials(string accessKey,string passphrase,string signingKey) + { + if (string.IsNullOrWhiteSpace(accessKey.Trim())) + { + throw new Exception("Access key is required"); + } + + this.AccessKey = accessKey; + + if (string.IsNullOrWhiteSpace(passphrase.Trim())) + { + throw new Exception("Passphrase is required"); + } + + this.Passphrase = passphrase; + + if (string.IsNullOrWhiteSpace(signingKey)) + { + throw new Exception("Signing key is required"); + } + + this.SigningKey = signingKey; + } + public CoinbaseCredentials() + { + } + + + + public string Sign(string timestamp, string method, string path, string body) + { + try + { + string message = $"{timestamp}{method}{path}{body}"; + + byte[] hmacKey; + try + { + hmacKey = Convert.FromBase64String(this.SigningKey); + } + catch (FormatException) + { + hmacKey = Encoding.UTF8.GetBytes(this.SigningKey); + } + + using var hmac = new HMACSHA256(hmacKey); + byte[] signature = hmac.ComputeHash(Encoding.UTF8.GetBytes(message)); + return Convert.ToBase64String(signature); + } + catch (Exception e) + { + throw new Exception("Failed to generate signature", e); + } + } + } +} diff --git a/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Clients/GeminiHttpClient.cs b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Clients/GeminiHttpClient.cs new file mode 100644 index 00000000..6f4a5fda --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Clients/GeminiHttpClient.cs @@ -0,0 +1,57 @@ +using Gemini.Net.Models; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http.Json; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace Gemini.Net.Clients +{ + public class GeminiHttpClient + { + private string? APIKey; + private string? APISecret; + private static HttpClient geminiClient = new HttpClient(); + + + static GeminiHttpClient() + { + geminiClient.BaseAddress = new Uri("https://api.gemini.com/v1/"); + } + + private bool IsAuthHeaderPresent { get { return geminiClient.DefaultRequestHeaders.Contains("X-GEMINI-APIKEY"); } } + + public void SetAuthentication(string apikey, string apisecret) + { + APIKey = apikey; + APISecret = apisecret; + + if (!IsAuthHeaderPresent) + { + + } + } + + + + public async Task InitializeSnapshotAsync(string symbol) + { + InitialResponse resp = new InitialResponse(); + var response = await geminiClient.GetAsync("book/"+symbol); + if (response != null) + { + string json = await response.Content.ReadAsStringAsync(); + resp = JsonConvert.DeserializeObject(json); + + } + + return resp; + } + + + } +} diff --git a/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Clients/GeminiSocketClient.cs b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Clients/GeminiSocketClient.cs new file mode 100644 index 00000000..d7510615 --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Clients/GeminiSocketClient.cs @@ -0,0 +1,52 @@ +using Gemini.Net.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.WebSockets; +using System.Reactive; +using System.Text; +using System.Threading.Tasks; +using Websocket.Client; + +namespace Gemini.Net.Clients +{ + public class GeminiSocketClient + { + WebsocketClient socket; + + public event EventHandler ClientConnected; + public event EventHandler ClientDisconnected; + public event EventHandler OnDataReceived; + + public GeminiSocketClient() + { + socket = new WebsocketClient(new Uri("wss://api.gemini.com/v2/marketdata?heartbeat=true")); + socket.ReconnectTimeout = TimeSpan.FromSeconds(30); + + + //socket.NativeClient.Options.SetRequestHeader(); + socket.ReconnectionHappened.Subscribe(data => + { + GemeniTradeResponse trade = new GemeniTradeResponse(); + ClientConnected.Invoke(socket, trade); + }); + + socket.DisconnectionHappened.Subscribe(data => + { + + }); + + socket.MessageReceived.Subscribe(data => + { + + }); + + socket.Start(); + } + + + + + + } +} diff --git a/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Gemini.Net.csproj b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Gemini.Net.csproj new file mode 100644 index 00000000..243ec7e7 --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Gemini.Net.csproj @@ -0,0 +1,18 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + + diff --git a/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Models/GeminiModels.cs b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Models/GeminiModels.cs new file mode 100644 index 00000000..19f162d8 --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BaseDAL/Gemini.Net/Models/GeminiModels.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Gemini.Net.Models +{ + public class GeminiSubscription + { + public string type { get { return "subscribe"; } } + public List subscriptions { get; set; } = new List(); + } + + public class Subscription + { + public string name { get { return "l2"; } } + public List symbols { get; set; } = new List(); + } + + + // Root myDeserializedClass = JsonConvert.DeserializeObject(myJsonResponse); + + public class GeminiResponseTrade + { + public long event_id { get; set; } + public decimal price { get; set; } + public decimal quantity { get; set; } + public string side { get; set; } + public string symbol { get; set; } + public long tid { get; set; } + public long timestamp { get; set; } + public string type { get; set; } + } + + public class GeminiResponseHeartHeat + { + public long timestamp { get; set; } + public string type { get; set; } + } + + public class GeminiResponseOrderBookChanges + { + public List> changes { get; set; } + public string symbol { get; set; } + public string type { get; set; } + } + public class GeminiResponseInitial + { + public List> changes { get; set; } + public string symbol { get; set; } + public List trades { get; set; } + public string type { get; set; } + } + + + + public class GemeniTradeResponse + { + public long event_id { get; set; } + public decimal price { get; set; } + public decimal quantity { get; set; } + public string side { get; set; } + public string symbol { get; set; } + public long tid { get; set; } + public long timestamp { get; set; } + public string type { get; set; } + } + + + public class Ask + { + public double price { get; set; } + public double amount { get; set; } + public long timestamp { get; set; } + } + + public class Bid + { + public double price { get; set; } + public double amount { get; set; } + public long timestamp { get; set; } + } + + public class InitialResponse + { + public List bids { get; set; } + public List asks { get; set; } + } + + + public class GeminiUsersData + { + public List UserOrders{ get; set; } + } + public class UserOrderData + { + public double executed_amount; + public double avg_execution_price; + public string behavior; + + public string type { get; set; } + public long order_id { get; set; } + public string event_id { get; set; } + public string account_name { get; set; } + public string api_session { get; set; } + public string symbol { get; set; } + public string side { get; set; } + public string client_order_id { get; set; } + public string order_type { get; set; } + public long timestamp { get; set; } + public long timestampms { get; set; } + public bool is_live { get; set; } + public bool is_cancelled { get; set; } + public bool is_hidden { get; set; } + public double original_amount { get; set; } + public double price { get; set; } + public int socket_sequence { get; set; } + } +} diff --git a/VisualHFT.Plugins/MarketConnectors.BitStamp/BitStampPlugin.cs b/VisualHFT.Plugins/MarketConnectors.BitStamp/BitStampPlugin.cs new file mode 100644 index 00000000..79dc0f6d --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BitStamp/BitStampPlugin.cs @@ -0,0 +1,530 @@ +using BitStamp.Net.Clients; +using BitStamp.Net.Models; +using CryptoExchange.Net.CommonObjects; +using CryptoExchange.Net.Interfaces; +using MarketConnectors.BitStamp; +using MarketConnectors.BitStamp.Model; +using MarketConnectors.BitStamp.UserControls; +using MarketConnectors.BitStamp.ViewModel; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Dynamic; +using System.Net.Http; +using System.Net.Sockets; +using System.Net.WebSockets; +using System.Reflection.Metadata; +using System.Text; +using System.Threading; +using System.Threading.Channels; +using System.Threading.Tasks; +using System.Windows.Media.Converters; +using VisualHFT.Commons.Model; +using VisualHFT.Commons.PluginManager; +using VisualHFT.DataRetriever; +using VisualHFT.DataRetriever.DataParsers; +using VisualHFT.Enums; +using VisualHFT.Model; +using VisualHFT.PluginManager; +using VisualHFT.UserSettings; +using Websocket.Client; +using OrderBook = VisualHFT.Model.OrderBook; +using Trade = VisualHFT.Model.Trade; + +namespace MarketConnectors.Gemini +{ + public class BitStampPlugin : BasePluginDataRetriever + { + private new bool _disposed = false; // to track whether the object has been disposed + + + private Timer _heartbeatTimer; + private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + private Dictionary _localOrderBooks = new Dictionary(); + + private DataEventArgs tradeDataEvent = new DataEventArgs() { DataType = "Trades" }; //reusable object. So we avoid allocations + private DataEventArgs marketDataEvent = new DataEventArgs() { DataType = "Market" };//reusable object. So we avoid allocations + private DataEventArgs heartbeatDataEvent = new DataEventArgs() { DataType = "HeartBeats" };//reusable object. So we avoid allocations + + + + private PlugInSettings? _settings; + public override string Name { get; set; } = "BitStamp"; + public override string Version { get; set; } = "1.0.0"; + public override string Description { get; set; } = "Connects to BitStamp."; + public override string Author { get; set; } = "VisualHFT"; + public override ISetting Settings { get => _settings; set => _settings = (PlugInSettings)value; } + public override Action? CloseSettingWindow { get; set; } + + private IDataParser _parser; + JsonSerializerSettings? _parser_settings = null; + WebsocketClient? _ws; + + BitStampHttpClient bitstampHttpClient; + public BitStampPlugin() + { + _parser = new JsonParser(); + _parser_settings = new JsonSerializerSettings + { + Converters = new List { new CustomDateConverter() }, + DateParseHandling = DateParseHandling.None, + DateFormatString = "yyyy.MM.dd-HH.mm.ss.ffffff" + }; + // Initialize the timer + _heartbeatTimer = new Timer(CheckConnectionStatus, null, TimeSpan.Zero, TimeSpan.FromSeconds(5)); // Check every 5 seconds + bitstampHttpClient = new BitStampHttpClient(); + } + + ~BitStampPlugin() + { + Dispose(false); + } + + + public override async Task StartAsync() + { + await base.StartAsync();//call the base first + + await InitializeSnapshotAsync(); + + var symbols = GetAllNonNormalizedSymbols(); + List channelsToSubscribe = new List(); + + foreach (var symbol in symbols) + { + + channelsToSubscribe.Add("order_book_" + symbol); + channelsToSubscribe.Add("live_trades_" + symbol); + } + try + { + await Task.Run(async () => + { + var exitEvent = new ManualResetEvent(false); + var url = new Uri(_settings.WebSocketHostName); + using (_ws = new WebsocketClient(url)) + { + _ws.ReconnectTimeout = TimeSpan.FromSeconds(30); + _ws.ReconnectionHappened.Subscribe(info => + { + if (info.Type == ReconnectionType.Error) + { + RaiseOnDataReceived(GetProviderModel(eSESSIONSTATUS.CONNECTED)); + Status = ePluginStatus.STOPPED_FAILED; + } + else if (info.Type == ReconnectionType.Initial) + { + foreach (var symbol in GetAllNonNormalizedSymbols()) + { + var normalizedSymbol = GetNormalizedSymbol(symbol); + if (!_localOrderBooks.ContainsKey(normalizedSymbol)) + { + _localOrderBooks.Add(normalizedSymbol, null); + } + } + } + + }); + _ws.DisconnectionHappened.Subscribe(disconnected => + { + RaiseOnDataReceived(GetProviderModel(eSESSIONSTATUS.DISCONNECTED)); + Status = ePluginStatus.STOPPED_FAILED; + + }); + + _ws.MessageReceived.Subscribe(async msg => + { + string data = msg.ToString(); + if (data.Contains("trade")) + { + + } + HandleMessage(data, DateTime.Now); + RaiseOnDataReceived(GetProviderModel(eSESSIONSTATUS.CONNECTED)); + }); + try + { + await _ws.Start(); + log.Info($"Plugin has successfully started."); + RaiseOnDataReceived(GetProviderModel(eSESSIONSTATUS.CONNECTED)); + foreach (var tosubscribe in channelsToSubscribe) + { + BitStampSubscriptions bitStampSubscriptions = new BitStampSubscriptions(); + bitStampSubscriptions.data = new Data(); + bitStampSubscriptions.data.channel = tosubscribe; + string jsonToSubscribe = JsonConvert.SerializeObject(bitStampSubscriptions); + _ws.Send(jsonToSubscribe); + Thread.Sleep(1000); + } + Status = ePluginStatus.STARTED; + } + catch (Exception ex) + { + var _error = ex.Message; + log.Error(_error, ex); + await HandleConnectionLost(_error, ex); + } + exitEvent.WaitOne(); + } + }); + } + catch (Exception ex) + { + var _error = ex.Message; + log.Error(_error, ex); + await HandleConnectionLost(_error, ex); + } + CancellationTokenSource source = new CancellationTokenSource(); + } + + public async Task InitializeSnapshotAsync() + { + foreach (var symbol in GetAllNonNormalizedSymbols()) + { + var normalizedSymbol = GetNormalizedSymbol(symbol); + if (!_localOrderBooks.ContainsKey(normalizedSymbol)) + { + _localOrderBooks.Add(normalizedSymbol, null); + } + var response = await bitstampHttpClient.InitializeSnapshotAsync(symbol); + if (response != null) + { + _localOrderBooks[normalizedSymbol] = ToOrderBookModel(response, normalizedSymbol); + } + + } + + } + + public override async Task StopAsync() + { + Status = ePluginStatus.STOPPING; + log.Info($"{this.Name} is stopping."); + + + if (_ws != null && !_ws.IsRunning) + await _ws.Stop(WebSocketCloseStatus.NormalClosure, "Manual CLosing"); + //reset models + RaiseOnDataReceived(new List()); + RaiseOnDataReceived(GetProviderModel(eSESSIONSTATUS.DISCONNECTED)); + + await base.StopAsync(); + } + + private VisualHFT.Model.OrderBook ToOrderBookModel(InitialResponse data, string symbol) + { + var identifiedPriceDecimalPlaces = RecognizeDecimalPlacesAutomatically(data.asks.Select(x => double.Parse(x[0]))); + + var lob = new VisualHFT.Model.OrderBook(symbol, identifiedPriceDecimalPlaces, _settings.DepthLevels); + lob.ProviderID = _settings.Provider.ProviderID; + lob.ProviderName = _settings.Provider.ProviderName; + lob.SizeDecimalPlaces = RecognizeDecimalPlacesAutomatically(data.asks.Select(x => double.Parse(x[1]))); + + var _asks = new List(); + var _bids = new List(); + data.asks.ToList().ForEach(x => + { + _asks.Add(new VisualHFT.Model.BookItem() + { + IsBid = false, + Price = double.Parse(x[0]), + Size = double.Parse(x[1]), + LocalTimeStamp = DateTime.Now, + ServerTimeStamp = DateTime.Now, + Symbol = lob.Symbol, + PriceDecimalPlaces = lob.PriceDecimalPlaces, + SizeDecimalPlaces = lob.SizeDecimalPlaces, + ProviderID = lob.ProviderID, + }); + }); + data.bids.ToList().ForEach(x => + { + _bids.Add(new VisualHFT.Model.BookItem() + { + IsBid = true, + Price = double.Parse(x[0]), + Size = double.Parse(x[1]), + LocalTimeStamp = DateTime.Now, + ServerTimeStamp = DateTime.Now, + Symbol = lob.Symbol, + PriceDecimalPlaces = lob.PriceDecimalPlaces, + SizeDecimalPlaces = lob.SizeDecimalPlaces, + ProviderID = lob.ProviderID, + }); + }); + + lob.LoadData( + _asks.OrderBy(x => x.Price).Take(_settings.DepthLevels), + _bids.OrderByDescending(x => x.Price).Take(_settings.DepthLevels) + ); + return lob; + } + + private void HandleMessage(string marketData, DateTime serverTime) + { + string message = marketData; + + + dynamic data = JsonConvert.DeserializeObject(message); + if (data.@event == "data") + { + BitStampOrderBook type = JsonConvert.DeserializeObject(message); + if (type.@event.ToLower().Equals("data")) + { + List events = new List(); + + string symbol = string.Empty; + if (type.channel.Split('_').Length > 3) + { + symbol = GetNormalizedSymbol(type.channel.Split('_')[3]); + } + else if (type.channel.Split('_').Length == 3) + { + symbol = GetNormalizedSymbol(type.channel.Split('_')[2]); + } + + if (!_localOrderBooks.ContainsKey(symbol)) + return; + + var local_lob = _localOrderBooks[symbol]; + if (local_lob == null) + { + local_lob = new OrderBook(); + } + OrderBook book = new VisualHFT.Model.OrderBook(); + book.ProviderID = _settings.Provider.ProviderID; + book.ProviderName = _settings.Provider.ProviderName; + book.Symbol = symbol; + foreach (var item in type.data.bids) + { + BookItem bookItem = new BookItem(); + bookItem.Symbol = symbol; + bookItem.ProviderID = _settings.Provider.ProviderID; + bookItem.IsBid = true; + bookItem.Price = double.Parse(item[0]); + bookItem.Size = double.Parse(item[1]); + bookItem.LocalTimeStamp = DateTime.Now; + bookItem.ServerTimeStamp = serverTime; + book.Asks.Add(bookItem); + + local_lob.AddOrUpdateLevel(new DeltaBookItem() + { + MDUpdateAction = eMDUpdateAction.None, + Price = bookItem.Price, + Size = bookItem.Size, + IsBid = true, + LocalTimeStamp = DateTime.Now, + ServerTimeStamp = bookItem.ServerTimeStamp, + Symbol = symbol + }); + } + foreach (var item in type.data.asks) + { + book.Symbol = symbol; + BookItem bookItem = new BookItem(); + bookItem.Symbol = symbol; + bookItem.IsBid = false; + bookItem.Price = double.Parse(item[0]); + bookItem.Size = double.Parse(item[1]); + bookItem.LocalTimeStamp = DateTime.Now; + bookItem.ServerTimeStamp = serverTime; + bookItem.ProviderID = _settings.Provider.ProviderID; + book.Bids.Add(bookItem); + + local_lob.AddOrUpdateLevel(new DeltaBookItem() + { + MDUpdateAction = eMDUpdateAction.None, + Price = bookItem.Price, + Size = bookItem.Size, + IsBid = false, + LocalTimeStamp = DateTime.Now, + ServerTimeStamp = bookItem.ServerTimeStamp, + Symbol = symbol + }); + } + + //marketDataEvent.ParsedModel = _parser.Parse>(dataReceived.events, _parser_settings); + var identifiedPriceDecimalPlaces = RecognizeDecimalPlacesAutomatically(book.Asks.Where(x => x.Price.HasValue).Select(x => x.Price.Value)); + var identifiedSizeDecimalPlaces = RecognizeDecimalPlacesAutomatically(book.Asks.Where(x => x.Size.HasValue).Select(x => x.Size.Value)); + book.SizeDecimalPlaces = identifiedSizeDecimalPlaces; + book.PriceDecimalPlaces = identifiedPriceDecimalPlaces; + foreach (var bookItem in book.Asks) + { + bookItem.SizeDecimalPlaces = identifiedSizeDecimalPlaces; + bookItem.PriceDecimalPlaces = identifiedPriceDecimalPlaces; + } + foreach (var bookItem in book.Bids) + { + bookItem.SizeDecimalPlaces = identifiedSizeDecimalPlaces; + bookItem.PriceDecimalPlaces = identifiedPriceDecimalPlaces; + } + events.Add(book); + + marketDataEvent.ParsedModel = events; + RaiseOnDataReceived(local_lob); + + //if (dataReceived.trades != null && dataReceived.trades.Count > 0) + //{ + // List trades = new List(); + // foreach (var item in dataReceived.trades) + // { + // Trade trade = new Trade(); + // trade.Timestamp = DateTimeOffset.FromUnixTimeMilliseconds(item.timestamp).DateTime; + // trade.Price = item.price; + // trade.Size = item.quantity; + // trade.Symbol = symbol; + // trade.ProviderId = _settings.Provider.ProviderID; + // trade.ProviderName = _settings.Provider.ProviderName; + // if (item.side.ToLower().Equals("buy")) + // { + // trade.IsBuy = true; + // } + // else if(item.side.ToLower().Equals("sell")) + // { + // trade.IsBuy = false; + // } + // trades.Add(trade); + // } + // tradeDataEvent.ParsedModel = trades; + // RaiseOnDataReceived(tradeDataEvent); + //} + } + } + else if (data.@event == "heartbeat") + { + RaiseOnDataReceived(heartbeatDataEvent); + + } + else if (data.@event == "trade") + { + + BitStampTrade type = JsonConvert.DeserializeObject(message); + if (type != null && type.data != null) + { + List trades = new List(); + string symbol = string.Empty; + if (type.channel.Split('_').Length > 3) + { + symbol = GetNormalizedSymbol(type.channel.Split('_')[3]); + } + else if (type.channel.Split('_').Length == 3) + { + symbol = GetNormalizedSymbol(type.channel.Split('_')[2]); + } + Trade trade = new Trade(); + trade.Timestamp = DateTimeOffset.FromUnixTimeMilliseconds(type.data.timestamp).DateTime; + trade.Price = type.data.price; + trade.Size = type.data.amount; + trade.Symbol = symbol; + trade.ProviderId = _settings.Provider.ProviderID; + trade.ProviderName = _settings.Provider.ProviderName; + if (type.data.type == 0) //0 means buy + { + trade.IsBuy = true; + } + else if (type.data.type == 1) //1 means sell + { + trade.IsBuy = false; + } + trades.Add(trade); + tradeDataEvent.ParsedModel = trades; + } + RaiseOnDataReceived(tradeDataEvent); + } + } + private void CheckConnectionStatus(object state) + { + bool isConnected = _ws != null && _ws.IsRunning; + if (isConnected) + { + RaiseOnDataReceived(GetProviderModel(eSESSIONSTATUS.CONNECTED)); + } + else + { + RaiseOnDataReceived(GetProviderModel(eSESSIONSTATUS.DISCONNECTED)); + + } + + } + public override object GetUISettings() + { + PluginSettingsView view = new PluginSettingsView(); + PluginSettingsViewModel viewModel = new PluginSettingsViewModel(CloseSettingWindow); + viewModel.ApiSecret = _settings.ApiSecret; + viewModel.ApiKey = _settings.ApiKey; + viewModel.APIPassPhrase = _settings.APIPassPhrase; + viewModel.ProviderId = _settings.Provider.ProviderID; + viewModel.ProviderName = _settings.Provider.ProviderName; + viewModel.Symbols = _settings.Symbols; + + viewModel.UpdateSettingsFromUI = () => + { + _settings.ApiSecret = viewModel.ApiSecret; + _settings.ApiKey = viewModel.ApiKey; + _settings.APIPassPhrase = viewModel.APIPassPhrase; + _settings.Provider = new VisualHFT.Model.Provider() { ProviderID = viewModel.ProviderId, ProviderName = viewModel.ProviderName }; + _settings.Symbols = viewModel.Symbols; + + SaveSettings(); + ParseSymbols(string.Join(',', _settings.Symbols.ToArray())); + + //run this because it will allow to reconnect with the new values + RaiseOnDataReceived(GetProviderModel(eSESSIONSTATUS.CONNECTING)); + Status = ePluginStatus.STARTING; + Task.Run(async () => await HandleConnectionLost($"{this.Name} is starting (from reloading settings).", null, true)); + + + }; + // Display the view, perhaps in a dialog or a new window. + view.DataContext = viewModel; + return view; + } + + protected override void InitializeDefaultSettings() + { + + _settings = new PlugInSettings() + { + ApiKey = "", + ApiSecret = "", + HostName = "https://www.bitstamp.net/api/v2/", + WebSocketHostName = "wss://ws.bitstamp.net", + Provider = new VisualHFT.Model.Provider() { ProviderID = 6, ProviderName = "BitStamp" }, + Symbols = new List() { "btcusd(BTC/USD)", "ethusd(ETH/USD)" } // Add more symbols as needed + }; + SaveToUserSettings(_settings); + } + protected override void LoadSettings() + { + _settings = LoadFromUserSettings(); + if (_settings == null) + { + InitializeDefaultSettings(); + } + if (_settings.Provider == null) //To prevent back compability with older setting formats + { + _settings.Provider = new VisualHFT.Model.Provider() { ProviderID = 6, ProviderName = "BitStamp" }; + } + ParseSymbols(string.Join(',', _settings.Symbols.ToArray())); //Utilize normalization function + } + protected override void SaveSettings() + { + SaveToUserSettings(_settings); + } + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + if (!_disposed) + { + if (disposing) + { + _ws?.Dispose(); + _heartbeatTimer?.Dispose(); + } + _disposed = true; + } + } + } +} \ No newline at end of file diff --git a/VisualHFT.Plugins/MarketConnectors.BitStamp/CustomDateConverter.cs b/VisualHFT.Plugins/MarketConnectors.BitStamp/CustomDateConverter.cs new file mode 100644 index 00000000..b6a20484 --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BitStamp/CustomDateConverter.cs @@ -0,0 +1,71 @@ +using Newtonsoft.Json; +using System.Globalization; +using System; + +namespace MarketConnectors.BitStamp +{ + internal class CustomDateConverter : JsonConverter + { + const string DatePositionFormat = "yyyy'.'MM'.'dd'-'HH'.'mm'.'ss'.'ffffff"; + + public override bool CanConvert(Type objectType) + { + return (objectType == typeof(DateTime) || objectType == typeof(DateTime?)); + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + //scenario: "2022.10.19-14.49.58.808384" -- OK + //scenario: "2022-10-19T14:40:49.2291586-04:00" -- NOT WORKING + + string rawDate = (string)reader.Value; + if (string.IsNullOrEmpty(rawDate)) + return null; + //Validate that milliseconds are 6 chars long + if (rawDate.IndexOf(".") > -1) + { + int lenghtMilliseconds = rawDate.Split('.')[5].Length; + if (rawDate.Split('.')[5].Length < 6) + { + for (int i = 0; i < (6 - lenghtMilliseconds); i++) + rawDate = rawDate + "0"; + } + } + DateTime date; + + // First try to parse the date string as is (in case it is correctly formatted) + if (DateTime.TryParse(rawDate, out date)) + { + return date; + } + else if (DateTime.TryParseExact(rawDate, DatePositionFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out date)) + return date; + + // If not, see if the string matches the known bad format. + // If so, replace the ':' with '.' and reparse. + if (rawDate.Length > 19 && rawDate[19] == ':') + { + rawDate = rawDate.Substring(0, 19) + '.' + rawDate.Substring(20); + if (DateTime.TryParse(rawDate, out date)) + { + return date; + } + } + + // It's not a date after all, so just return the default value + if (objectType == typeof(DateTime?)) + return null; + + return DateTime.MinValue; + } + + public override bool CanWrite + { + get { return false; } + } + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/VisualHFT.Plugins/MarketConnectors.BitStamp/JsonParser.cs b/VisualHFT.Plugins/MarketConnectors.BitStamp/JsonParser.cs new file mode 100644 index 00000000..162cdb2f --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BitStamp/JsonParser.cs @@ -0,0 +1,19 @@ +using Newtonsoft.Json; +using VisualHFT.DataRetriever.DataParsers; + +namespace MarketConnectors.BitStamp +{ + internal class JsonParser : IDataParser + { + public T Parse(string rawData) + { + // Use a JSON library like Newtonsoft.Json to deserialize the data + return JsonConvert.DeserializeObject(rawData); + } + public T Parse(string rawData, dynamic settings) + { + // Use a JSON library like Newtonsoft.Json to deserialize the data + return JsonConvert.DeserializeObject(rawData, settings); + } + } +} \ No newline at end of file diff --git a/VisualHFT.Plugins/MarketConnectors.BitStamp/MarketConnectors.BitStamp.csproj b/VisualHFT.Plugins/MarketConnectors.BitStamp/MarketConnectors.BitStamp.csproj new file mode 100644 index 00000000..a4e231eb --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BitStamp/MarketConnectors.BitStamp.csproj @@ -0,0 +1,24 @@ + + + + net8.0-windows + enable + true + enable + + + + + + + + + + + + + + + + + diff --git a/VisualHFT.Plugins/MarketConnectors.BitStamp/Model/PlugInSettings.cs b/VisualHFT.Plugins/MarketConnectors.BitStamp/Model/PlugInSettings.cs new file mode 100644 index 00000000..b3421537 --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BitStamp/Model/PlugInSettings.cs @@ -0,0 +1,22 @@ +using System.Collections.Generic; +using VisualHFT.Enums; +using VisualHFT.UserSettings; + +namespace MarketConnectors.BitStamp.Model +{ + public class PlugInSettings : ISetting + { + + public required string HostName { get; set; } + public required string WebSocketHostName { get; set; } + public string ApiKey { get; set; } + public string ApiSecret { get; set; } + public string APIPassPhrase { get; set; } + public List Symbols { get; set; } + public int DepthLevels { get; set; } + public string Symbol { get; set; } + public VisualHFT.Model.Provider Provider { get; set; } + public AggregationLevel AggregationLevel { get; set; } + + } +} \ No newline at end of file diff --git a/VisualHFT.Plugins/MarketConnectors.BitStamp/UserControls/PluginSettingsView.xaml b/VisualHFT.Plugins/MarketConnectors.BitStamp/UserControls/PluginSettingsView.xaml new file mode 100644 index 00000000..660c942c --- /dev/null +++ b/VisualHFT.Plugins/MarketConnectors.BitStamp/UserControls/PluginSettingsView.xaml @@ -0,0 +1,130 @@ + + + +