Browse Source

Basic Mqtt Broker

Marcel Zickler 3 years ago
parent
commit
2792b64219
100 changed files with 11068 additions and 0 deletions
  1. 7 0
      .idea/.idea.VR Cycling/.idea/riderModule.iml
  2. 48 0
      Assembly-CSharp-Editor.csproj
  3. 64 0
      Assembly-CSharp.csproj
  4. 14 0
      Assets/NuGet.config
  5. 32 0
      Assets/NuGet.config.meta
  6. 9 0
      Assets/NuGet.meta
  7. 9 0
      Assets/NuGet/Editor.meta
  8. BIN
      Assets/NuGet/Editor/DotNetZip.dll
  9. 20 0
      Assets/NuGet/Editor/DotNetZip.dll.meta
  10. BIN
      Assets/NuGet/Editor/NugetForUnity.dll
  11. 20 0
      Assets/NuGet/Editor/NugetForUnity.dll.meta
  12. 21 0
      Assets/NuGet/LICENSE
  13. 8 0
      Assets/NuGet/LICENSE.meta
  14. BIN
      Assets/NuGet/README.pdf
  15. 8 0
      Assets/NuGet/README.pdf.meta
  16. 9 0
      Assets/NuGet/Resources.meta
  17. BIN
      Assets/NuGet/Resources/defaultIcon.png
  18. 92 0
      Assets/NuGet/Resources/defaultIcon.png.meta
  19. 8 0
      Assets/Packages.meta
  20. 8 0
      Assets/Packages/Common.Logging.3.4.1.meta
  21. BIN
      Assets/Packages/Common.Logging.3.4.1/.signature.p7s
  22. BIN
      Assets/Packages/Common.Logging.3.4.1/Common.Logging.3.4.1.nupkg
  23. 7 0
      Assets/Packages/Common.Logging.3.4.1/Common.Logging.3.4.1.nupkg.meta
  24. 8 0
      Assets/Packages/Common.Logging.3.4.1/lib.meta
  25. 8 0
      Assets/Packages/Common.Logging.3.4.1/lib/net40.meta
  26. BIN
      Assets/Packages/Common.Logging.3.4.1/lib/net40/Common.Logging.dll
  27. 33 0
      Assets/Packages/Common.Logging.3.4.1/lib/net40/Common.Logging.dll.meta
  28. 2905 0
      Assets/Packages/Common.Logging.3.4.1/lib/net40/Common.Logging.xml
  29. 7 0
      Assets/Packages/Common.Logging.3.4.1/lib/net40/Common.Logging.xml.meta
  30. 8 0
      Assets/Packages/Common.Logging.Core.3.4.1.meta
  31. BIN
      Assets/Packages/Common.Logging.Core.3.4.1/.signature.p7s
  32. BIN
      Assets/Packages/Common.Logging.Core.3.4.1/Common.Logging.Core.3.4.1.nupkg
  33. 7 0
      Assets/Packages/Common.Logging.Core.3.4.1/Common.Logging.Core.3.4.1.nupkg.meta
  34. 8 0
      Assets/Packages/Common.Logging.Core.3.4.1/lib.meta
  35. 8 0
      Assets/Packages/Common.Logging.Core.3.4.1/lib/net40.meta
  36. 907 0
      Assets/Packages/Common.Logging.Core.3.4.1/lib/net40/Common.Logging.Core.XML
  37. 7 0
      Assets/Packages/Common.Logging.Core.3.4.1/lib/net40/Common.Logging.Core.XML.meta
  38. BIN
      Assets/Packages/Common.Logging.Core.3.4.1/lib/net40/Common.Logging.Core.dll
  39. 33 0
      Assets/Packages/Common.Logging.Core.3.4.1/lib/net40/Common.Logging.Core.dll.meta
  40. 8 0
      Assets/Packages/IPNetwork2.2.1.2.meta
  41. BIN
      Assets/Packages/IPNetwork2.2.1.2/.signature.p7s
  42. BIN
      Assets/Packages/IPNetwork2.2.1.2/IPNetwork2.2.1.2.nupkg
  43. 7 0
      Assets/Packages/IPNetwork2.2.1.2/IPNetwork2.2.1.2.nupkg.meta
  44. 8 0
      Assets/Packages/IPNetwork2.2.1.2/lib.meta
  45. 8 0
      Assets/Packages/IPNetwork2.2.1.2/lib/net46.meta
  46. BIN
      Assets/Packages/IPNetwork2.2.1.2/lib/net46/System.Net.IPNetwork.dll
  47. 33 0
      Assets/Packages/IPNetwork2.2.1.2/lib/net46/System.Net.IPNetwork.dll.meta
  48. 8 0
      Assets/Packages/MQTTnet.3.0.13.meta
  49. BIN
      Assets/Packages/MQTTnet.3.0.13/.signature.p7s
  50. 21 0
      Assets/Packages/MQTTnet.3.0.13/LICENSE
  51. 7 0
      Assets/Packages/MQTTnet.3.0.13/LICENSE.meta
  52. BIN
      Assets/Packages/MQTTnet.3.0.13/MQTTnet.3.0.13.nupkg
  53. 7 0
      Assets/Packages/MQTTnet.3.0.13/MQTTnet.3.0.13.nupkg.meta
  54. 8 0
      Assets/Packages/MQTTnet.3.0.13/images.meta
  55. BIN
      Assets/Packages/MQTTnet.3.0.13/images/Logo_128x128.png
  56. 140 0
      Assets/Packages/MQTTnet.3.0.13/images/Logo_128x128.png.meta
  57. 8 0
      Assets/Packages/MQTTnet.3.0.13/lib.meta
  58. 8 0
      Assets/Packages/MQTTnet.3.0.13/lib/net461.meta
  59. BIN
      Assets/Packages/MQTTnet.3.0.13/lib/net461/MQTTnet.dll
  60. 33 0
      Assets/Packages/MQTTnet.3.0.13/lib/net461/MQTTnet.dll.meta
  61. 8 0
      Assets/Packages/Makaretu.Dns.2.0.1.meta
  62. BIN
      Assets/Packages/Makaretu.Dns.2.0.1/.signature.p7s
  63. BIN
      Assets/Packages/Makaretu.Dns.2.0.1/Makaretu.Dns.2.0.1.nupkg
  64. 7 0
      Assets/Packages/Makaretu.Dns.2.0.1/Makaretu.Dns.2.0.1.nupkg.meta
  65. 8 0
      Assets/Packages/Makaretu.Dns.2.0.1/lib.meta
  66. 8 0
      Assets/Packages/Makaretu.Dns.2.0.1/lib/net45.meta
  67. BIN
      Assets/Packages/Makaretu.Dns.2.0.1/lib/net45/Makaretu.Dns.dll
  68. 33 0
      Assets/Packages/Makaretu.Dns.2.0.1/lib/net45/Makaretu.Dns.dll.meta
  69. 5038 0
      Assets/Packages/Makaretu.Dns.2.0.1/lib/net45/Makaretu.Dns.xml
  70. 7 0
      Assets/Packages/Makaretu.Dns.2.0.1/lib/net45/Makaretu.Dns.xml.meta
  71. 8 0
      Assets/Packages/Makaretu.Dns.Multicast.0.27.0.meta
  72. BIN
      Assets/Packages/Makaretu.Dns.Multicast.0.27.0/.signature.p7s
  73. BIN
      Assets/Packages/Makaretu.Dns.Multicast.0.27.0/Makaretu.Dns.Multicast.0.27.0.nupkg
  74. 7 0
      Assets/Packages/Makaretu.Dns.Multicast.0.27.0/Makaretu.Dns.Multicast.0.27.0.nupkg.meta
  75. 8 0
      Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib.meta
  76. 8 0
      Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461.meta
  77. BIN
      Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461/Makaretu.Dns.Multicast.dll
  78. 33 0
      Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461/Makaretu.Dns.Multicast.dll.meta
  79. 862 0
      Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461/Makaretu.Dns.Multicast.xml
  80. 7 0
      Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461/Makaretu.Dns.Multicast.xml.meta
  81. 8 0
      Assets/Packages/Microsoft.CSharp.4.0.1.meta
  82. BIN
      Assets/Packages/Microsoft.CSharp.4.0.1/.signature.p7s
  83. BIN
      Assets/Packages/Microsoft.CSharp.4.0.1/Microsoft.CSharp.4.0.1.nupkg
  84. 7 0
      Assets/Packages/Microsoft.CSharp.4.0.1/Microsoft.CSharp.4.0.1.nupkg.meta
  85. 31 0
      Assets/Packages/Microsoft.CSharp.4.0.1/ThirdPartyNotices.txt
  86. 7 0
      Assets/Packages/Microsoft.CSharp.4.0.1/ThirdPartyNotices.txt.meta
  87. 128 0
      Assets/Packages/Microsoft.CSharp.4.0.1/dotnet_library_license.txt
  88. 7 0
      Assets/Packages/Microsoft.CSharp.4.0.1/dotnet_library_license.txt.meta
  89. 8 0
      Assets/Packages/Microsoft.CSharp.4.0.1/lib.meta
  90. 8 0
      Assets/Packages/Microsoft.CSharp.4.0.1/lib/net45.meta
  91. 0 0
      Assets/Packages/Microsoft.CSharp.4.0.1/lib/net45/_._
  92. 7 0
      Assets/Packages/Microsoft.CSharp.4.0.1/lib/net45/_._.meta
  93. 8 0
      Assets/Packages/Microsoft.NETCore.Platforms.1.1.0.meta
  94. BIN
      Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/.signature.p7s
  95. BIN
      Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/Microsoft.NETCore.Platforms.1.1.0.nupkg
  96. 7 0
      Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/Microsoft.NETCore.Platforms.1.1.0.nupkg.meta
  97. 31 0
      Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/ThirdPartyNotices.txt
  98. 7 0
      Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/ThirdPartyNotices.txt.meta
  99. 128 0
      Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/dotnet_library_license.txt
  100. 7 0
      Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/dotnet_library_license.txt.meta

+ 7 - 0
.idea/.idea.VR Cycling/.idea/riderModule.iml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="RIDER_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$/../.." />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 48 - 0
Assembly-CSharp-Editor.csproj

@@ -349,6 +349,54 @@
  <Reference Include="ICSharpCode.NRefactory">
  <HintPath>C:/Unity Projects/VR Cycling/Library/PackageCache/com.unity.render-pipelines.core@7.3.1/Editor/ShaderGenerator/ICSharpCode.NRefactory.dll</HintPath>
  </Reference>
+ <Reference Include="NugetForUnity">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/NuGet/Editor/NugetForUnity.dll</HintPath>
+ </Reference>
+ <Reference Include="DotNetZip">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/NuGet/Editor/DotNetZip.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Security.Cryptography.Primitives">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Security.Cryptography.Primitives.4.3.0/lib/net46/System.Security.Cryptography.Primitives.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Security.Cryptography.Algorithms">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Security.Cryptography.Algorithms.4.3.0/lib/net461/System.Security.Cryptography.Algorithms.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Security.Cryptography.Encoding">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Security.Cryptography.Encoding.4.3.0/lib/net46/System.Security.Cryptography.Encoding.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Security.Cryptography.X509Certificates">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Security.Cryptography.X509Certificates.4.3.0/lib/net461/System.Security.Cryptography.X509Certificates.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.Security">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Net.Security.4.3.2/lib/net46/System.Net.Security.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.WebSockets">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Net.WebSockets.4.3.0/lib/net46/System.Net.WebSockets.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.WebSockets.Client">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Net.WebSockets.Client.4.3.2/lib/net46/System.Net.WebSockets.Client.dll</HintPath>
+ </Reference>
+ <Reference Include="MQTTnet">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/MQTTnet.3.0.13/lib/net461/MQTTnet.dll</HintPath>
+ </Reference>
+ <Reference Include="Common.Logging.Core">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/Common.Logging.Core.3.4.1/lib/net40/Common.Logging.Core.dll</HintPath>
+ </Reference>
+ <Reference Include="Common.Logging">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/Common.Logging.3.4.1/lib/net40/Common.Logging.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.IPNetwork">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/IPNetwork2.2.1.2/lib/net46/System.Net.IPNetwork.dll</HintPath>
+ </Reference>
+ <Reference Include="SimpleBase">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/SimpleBase.1.3.1/lib/net45/SimpleBase.dll</HintPath>
+ </Reference>
+ <Reference Include="Makaretu.Dns">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/Makaretu.Dns.2.0.1/lib/net45/Makaretu.Dns.dll</HintPath>
+ </Reference>
+ <Reference Include="Makaretu.Dns.Multicast">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461/Makaretu.Dns.Multicast.dll</HintPath>
+ </Reference>
  <Reference Include="nunit.framework">
  <HintPath>C:/Unity Projects/VR Cycling/Library/PackageCache/com.unity.ext.nunit@1.0.0/net35/unity-custom/nunit.framework.dll</HintPath>
  </Reference>

+ 64 - 0
Assembly-CSharp.csproj

@@ -275,6 +275,7 @@
      <Compile Include="Assets\Scripts\Display\RbDebugDisplay.cs" />
      <Compile Include="Assets\Scripts\Display\ViveTrackerDebugDisplay.cs" />
      <Compile Include="Assets\Scripts\Display\WcDebugDisplay.cs" />
+     <Compile Include="Assets\Scripts\ESPController\DataBroker.cs" />
      <Compile Include="Assets\Scripts\GameManager.cs" />
      <Compile Include="Assets\Scripts\Helpers.cs" />
      <Compile Include="Assets\Scripts\Logging\Base\AsyncLogFileWriter.cs" />
@@ -319,29 +320,50 @@
      <None Include="Assets\TextMesh Pro\Shaders\TMP_SDF-Mobile Overlay.shader" />
      <None Include="Assets\AdvancedAnt\Plugins\Ant\License.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_Bitmap.shader" />
+     <None Include="Assets\Packages\Common.Logging.3.4.1\lib\net40\Common.Logging.xml" />
+     <None Include="Assets\Packages\Microsoft.CSharp.4.0.1\dotnet_library_license.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMPro_Mobile.cginc" />
+     <None Include="Assets\Packages\System.Net.WebSockets.4.3.0\ThirdPartyNotices.txt" />
+     <None Include="Assets\Packages\Microsoft.NETCore.Platforms.1.1.0\ThirdPartyNotices.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_SDF SSD.shader" />
+     <None Include="Assets\Packages\Microsoft.CSharp.4.0.1\ThirdPartyNotices.txt" />
+     <None Include="Assets\Packages\System.Net.WebSockets.Client.4.3.2\dotnet_library_license.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_SDF-Surface-Mobile.shader" />
+     <None Include="Assets\Packages\Microsoft.NETCore.Platforms.1.1.0\dotnet_library_license.txt" />
+     <None Include="Assets\Packages\System.Security.Cryptography.X509Certificates.4.3.0\dotnet_library_license.txt" />
+     <None Include="Assets\Packages\System.Net.WebSockets.Client.4.3.2\ThirdPartyNotices.txt" />
      <None Include="Assets\AdvancedAnt\DEMO PREFABS\Android_readme.txt" />
      <None Include="Assets\AdvancedAnt\Plugins\Android\AndroidManifest.xml" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_SDF-Surface.shader" />
+     <None Include="Assets\Packages\System.Security.Cryptography.Primitives.4.3.0\dotnet_library_license.txt" />
      <None Include="Assets\TextMesh Pro\Sprites\EmojiOne Attribution.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_Bitmap-Custom-Atlas.shader" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_SDF.shader" />
+     <None Include="Assets\Packages\System.Net.Security.4.3.2\dotnet_library_license.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_SDF-Mobile SSD.shader" />
      <None Include="Assets\TextMesh Pro\Resources\LineBreaking Leading Characters.txt" />
+     <None Include="Assets\Packages\System.Security.Cryptography.Encoding.4.3.0\ThirdPartyNotices.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMPro_Properties.cginc" />
      <None Include="Assets\AdvancedAnt\PC_MAC_readme.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMPro_Surface.cginc" />
+     <None Include="Assets\Packages\Makaretu.Dns.2.0.1\lib\net45\Makaretu.Dns.xml" />
      <None Include="Assets\TextMesh Pro\Resources\LineBreaking Following Characters.txt" />
+     <None Include="Assets\Packages\System.Security.Cryptography.Primitives.4.3.0\ThirdPartyNotices.txt" />
      <None Include="Assets\AdvancedAnt\Plugins\Ant\Fit\FIT license.txt" />
+     <None Include="Assets\Packages\System.Security.Cryptography.Algorithms.4.3.0\dotnet_library_license.txt" />
+     <None Include="Assets\Packages\System.Security.Cryptography.Algorithms.4.3.0\ThirdPartyNotices.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_SDF-Mobile Masking.shader" />
+     <None Include="Assets\Packages\System.Security.Cryptography.X509Certificates.4.3.0\ThirdPartyNotices.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_SDF Overlay.shader" />
      <None Include="Assets\PolygonCity\Change_Log.txt" />
+     <None Include="Assets\Packages\System.Net.Security.4.3.2\ThirdPartyNotices.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_Bitmap-Mobile.shader" />
      <None Include="Assets\TextMesh Pro\Fonts\LiberationSans - OFL.txt" />
+     <None Include="Assets\Packages\Makaretu.Dns.Multicast.0.27.0\lib\net461\Makaretu.Dns.Multicast.xml" />
+     <None Include="Assets\Packages\System.Security.Cryptography.Encoding.4.3.0\dotnet_library_license.txt" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_SDF-Mobile.shader" />
      <None Include="Assets\TextMesh Pro\Shaders\TMP_Sprite.shader" />
+     <None Include="Assets\Packages\System.Net.WebSockets.4.3.0\dotnet_library_license.txt" />
  <Reference Include="Unity.RenderPipeline.Universal.ShaderLibrary">
  <HintPath>C:/Unity Projects/VR Cycling/Library/ScriptAssemblies/Unity.RenderPipeline.Universal.ShaderLibrary.dll</HintPath>
  </Reference>
@@ -600,6 +622,48 @@
  <Reference Include="Valve.Newtonsoft.Json">
  <HintPath>C:/Unity Projects/VR Cycling/Assets/SteamVR/Input/Plugins/JSON.NET/Valve.Newtonsoft.Json.dll</HintPath>
  </Reference>
+ <Reference Include="System.Security.Cryptography.Primitives">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Security.Cryptography.Primitives.4.3.0/lib/net46/System.Security.Cryptography.Primitives.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Security.Cryptography.Algorithms">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Security.Cryptography.Algorithms.4.3.0/lib/net461/System.Security.Cryptography.Algorithms.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Security.Cryptography.Encoding">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Security.Cryptography.Encoding.4.3.0/lib/net46/System.Security.Cryptography.Encoding.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Security.Cryptography.X509Certificates">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Security.Cryptography.X509Certificates.4.3.0/lib/net461/System.Security.Cryptography.X509Certificates.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.Security">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Net.Security.4.3.2/lib/net46/System.Net.Security.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.WebSockets">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Net.WebSockets.4.3.0/lib/net46/System.Net.WebSockets.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.WebSockets.Client">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/System.Net.WebSockets.Client.4.3.2/lib/net46/System.Net.WebSockets.Client.dll</HintPath>
+ </Reference>
+ <Reference Include="MQTTnet">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/MQTTnet.3.0.13/lib/net461/MQTTnet.dll</HintPath>
+ </Reference>
+ <Reference Include="Common.Logging.Core">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/Common.Logging.Core.3.4.1/lib/net40/Common.Logging.Core.dll</HintPath>
+ </Reference>
+ <Reference Include="Common.Logging">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/Common.Logging.3.4.1/lib/net40/Common.Logging.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.IPNetwork">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/IPNetwork2.2.1.2/lib/net46/System.Net.IPNetwork.dll</HintPath>
+ </Reference>
+ <Reference Include="SimpleBase">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/SimpleBase.1.3.1/lib/net45/SimpleBase.dll</HintPath>
+ </Reference>
+ <Reference Include="Makaretu.Dns">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/Makaretu.Dns.2.0.1/lib/net45/Makaretu.Dns.dll</HintPath>
+ </Reference>
+ <Reference Include="Makaretu.Dns.Multicast">
+ <HintPath>C:/Unity Projects/VR Cycling/Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461/Makaretu.Dns.Multicast.dll</HintPath>
+ </Reference>
  <Reference Include="mscorlib">
  <HintPath>C:/Program Files/Unity Editors/2019.4.15f1/Editor/Data/MonoBleedingEdge/lib/mono/4.7.1-api/mscorlib.dll</HintPath>
  </Reference>

+ 14 - 0
Assets/NuGet.config

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+    <packageSources>
+       <add key="NuGet" value="http://www.nuget.org/api/v2/" />
+    </packageSources>
+    <disabledPackageSources />
+    <activePackageSource>
+       <add key="All" value="(Aggregate source)" />
+    </activePackageSource>
+    <config>
+       <add key="repositoryPath" value="./Packages" />
+       <add key="DefaultPushSource" value="http://www.nuget.org/api/v2/" />
+    </config>
+</configuration>

+ 32 - 0
Assets/NuGet.config.meta

@@ -0,0 +1,32 @@
+fileFormatVersion: 2
+guid: c76da4bc41647544a9bd9e5752caaec5
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      Any: 
+    second:
+      enabled: 0
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      Windows Store Apps: WindowsStoreApps
+    second:
+      enabled: 1
+      settings: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/NuGet.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 217cb7caed5f7fb49b339428b1d80974
+folderAsset: yes
+timeCreated: 1510280316
+licenseType: Free
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/NuGet/Editor.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: b3fad56c531ac5a4db190a745f589a8e
+folderAsset: yes
+timeCreated: 1510280304
+licenseType: Free
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/NuGet/Editor/DotNetZip.dll


+ 20 - 0
Assets/NuGet/Editor/DotNetZip.dll.meta

@@ -0,0 +1,20 @@
+fileFormatVersion: 2
+guid: a8e8091a1f84e704a9f4d4abd2e15f8b
+timeCreated: 1517875082
+licenseType: Free
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  platformData:
+    Any:
+      enabled: 0
+      settings: {}
+    Editor:
+      enabled: 1
+      settings:
+        DefaultValueInitialized: true
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/NuGet/Editor/NugetForUnity.dll


+ 20 - 0
Assets/NuGet/Editor/NugetForUnity.dll.meta

@@ -0,0 +1,20 @@
+fileFormatVersion: 2
+guid: 8dc1be91775c4bb469f6b74cef450eaa
+timeCreated: 1510280416
+licenseType: Free
+PluginImporter:
+  serializedVersion: 1
+  iconMap: {}
+  executionOrder: {}
+  isPreloaded: 0
+  platformData:
+    Any:
+      enabled: 0
+      settings: {}
+    Editor:
+      enabled: 1
+      settings:
+        DefaultValueInitialized: true
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 21 - 0
Assets/NuGet/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 Patrick McCarthy
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 8 - 0
Assets/NuGet/LICENSE.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1d9014b99ad06af428514a5902d29ff3
+timeCreated: 1573248500
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/NuGet/README.pdf


+ 8 - 0
Assets/NuGet/README.pdf.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 83c5d2001771f15429a88d67e81366d6
+timeCreated: 1517876157
+licenseType: Free
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 9 - 0
Assets/NuGet/Resources.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 1738075a39a390447b7a620ca6962142
+folderAsset: yes
+timeCreated: 1510280362
+licenseType: Free
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/NuGet/Resources/defaultIcon.png


+ 92 - 0
Assets/NuGet/Resources/defaultIcon.png.meta

@@ -0,0 +1,92 @@
+fileFormatVersion: 2
+guid: eec19781926cd2248b7c9abfde8db555
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 1
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fdcf4455c0f767c49b33f54901da4d2c
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Common.Logging.3.4.1.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f40bc1c677dd7b1439f1ce3f315471aa
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/Common.Logging.3.4.1/.signature.p7s


BIN
Assets/Packages/Common.Logging.3.4.1/Common.Logging.3.4.1.nupkg


+ 7 - 0
Assets/Packages/Common.Logging.3.4.1/Common.Logging.3.4.1.nupkg.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 350b055fc4e367b408330fd91c1a37d1
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Common.Logging.3.4.1/lib.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0be0c64bcff32b74bbb38b948a5b18a2
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Common.Logging.3.4.1/lib/net40.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 81ca221421fa87a47b2b706e49dd9a07
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/Common.Logging.3.4.1/lib/net40/Common.Logging.dll


+ 33 - 0
Assets/Packages/Common.Logging.3.4.1/lib/net40/Common.Logging.dll.meta

@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: d21d1c547c847ce438a51ba4780acf1d
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      Any: 
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      Windows Store Apps: WindowsStoreApps
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2905 - 0
Assets/Packages/Common.Logging.3.4.1/lib/net40/Common.Logging.xml

@@ -0,0 +1,2905 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Common.Logging</name>
+    </assembly>
+    <members>
+        <member name="T:CoverageExcludeAttribute">
+            <summary>
+            Indicates classes or members to be ignored by NCover
+            </summary>
+            <remarks>
+            Note, the key is chosen, because TestDriven.NET uses it as //ea argument to "Test With... Coverage"
+            </remarks>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="T:Common.Logging.ConfigurationException">
+            <summary>
+            The exception that is thrown when a configuration system error has occurred with Common.Logging
+            </summary>
+            <author>Mark Pollack</author>
+        </member>
+        <member name="M:Common.Logging.ConfigurationException.#ctor">
+            <summary>Creates a new instance of the ObjectsException class.</summary>
+        </member>
+        <member name="M:Common.Logging.ConfigurationException.#ctor(System.String)">
+            <summary>
+            Creates a new instance of the ConfigurationException class. with the specified message.
+            </summary>
+            <param name="message">
+            A message about the exception.
+            </param>
+        </member>
+        <member name="M:Common.Logging.ConfigurationException.#ctor(System.String,System.Exception)">
+            <summary>
+            Creates a new instance of the ConfigurationException class with the specified message
+            and root cause.
+            </summary>
+            <param name="message">
+            A message about the exception.
+            </param>
+            <param name="rootCause">
+            The root exception that is being wrapped.
+            </param>
+        </member>
+        <member name="M:Common.Logging.ConfigurationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Creates a new instance of the ConfigurationException class.
+            </summary>
+            <param name="info">
+            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/>
+            that holds the serialized object data about the exception being thrown.
+            </param>
+            <param name="context">
+            The <see cref="T:System.Runtime.Serialization.StreamingContext"/>
+            that contains contextual information about the source or destination.
+            </param>
+        </member>
+        <member name="T:Common.Logging.Configuration.ArgUtils">
+            <summary>
+            Various utility methods for using during factory and logger instance configuration
+            </summary>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="T:Common.Logging.Configuration.ArgUtils.ParseHandler`1">
+            <summary>
+            A delegate converting a string representation into the target type
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.#cctor">
+            <summary>
+            Initialize all members before any of this class' methods can be accessed (avoids beforeFieldInit)
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.RegisterTypeParser``1(Common.Logging.Configuration.ArgUtils.ParseHandler{``0})">
+            <summary>
+            Adds the parser to the list of known type parsers.
+            </summary>
+            <remarks>
+            .NET intrinsic types are pre-registerd: short, int, long, float, double, decimal, bool
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.GetValue(Common.Logging.Configuration.NameValueCollection,System.String)">
+            <summary>
+            Retrieves the named value from the specified <see cref="T:Common.Logging.Configuration.NameValueCollection"/>.
+            </summary>
+            <param name="values">may be null</param>
+            <param name="key">the value's key</param>
+            <returns>if <paramref key="values"/> is not null, the value returned by values[key]. <c>null</c> otherwise.</returns>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.GetValue(Common.Logging.Configuration.NameValueCollection,System.String,System.String)">
+            <summary>
+            Retrieves the named value from the specified <see cref="T:Common.Logging.Configuration.NameValueCollection"/>.
+            </summary>
+            <param name="values">may be null</param>
+            <param name="key">the value's key</param>
+            <param name="defaultValue">the default value, if not found</param>
+            <returns>if <paramref key="values"/> is not null, the value returned by values[key]. <c>null</c> otherwise.</returns>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.Coalesce(System.String[])">
+            <summary>
+            Returns the first nonnull, nonempty value among its arguments.
+            </summary>
+            <remarks>
+            Returns <c>null</c>, if the initial list was null or empty.
+            </remarks>
+            <seealso cref="M:Common.Logging.Configuration.ArgUtils.Coalesce``1(System.Predicate{``0},``0[])"/>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.Coalesce``1(System.Predicate{``0},``0[])">
+            <summary>
+            Returns the first nonnull, nonempty value among its arguments.
+            </summary>
+            <remarks>
+            Also 
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.TryParseEnum``1(``0,System.String)">
+            <summary>
+            Tries parsing <paramref key="stringValue"/> into an enum of the type of <paramref key="defaultValue"/>.
+            </summary>
+            <param name="defaultValue">the default value to return if parsing fails</param>
+            <param name="stringValue">the string value to parse</param>
+            <returns>the successfully parsed value, <paramref key="defaultValue"/> otherwise.</returns>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.TryParse``1(``0,System.String)">
+            <summary>
+            Tries parsing <paramref key="stringValue"/> into the specified return type.
+            </summary>
+            <param name="defaultValue">the default value to return if parsing fails</param>
+            <param name="stringValue">the string value to parse</param>
+            <returns>the successfully parsed value, <paramref key="defaultValue"/> otherwise.</returns>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.AssertNotNull``1(System.String,``0)">
+            <summary>
+            Throws a <see cref="T:System.ArgumentNullException"/> if <paramref key="val"/> is <c>null</c>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.AssertNotNull``1(System.String,``0,System.String,System.Object[])">
+            <summary>
+            Throws a <see cref="T:System.ArgumentNullException"/> if <paramref key="val"/> is <c>null</c>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.AssertIsAssignable``1(System.String,System.Type)">
+            <summary>
+            Throws a <see cref="T:System.ArgumentOutOfRangeException"/> if an object of type <paramref key="valType"/> is not
+            assignable to type <typeparam key="T"></typeparam>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.AssertIsAssignable``1(System.String,System.Type,System.String,System.Object[])">
+            <summary>
+            Throws a <see cref="T:System.ArgumentOutOfRangeException"/> if an object of type <paramref key="valType"/> is not
+            assignable to type <typeparam key="T"></typeparam>.
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Configuration.ArgUtils.Action">
+            <summary>
+            An anonymous action delegate with no arguments and no return value.
+            </summary>
+            <seealso cref="M:Common.Logging.Configuration.ArgUtils.Guard(Common.Logging.Configuration.ArgUtils.Action,System.String,System.Object[])"/>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.Guard(Common.Logging.Configuration.ArgUtils.Action,System.String,System.Object[])">
+            <summary>
+            Ensures any exception thrown by the given <paramref key="action"/> is wrapped with an
+            <see cref="T:Common.Logging.ConfigurationException"/>. 
+            </summary>
+            <remarks>
+            If <paramref key="action"/> already throws a ConfigurationException, it will not be wrapped.
+            </remarks>
+            <param name="action">the action to execute</param>
+            <param name="messageFormat">the message to be set on the thrown <see cref="T:Common.Logging.ConfigurationException"/></param>
+            <param name="args">args to be passed to <see cref="M:System.String.Format(System.String,System.Object[])"/> to format the message</param>
+        </member>
+        <member name="T:Common.Logging.Configuration.ArgUtils.Function`1">
+            <summary>
+            An anonymous action delegate with no arguments and no return value.
+            </summary>
+            <seealso cref="M:Common.Logging.Configuration.ArgUtils.Guard``1(Common.Logging.Configuration.ArgUtils.Function{``0},System.String,System.Object[])"/>
+        </member>
+        <member name="M:Common.Logging.Configuration.ArgUtils.Guard``1(Common.Logging.Configuration.ArgUtils.Function{``0},System.String,System.Object[])">
+            <summary>
+            Ensures any exception thrown by the given <paramref key="function"/> is wrapped with an
+            <see cref="T:Common.Logging.ConfigurationException"/>. 
+            </summary>
+            <remarks>
+            If <paramref key="function"/> already throws a ConfigurationException, it will not be wrapped.
+            </remarks>
+            <param name="function">the action to execute</param>
+            <param name="messageFormat">the message to be set on the thrown <see cref="T:Common.Logging.ConfigurationException"/></param>
+            <param name="args">args to be passed to <see cref="M:System.String.Format(System.String,System.Object[])"/> to format the message</param>
+        </member>
+        <member name="T:Common.Logging.Configuration.DefaultConfigurationReader">
+            <summary>
+            Implementation of <see cref="T:Common.Logging.IConfigurationReader"/> that uses the standard .NET 
+            configuration APIs, ConfigurationSettings in 1.x and ConfigurationManager in 2.0
+            </summary>
+            <author>Mark Pollack</author>
+        </member>
+        <member name="M:Common.Logging.Configuration.DefaultConfigurationReader.GetSection(System.String)">
+            <summary>
+            Parses the configuration section and returns the resulting object.
+            Using the <c>System.Configuration.ConfigurationManager</c>
+            </summary>
+            <param name="sectionName">Name of the configuration section.</param>
+            <returns>
+            Object created by a corresponding <c>IConfigurationSectionHandler"</c>
+            </returns>
+            <remarks>
+            	<p>
+            Primary purpose of this method is to allow us to parse and
+            load configuration sections using the same API regardless
+            of the .NET framework version.
+            </p>
+            </remarks>
+        </member>
+        <member name="T:Common.Logging.Configuration.FactoryAdapterConfiguration">
+            <summary>
+            JSON serializable object representing the configuration of the <see cref="T:Common.Logging.ILoggerFactoryAdapter"/>.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Configuration.FactoryAdapterConfiguration.Type">
+            <summary>
+            Fully qualified type name of a class implementing <see cref="T:Common.Logging.ILoggerFactoryAdapter"/>.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Configuration.FactoryAdapterConfiguration.Arguments">
+            <summary>
+            Optional set of arguments for the constructor of the class specified in <see cref="P:Common.Logging.Configuration.FactoryAdapterConfiguration.Type"/>.
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Configuration.LogConfiguration">
+            <summary>
+            JSON serializable object representing the configuration of the logging subsystem.
+            May be passed to <see cref="M:Common.Logging.LogManager.Configure(Common.Logging.Configuration.LogConfiguration)"/>.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Configuration.LogConfiguration.FactoryAdapter">
+            <summary>
+            Defines the <see cref="T:Common.Logging.ILoggerFactoryAdapter"/> used by the logging subsystem.
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Configuration.LogConfigurationReader">
+            <summary>
+            Implementation of <see cref="T:Common.Logging.IConfigurationReader"/> that uses a supplied
+            <see cref="T:Common.Logging.Configuration.LogConfiguration"/> object.
+            </summary>
+            <author>Brant Burnett</author>
+        </member>
+        <member name="M:Common.Logging.Configuration.LogConfigurationReader.#ctor(Common.Logging.Configuration.LogConfiguration)">
+            <summary>
+            Creates a new <see cref="T:Common.Logging.Configuration.LogConfigurationReader"/> given a <see cref="T:Common.Logging.Configuration.LogConfiguration"/> object.
+            </summary>
+            <param name="configuration"><see cref="T:Common.Logging.Configuration.LogConfiguration"/> to be parsed.</param>
+        </member>
+        <member name="M:Common.Logging.Configuration.LogConfigurationReader.GetSection(System.String)">
+            <summary>
+            Returns a <see cref="T:Common.Logging.Configuration.LogSetting"/> based on the <see cref="T:Common.Logging.Configuration.LogConfiguration"/> supplied
+            in the constructor.
+            </summary>
+            <param name="sectionName">This parameter is not used in this implementation.</param>
+            <returns><see cref="T:Common.Logging.Configuration.LogSetting"/> based on the supplied configuration.</returns>
+        </member>
+        <member name="T:Common.Logging.Configuration.LogSetting">
+            <summary>
+            Container used to hold configuration information from config file.
+            </summary>
+            <author>Gilles Bayon</author>
+        </member>
+        <member name="M:Common.Logging.Configuration.LogSetting.#ctor(System.Type,Common.Logging.Configuration.NameValueCollection)">
+            <summary>
+            
+            </summary>
+            <param name="factoryAdapterType">
+            The <see cref="T:Common.Logging.ILoggerFactoryAdapter" /> type 
+            that will be used for creating <see cref="T:Common.Logging.ILog" />
+            </param>
+            <param name="properties">
+            Additional user supplied properties that are passed to the 
+            <paramref key="factoryAdapterType" />'s constructor.
+            </param>
+        </member>
+        <member name="P:Common.Logging.Configuration.LogSetting.FactoryAdapterType">
+            <summary>
+            The <see cref="T:Common.Logging.ILoggerFactoryAdapter" /> type that will be used for creating <see cref="T:Common.Logging.ILog" />
+            instances.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Configuration.LogSetting.Properties">
+            <summary>
+            Additional user supplied properties that are passed to the <see cref="P:Common.Logging.Configuration.LogSetting.FactoryAdapterType" />'s constructor.
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Configuration.NameValueCollection">
+            <summary>
+            Substitute NameValueCollection in System.Collections.Specialized.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Configuration.NameValueCollection.#ctor">
+            <summary>
+            Creates a new instance of <seealso cref="T:Common.Logging.Configuration.NameValueCollection">NameValueCollection</seealso>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Configuration.NameValueCollection.GetValues(System.String)">
+            <summary>
+            Gets the values (only a single one) for the specified key (configuration name)
+            </summary>
+            <param name="key">The key.</param>
+            <returns>an array with one value, or null if no value exist</returns>
+        </member>
+        <member name="P:Common.Logging.Configuration.NameValueCollection.Item(System.String)">
+            <summary>
+            Gets or sets the value with the specified key.
+            </summary>
+            <value>
+            The value corrsponding to the key, or null if no value exist
+            </value>
+            <param name="key">The key.</param>
+            <returns>value store for the key</returns>
+        </member>
+        <member name="T:Common.Logging.Configuration.NameValueCollectionHelper">
+            <summary>
+            Helper class for working with NameValueCollection
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Configuration.NameValueCollectionHelper.ToCommonLoggingCollection(System.Collections.Specialized.NameValueCollection)">
+            <summary>
+            Convert a <see cref="T:System.Collections.Specialized.NameValueCollection"/> into the corresponding 
+            common logging equivalent <see cref="T:Common.Logging.Configuration.NameValueCollection"/>
+            </summary>
+            <param name="properties">The properties.</param>
+            <returns></returns>
+        </member>
+        <member name="T:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter">
+            <summary>
+            An implementation of <see cref="T:Common.Logging.ILoggerFactoryAdapter"/> that caches loggers handed out by this factory.
+            </summary>
+            <remarks>
+            Implementors just need to override <see cref="M:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter.CreateLogger(System.String)"/>.
+            </remarks>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter.#ctor">
+            <summary>
+            Creates a new instance, the logger cache being case-sensitive.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter.#ctor(System.Boolean)">
+            <summary>
+            Creates a new instance, the logger cache being <paramref key="caseSensitiveLoggerCache"/>.
+            </summary>
+            <param name="caseSensitiveLoggerCache"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter.ClearLoggerCache">
+            <summary>
+            Purges all loggers from cache
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter.CreateLogger(System.String)">
+            <summary>
+            Create the specified named logger instance
+            </summary>
+            <remarks>
+            Derived factories need to implement this method to create the
+            actual logger instance.
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter.GetLogger(System.Type)">
+            <summary>
+            Get a ILog instance by <see cref="T:System.Type" />.
+            </summary>
+            <param name="type">Usually the <see cref="T:System.Type" /> of the current class.</param>
+            <returns>
+            An ILog instance either obtained from the internal cache or created by a call to <see cref="M:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter.CreateLogger(System.String)"/>.
+            </returns>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter.GetLogger(System.String)">
+            <summary>
+            Get a ILog instance by key.
+            </summary>
+            <param name="key">Usually a <see cref="T:System.Type" />'s Name or FullName property.</param>
+            <returns>
+            An ILog instance either obtained from the internal cache or created by a call to <see cref="M:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter.CreateLogger(System.String)"/>.
+            </returns>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter.GetLoggerInternal(System.String)">
+            <summary>
+            Get or create a ILog instance by key.
+            </summary>
+            <param name="key">Usually a <see cref="T:System.Type" />'s Name or FullName property.</param>
+            <returns>
+            An ILog instance either obtained from the internal cache or created by a call to <see cref="M:Common.Logging.Factory.AbstractCachingLoggerFactoryAdapter.CreateLogger(System.String)"/>.
+            </returns>
+        </member>
+        <member name="T:Common.Logging.Factory.AbstractLogger">
+            <summary>
+            Provides base implementation suitable for almost all logger adapters
+            </summary>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="T:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage">
+            <summary>
+            Format message on demand.
+            </summary>
+        </member>
+        <member name="F:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.cachedMessage">
+            <summary>
+            The cached message
+            </summary>
+        </member>
+        <member name="F:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.formatProvider">
+            <summary>
+            The format provider
+            </summary>
+        </member>
+        <member name="F:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.formatMessageCallback">
+            <summary>
+            The format message callback
+            </summary>
+        </member>
+        <member name="F:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.cachedFormat">
+            <summary>
+            The cached format
+            </summary>
+        </member>
+        <member name="F:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.cachedArguments">
+            <summary>
+            The cached arguments
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.#ctor(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage"/> class.
+            </summary>
+            <param name="formatMessageCallback">The format message callback.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.#ctor(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage"/> class.
+            </summary>
+            <param name="formatProvider">The format provider.</param>
+            <param name="formatMessageCallback">The format message callback.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.ToString">
+            <summary>
+            Calls <see cref="F:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.formatMessageCallback"/> and returns result.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.FormatMessageCallbackFormattedMessage.FormatMessage(System.String,System.Object[])">
+            <summary>
+            Formats the message.
+            </summary>
+            <param name="format">The format.</param>
+            <param name="args">The arguments.</param>
+            <returns>System.String.</returns>
+        </member>
+        <member name="T:Common.Logging.Factory.AbstractLogger.StringFormatFormattedMessage">
+            <summary>
+            Format string on demand.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.StringFormatFormattedMessage.#ctor(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Factory.AbstractLogger.StringFormatFormattedMessage"/> class.
+            </summary>
+            <param name="formatProvider">The format provider.</param>
+            <param name="message">The message.</param>
+            <param name="args">The args.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.StringFormatFormattedMessage.ToString">
+            <summary>
+            Runs <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> on supplied arguemnts.
+            </summary>
+            <returns>string</returns>
+        </member>
+        <member name="T:Common.Logging.Factory.AbstractLogger.WriteHandler">
+            <summary>
+            Represents a method responsible for writing a message to the log system.
+            </summary>
+        </member>
+        <member name="F:Common.Logging.Factory.AbstractLogger.Write">
+            <summary>
+            Holds the method for writing a message to the log system.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.#ctor">
+            <summary>
+            Creates a new logger instance using <see cref="M:Common.Logging.Factory.AbstractLogger.WriteInternal(Common.Logging.LogLevel,System.Object,System.Exception)"/> for 
+            writing log events to the underlying log system.
+            </summary>
+            <seealso cref="M:Common.Logging.Factory.AbstractLogger.GetWriteHandler"/>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.GetWriteHandler">
+            <summary>
+            Override this method to use a different method than <see cref="M:Common.Logging.Factory.AbstractLogger.WriteInternal(Common.Logging.LogLevel,System.Object,System.Exception)"/> 
+            for writing log events to the underlying log system.
+            </summary>
+            <remarks>
+            Usually you don't need to override thise method. The default implementation returns
+            <c>null</c> to indicate that the default handler <see cref="M:Common.Logging.Factory.AbstractLogger.WriteInternal(Common.Logging.LogLevel,System.Object,System.Exception)"/> should be 
+            used.
+            </remarks>
+        </member>
+        <member name="P:Common.Logging.Factory.AbstractLogger.IsTraceEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+            <remarks>
+            Override this in your derived class to comply with the underlying logging system
+            </remarks>
+        </member>
+        <member name="P:Common.Logging.Factory.AbstractLogger.IsDebugEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+            <remarks>
+            Override this in your derived class to comply with the underlying logging system
+            </remarks>
+        </member>
+        <member name="P:Common.Logging.Factory.AbstractLogger.IsInfoEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+            <remarks>
+            Override this in your derived class to comply with the underlying logging system
+            </remarks>
+        </member>
+        <member name="P:Common.Logging.Factory.AbstractLogger.IsWarnEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+            <remarks>
+            Override this in your derived class to comply with the underlying logging system
+            </remarks>
+        </member>
+        <member name="P:Common.Logging.Factory.AbstractLogger.IsErrorEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+            <remarks>
+            Override this in your derived class to comply with the underlying logging system
+            </remarks>
+        </member>
+        <member name="P:Common.Logging.Factory.AbstractLogger.IsFatalEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+            <remarks>
+            Override this in your derived class to comply with the underlying logging system
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.WriteInternal(Common.Logging.LogLevel,System.Object,System.Exception)">
+            <summary>
+            Actually sends the message to the underlying log system.
+            </summary>
+            <param name="level">the level of this log event.</param>
+            <param name="message">the message to log</param>
+            <param name="exception">the exception to log (may be null)</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Trace(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Trace(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Trace"/> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.TraceFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.TraceFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.TraceFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.TraceFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Trace(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Trace(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Trace(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Trace(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Debug(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Debug(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Debug"/> level including
+            the stack Debug of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack Debug.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.DebugFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.DebugFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.DebugFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.DebugFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Debug(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Debug(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Debug.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Debug(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Debug(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Debug.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Info(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Info(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Info"/> level including
+            the stack Info of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack Info.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.InfoFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.InfoFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.InfoFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.InfoFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Info(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Info(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Info.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Info(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Info(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Info.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Warn(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Warn(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Warn"/> level including
+            the stack Warn of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack Warn.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.WarnFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting Information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.WarnFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.WarnFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.WarnFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Warn(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Warn(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Warn.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Warn(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Warn(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Warn.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Error(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Error(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Error"/> level including
+            the stack Error of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack Error.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.ErrorFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting Errorrmation.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.ErrorFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting Errorrmation.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.ErrorFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.ErrorFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Error(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Error(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Error.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Error(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Error(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Error.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Fatal(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Fatal(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level including
+            the stack Fatal of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack Fatal.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.FatalFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting Fatalrmation.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.FatalFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting Fatalrmation.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.FatalFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.FatalFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Fatal(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Fatal(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Fatal.</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Fatal(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Factory.AbstractLogger.Fatal(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Fatal.</param>
+        </member>
+        <member name="P:Common.Logging.Factory.AbstractLogger.GlobalVariablesContext">
+            <summary>
+            Returns the global context for variables
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Factory.AbstractLogger.ThreadVariablesContext">
+            <summary>
+            Returns the thread-specific context for variables
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Factory.AbstractLogger.NestedThreadVariablesContext">
+            <summary>
+            Returns the thread-specific context for nested variables (for NDC, eg.)
+            </summary>
+        </member>
+        <member name="T:Common.Logging.LogManager">
+            <summary>
+            Use the LogManager's <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/> or <see cref="M:Common.Logging.LogManager.GetLogger(System.Type)"/> 
+            methods to obtain <see cref="T:Common.Logging.ILog"/> instances for logging.
+            </summary>
+            <remarks>
+            For configuring the underlying log system using application configuration, see the example 
+            at <c>System.Configuration.ConfigurationManager</c>
+            For configuring programmatically, see the example section below.
+            </remarks>
+            <example>
+            The example below shows the typical use of LogManager to obtain a reference to a logger
+            and log an exception:
+            <code>
+            
+            ILog log = LogManager.GetLogger(this.GetType());
+            ...
+            try 
+            { 
+              /* .... */ 
+            }
+            catch(Exception ex)
+            {
+              log.ErrorFormat("Hi {0}", ex, "dude");
+            }
+            
+            </code>
+            The example below shows programmatic configuration of the underlying log system:
+            <code>
+            
+            // create properties
+            NameValueCollection properties = new NameValueCollection();
+            properties[&quot;showDateTime&quot;] = &quot;true&quot;;
+            
+            // set Adapter
+            Common.Logging.LogManager.Adapter = new 
+            Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter(properties);
+            
+            </code>
+            </example>
+            <seealso cref="T:Common.Logging.ILog"/>
+            <seealso cref="P:Common.Logging.LogManager.Adapter"/>
+            <seealso cref="T:Common.Logging.ILoggerFactoryAdapter"/>
+            <author>Gilles Bayon</author>
+        </member>
+        <member name="P:Common.Logging.LogManager.COMMON_LOGGING_SECTION">
+            <summary>
+            The key of the default configuration section to read settings from.
+            </summary>
+            <remarks>
+            You can always change the source of your configuration settings by setting another <see cref="T:Common.Logging.IConfigurationReader"/> instance
+            on <see cref="P:Common.Logging.LogManager.ConfigurationReader"/>.
+            </remarks>
+        </member>
+        <member name="P:Common.Logging.LogManager.Common#Logging#ILogManager#COMMON_LOGGING_SECTION">
+            <summary>
+            The key of the default configuration section to read settings from.
+            </summary>
+            <remarks>
+            You can always change the source of your configuration settings by setting another <see cref="T:Common.Logging.IConfigurationReader"/> instance
+            on <see cref="P:Common.Logging.LogManager.ConfigurationReader"/>.
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.LogManager.#cctor">
+            <summary>
+            Performs static 1-time init of LogManager by calling <see cref="M:Common.Logging.LogManager.Reset"/>
+            </summary>
+        </member>
+        <member name="M:Common.Logging.LogManager.Reset">
+            <summary>
+            Reset the <see cref="N:Common.Logging" /> infrastructure to its default settings. This means, that configuration settings
+            will be re-read from section <c>&lt;common/logging&gt;</c> of your <c>app.config</c>.
+            </summary>
+            <remarks>
+            This is mainly used for unit testing, you wouldn't normally use this in your applications.<br/>
+            <b>Note:</b><see cref="T:Common.Logging.ILog"/> instances already handed out from this LogManager are not(!) affected. 
+            Resetting LogManager only affects new instances being handed out.
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.LogManager.Reset(Common.Logging.IConfigurationReader)">
+            <summary>
+            Reset the <see cref="N:Common.Logging" /> infrastructure to its default settings. This means, that configuration settings
+            will be re-read from section <c>&lt;common/logging&gt;</c> of your <c>app.config</c>.
+            </summary>
+            <remarks>
+            This is mainly used for unit testing, you wouldn't normally use this in your applications.<br/>
+            <b>Note:</b><see cref="T:Common.Logging.ILog"/> instances already handed out from this LogManager are not(!) affected. 
+            Resetting LogManager only affects new instances being handed out.
+            </remarks>
+            <param name="reader">
+            the <see cref="T:Common.Logging.IConfigurationReader"/> instance to obtain settings for 
+            re-initializing the LogManager.
+            </param>
+        </member>
+        <member name="P:Common.Logging.LogManager.ConfigurationReader">
+            <summary>
+            Gets the configuration reader used to initialize the LogManager.
+            </summary>
+            <remarks>Primarily used for testing purposes but maybe useful to obtain configuration
+            information from some place other than the .NET application configuration file.</remarks>
+            <value>The configuration reader.</value>
+        </member>
+        <member name="P:Common.Logging.LogManager.Common#Logging#ILogManager#ConfigurationReader">
+            <summary>
+            Gets the configuration reader used to initialize the LogManager.
+            </summary>
+            <remarks>Primarily used for testing purposes but maybe useful to obtain configuration
+            information from some place other than the .NET application configuration file.</remarks>
+            <value>The configuration reader.</value>
+        </member>
+        <member name="M:Common.Logging.LogManager.Configure(Common.Logging.Configuration.LogConfiguration)">
+            <summary>
+            Reset the <see cref="N:Common.Logging" /> infrastructure to the provided configuration.
+            </summary>
+            <remarks>
+            <b>Note:</b><see cref="T:Common.Logging.ILog"/> instances already handed out from this LogManager are not(!) affected.
+            Configuring LogManager only affects new instances being handed out.
+            </remarks>
+            <param name="configuration">
+            the <see cref="T:Common.Logging.Configuration.LogConfiguration"/> containing settings for
+            re-initializing the LogManager.
+            </param>
+        </member>
+        <member name="P:Common.Logging.LogManager.Adapter">
+            <summary>
+            Gets or sets the adapter.
+            </summary>
+            <value>The adapter.</value>
+        </member>
+        <member name="P:Common.Logging.LogManager.Common#Logging#ILogManager#Adapter">
+            <summary>
+            Gets or sets the adapter.
+            </summary>
+            <value>The adapter.</value>
+        </member>
+        <member name="M:Common.Logging.LogManager.GetCurrentClassLogger">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.Type)"/>
+            on the currently configured <see cref="P:Common.Logging.LogManager.Adapter"/> using the type of the calling class.
+            </summary>
+            <remarks>
+            This method needs to inspect the <see cref="T:System.Diagnostics.StackTrace"/> in order to determine the calling 
+            class. This of course comes with a performance penalty, thus you shouldn't call it too
+            often in your application.
+            </remarks>
+            <seealso cref="M:Common.Logging.LogManager.GetLogger(System.Type)"/>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.LogManager.Adapter"/></returns>
+        </member>
+        <member name="M:Common.Logging.LogManager.Common#Logging#ILogManager#GetCurrentClassLogger">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.Type)"/>
+            on the currently configured <see cref="P:Common.Logging.LogManager.Adapter"/> using the type of the calling class.
+            </summary>
+            <remarks>
+            This method needs to inspect the <see cref="T:System.Diagnostics.StackTrace"/> in order to determine the calling 
+            class. This of course comes with a performance penalty, thus you shouldn't call it too
+            often in your application.
+            </remarks>
+            <seealso cref="M:Common.Logging.LogManager.GetLogger(System.Type)"/>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.LogManager.Adapter"/></returns>
+        </member>
+        <member name="M:Common.Logging.LogManager.GetLogger``1">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.Type)"/>
+            on the currently configured <see cref="P:Common.Logging.LogManager.Adapter"/> using the specified type.
+            </summary>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.LogManager.Adapter"/></returns>
+        </member>
+        <member name="M:Common.Logging.LogManager.Common#Logging#ILogManager#GetLogger``1">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.Type)"/>
+            on the currently configured <see cref="P:Common.Logging.LogManager.Adapter"/> using the specified type.
+            </summary>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.LogManager.Adapter"/></returns>
+        </member>
+        <member name="M:Common.Logging.LogManager.GetLogger(System.Type)">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.Type)"/>
+            on the currently configured <see cref="P:Common.Logging.LogManager.Adapter"/> using the specified type.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.LogManager.Adapter"/></returns>
+        </member>
+        <member name="M:Common.Logging.LogManager.Common#Logging#ILogManager#GetLogger(System.Type)">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.Type)"/>
+            on the currently configured <see cref="P:Common.Logging.LogManager.Adapter"/> using the specified type.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.LogManager.Adapter"/></returns>
+        </member>
+        <member name="M:Common.Logging.LogManager.GetLogger(System.String)">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.String)"/>
+            on the currently configured <see cref="P:Common.Logging.LogManager.Adapter"/> using the specified key.
+            </summary>
+            <param name="key">The key.</param>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.LogManager.Adapter"/></returns>
+        </member>
+        <member name="M:Common.Logging.LogManager.Common#Logging#ILogManager#GetLogger(System.String)">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.String)"/>
+            on the currently configured <see cref="P:Common.Logging.LogManager.Adapter"/> using the specified key.
+            </summary>
+            <param name="key">The key.</param>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.LogManager.Adapter"/></returns>
+        </member>
+        <member name="M:Common.Logging.LogManager.BuildLoggerFactoryAdapter">
+            <summary>
+            Builds the logger factory adapter.
+            </summary>
+            <returns>a factory adapter instance. Is never <c>null</c>.</returns>
+        </member>
+        <member name="M:Common.Logging.LogManager.BuildLoggerFactoryAdapterFromLogSettings(Common.Logging.Configuration.LogSetting)">
+            <summary>
+            Builds a <see cref="T:Common.Logging.ILoggerFactoryAdapter"/> instance from the given <see cref="T:Common.Logging.Configuration.LogSetting"/>
+            using <see cref="T:System.Activator"/>.
+            </summary>
+            <param name="setting"></param>
+            <returns>the <see cref="T:Common.Logging.ILoggerFactoryAdapter"/> instance. Is never <c>null</c></returns>
+        </member>
+        <member name="T:Common.Logging.Simple.AbstractSimpleLogger">
+            <summary>
+            Abstract class providing a standard implementation of simple loggers.
+            </summary>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.Name">
+            <summary>
+            The key of the logger.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.ShowLevel">
+            <summary>
+            Include the current log level in the log message.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.ShowDateTime">
+            <summary>
+            Include the current time in the log message.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.ShowLogName">
+            <summary>
+            Include the instance key in the log message.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.CurrentLogLevel">
+            <summary>
+            The current logging threshold. Messages recieved that are beneath this threshold will not be logged.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.DateTimeFormat">
+            <summary>
+            The date and time format to use in the log message.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.HasDateTimeFormat">
+            <summary>
+            Determines Whether <see cref="P:Common.Logging.Simple.AbstractSimpleLogger.DateTimeFormat"/> is set.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.AbstractSimpleLogger.#ctor(System.String,Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String)">
+            <summary>
+            Creates and initializes a the simple logger.
+            </summary>
+            <param name="logName">The key, usually type key of the calling class, of the logger.</param>
+            <param name="logLevel">The current logging threshold. Messages recieved that are beneath this threshold will not be logged.</param>
+            <param name="showlevel">Include level in the log message.</param>
+            <param name="showDateTime">Include the current time in the log message.</param>
+            <param name="showLogName">Include the instance key in the log message.</param>
+            <param name="dateTimeFormat">The date and time format to use in the log message.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.AbstractSimpleLogger.FormatOutput(System.Text.StringBuilder,Common.Logging.LogLevel,System.Object,System.Exception)">
+            <summary>
+            Appends the formatted message to the specified <see cref="T:System.Text.StringBuilder"/>.
+            </summary>
+            <param name="stringBuilder">the <see cref="T:System.Text.StringBuilder"/> that receíves the formatted message.</param>
+            <param name="level"></param>
+            <param name="message"></param>
+            <param name="e"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.AbstractSimpleLogger.IsLevelEnabled(Common.Logging.LogLevel)">
+            <summary>
+            Determines if the given log level is currently enabled.
+            </summary>
+            <param name="level"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.IsTraceEnabled">
+            <summary>
+            Returns <see langword="true" /> if the current <see cref="T:Common.Logging.LogLevel" /> is greater than or
+            equal to <see cref="F:Common.Logging.LogLevel.Trace" />. If it is, all messages will be sent to <see cref="P:System.Console.Out" />.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.IsDebugEnabled">
+            <summary>
+            Returns <see langword="true" /> if the current <see cref="T:Common.Logging.LogLevel" /> is greater than or
+            equal to <see cref="F:Common.Logging.LogLevel.Debug" />. If it is, all messages will be sent to <see cref="P:System.Console.Out" />.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.IsInfoEnabled">
+            <summary>
+            Returns <see langword="true" /> if the current <see cref="T:Common.Logging.LogLevel" /> is greater than or
+            equal to <see cref="F:Common.Logging.LogLevel.Info" />. If it is, only messages with a <see cref="T:Common.Logging.LogLevel" /> of
+            <see cref="F:Common.Logging.LogLevel.Info" />, <see cref="F:Common.Logging.LogLevel.Warn" />, <see cref="F:Common.Logging.LogLevel.Error" />, and 
+            <see cref="F:Common.Logging.LogLevel.Fatal" /> will be sent to <see cref="P:System.Console.Out" />.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.IsWarnEnabled">
+            <summary>
+            Returns <see langword="true" /> if the current <see cref="T:Common.Logging.LogLevel" /> is greater than or
+            equal to <see cref="F:Common.Logging.LogLevel.Warn" />. If it is, only messages with a <see cref="T:Common.Logging.LogLevel" /> of
+            <see cref="F:Common.Logging.LogLevel.Warn" />, <see cref="F:Common.Logging.LogLevel.Error" />, and <see cref="F:Common.Logging.LogLevel.Fatal" /> 
+            will be sent to <see cref="P:System.Console.Out" />.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.IsErrorEnabled">
+            <summary>
+            Returns <see langword="true" /> if the current <see cref="T:Common.Logging.LogLevel" /> is greater than or
+            equal to <see cref="F:Common.Logging.LogLevel.Error" />. If it is, only messages with a <see cref="T:Common.Logging.LogLevel" /> of
+            <see cref="F:Common.Logging.LogLevel.Error" /> and <see cref="F:Common.Logging.LogLevel.Fatal" /> will be sent to <see cref="P:System.Console.Out" />.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLogger.IsFatalEnabled">
+            <summary>
+            Returns <see langword="true" /> if the current <see cref="T:Common.Logging.LogLevel" /> is greater than or
+            equal to <see cref="F:Common.Logging.LogLevel.Fatal" />. If it is, only messages with a <see cref="T:Common.Logging.LogLevel" /> of
+            <see cref="F:Common.Logging.LogLevel.Fatal" /> will be sent to <see cref="P:System.Console.Out" />.
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter">
+            <summary>
+            Base factory implementation for creating simple <see cref="T:Common.Logging.ILog" /> instances.
+            </summary>
+            <remarks>Default settings are LogLevel.All, showDateTime = true, showLogName = true, and no DateTimeFormat.
+            The keys in the NameValueCollection to configure this adapter are the following
+            <list type="bullet">
+                <item>level</item>
+                <item>showDateTime</item>
+                <item>showLogName</item>
+                <item>dateTimeFormat</item>
+            </list>
+            <example>
+            Here is an example how to implement your own logging adapter:
+            <code>
+            public class ConsoleOutLogger : AbstractSimpleLogger
+            {
+              public ConsoleOutLogger(string logName, LogLevel logLevel, bool showLevel, bool showDateTime, 
+            bool showLogName, string dateTimeFormat)
+                  : base(logName, logLevel, showLevel, showDateTime, showLogName, dateTimeFormat)
+              {
+              }
+            
+              protected override void WriteInternal(LogLevel level, object message, Exception e)
+              {
+                  // Use a StringBuilder for better performance
+                  StringBuilder sb = new StringBuilder();
+                  FormatOutput(sb, level, message, e);
+            
+                  // Print to the appropriate destination
+                  Console.Out.WriteLine(sb.ToString());
+              }
+            }
+            
+            public class ConsoleOutLoggerFactoryAdapter : AbstractSimpleLoggerFactoryAdapter
+            {
+              public ConsoleOutLoggerFactoryAdapter(NameValueCollection properties)
+                  : base(properties)
+              { }
+            
+              protected override ILog CreateLogger(string key, LogLevel level, bool showLevel, bool 
+            showDateTime, bool showLogName, string dateTimeFormat)
+              {
+                  ILog log = new ConsoleOutLogger(key, level, showLevel, showDateTime, showLogName, 
+            dateTimeFormat);
+                  return log;
+              }
+            }
+            </code>
+            </example>
+            </remarks>
+            <author>Gilles Bayon</author>
+            <author>Mark Pollack</author>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter.Level">
+            <summary>
+            The default <see cref="T:Common.Logging.LogLevel"/> to use when creating new <see cref="T:Common.Logging.ILog"/> instances.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter.ShowLevel">
+            <summary>
+            The default setting to use when creating new <see cref="T:Common.Logging.ILog"/> instances.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter.ShowDateTime">
+            <summary>
+            The default setting to use when creating new <see cref="T:Common.Logging.ILog"/> instances.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter.ShowLogName">
+            <summary>
+            The default setting to use when creating new <see cref="T:Common.Logging.ILog"/> instances.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter.DateTimeFormat">
+            <summary>
+            The default setting to use when creating new <see cref="T:Common.Logging.ILog"/> instances.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter.#ctor(Common.Logging.Configuration.NameValueCollection)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter"/> class.
+            </summary>
+            <remarks>
+            Looks for level, showDateTime, showLogName, dateTimeFormat items from 
+            <paramref key="properties" /> for use when the GetLogger methods are called.
+            <c>System.Configuration.ConfigurationManager</c> for more information on how to use the 
+            standard .NET application configuration file (App.config/Web.config) 
+            to configure this adapter.
+            </remarks>
+            <param name="properties">The key value collection, typically specified by the user in 
+            a configuration section named common/logging.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter.#ctor(Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter"/> class with 
+            default settings for the loggers created by this factory.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter.CreateLogger(System.String)">
+            <summary>
+            Create the specified logger instance
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter.CreateLogger(System.String,Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String)">
+            <summary>
+            Derived factories need to implement this method to create the
+            actual logger instance.
+            </summary>
+            <returns>a new logger instance. Must never be <c>null</c>!</returns>
+        </member>
+        <member name="T:Common.Logging.Simple.CapturingLogger">
+            <summary>
+            A logger created by <see cref="T:Common.Logging.Simple.CapturingLoggerFactoryAdapter"/> that 
+            sends all log events to the owning adapter's <see cref="M:Common.Logging.Simple.CapturingLoggerFactoryAdapter.AddEvent(Common.Logging.Simple.CapturingLoggerEvent)"/>
+            </summary>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="F:Common.Logging.Simple.CapturingLogger.Owner">
+            <summary>
+            The adapter that created this logger instance.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.CapturingLogger.LastEvent">
+            <summary>
+            Holds the last log event received from any of this adapter's loggers.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CapturingLogger.Clear">
+            <summary>
+            Clears all captured events
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CapturingLogger.ClearLastEvent">
+            <summary>
+            Resets the <see cref="P:Common.Logging.Simple.CapturingLogger.LastEvent"/> to <c>null</c>.
+            </summary>
+        </member>
+        <member name="F:Common.Logging.Simple.CapturingLogger.LoggerEvents">
+            <summary>
+            Holds the list of logged events.
+            </summary>
+            <remarks>
+            To access this collection in a multithreaded application, put a lock on the list instance.
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.Simple.CapturingLogger.AddEvent(Common.Logging.Simple.CapturingLoggerEvent)">
+            <summary>
+            <see cref="T:Common.Logging.Simple.CapturingLogger"/> instances send their captured log events to this method.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CapturingLogger.#ctor(Common.Logging.Simple.CapturingLoggerFactoryAdapter,System.String)">
+            <summary>
+            Create a new logger instance.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CapturingLogger.WriteInternal(Common.Logging.LogLevel,System.Object,System.Exception)">
+            <summary>
+            Create a new <see cref="T:Common.Logging.Simple.CapturingLoggerEvent"/> and send it to <see cref="M:Common.Logging.Simple.CapturingLoggerFactoryAdapter.AddEvent(Common.Logging.Simple.CapturingLoggerEvent)"/>
+            </summary>
+            <param name="level"></param>
+            <param name="message"></param>
+            <param name="exception"></param>
+        </member>
+        <member name="T:Common.Logging.Simple.CapturingLoggerEvent">
+            <summary>
+            A logging event captured by <see cref="T:Common.Logging.Simple.CapturingLogger"/>
+            </summary>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="F:Common.Logging.Simple.CapturingLoggerEvent.Source">
+            <summary>
+            The logger that logged this event
+            </summary>
+        </member>
+        <member name="F:Common.Logging.Simple.CapturingLoggerEvent.Level">
+            <summary>
+            The level used to log this event
+            </summary>
+        </member>
+        <member name="F:Common.Logging.Simple.CapturingLoggerEvent.MessageObject">
+            <summary>
+            The raw message object
+            </summary>
+        </member>
+        <member name="F:Common.Logging.Simple.CapturingLoggerEvent.Exception">
+            <summary>
+            A logged exception
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.CapturingLoggerEvent.RenderedMessage">
+            <summary>
+            Retrieves the formatted message text
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CapturingLoggerEvent.#ctor(Common.Logging.Simple.CapturingLogger,Common.Logging.LogLevel,System.Object,System.Exception)">
+            <summary>
+            Create a new event instance
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Simple.CapturingLoggerFactoryAdapter">
+            <summary>
+            An adapter, who's loggers capture all log events and send them to <see cref="M:Common.Logging.Simple.CapturingLoggerFactoryAdapter.AddEvent(Common.Logging.Simple.CapturingLoggerEvent)"/>. 
+            Retrieve the list of log events from <see cref="F:Common.Logging.Simple.CapturingLoggerFactoryAdapter.LoggerEvents"/>.
+            </summary>
+            <remarks>
+            This logger factory is mainly for debugging and test purposes.
+            <example>
+            This is an example how you might use this adapter for testing:
+            <code>
+            // configure for capturing
+            CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
+            LogManager.Adapter = adapter;
+            
+            // reset capture state
+            adapter.Clear();
+            // log something
+            ILog log = LogManager.GetCurrentClassLogger();
+            log.DebugFormat(&quot;Current Time:{0}&quot;, DateTime.Now);
+            
+            // check logged data
+            Assert.AreEqual(1, adapter.LoggerEvents.Count);
+            Assert.AreEqual(LogLevel.Debug, adapter.LastEvent.Level);
+            </code>
+            </example>
+            </remarks>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="P:Common.Logging.Simple.CapturingLoggerFactoryAdapter.LastEvent">
+            <summary>
+            Holds the last log event received from any of this adapter's loggers.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CapturingLoggerFactoryAdapter.Clear">
+            <summary>
+            Clears all captured events
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CapturingLoggerFactoryAdapter.ClearLastEvent">
+            <summary>
+            Resets the <see cref="P:Common.Logging.Simple.CapturingLoggerFactoryAdapter.LastEvent"/> to <c>null</c>.
+            </summary>
+        </member>
+        <member name="F:Common.Logging.Simple.CapturingLoggerFactoryAdapter.LoggerEvents">
+            <summary>
+            Holds the list of logged events.
+            </summary>
+            <remarks>
+            To access this collection in a multithreaded application, put a lock on the list instance.
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.Simple.CapturingLoggerFactoryAdapter.AddEvent(Common.Logging.Simple.CapturingLoggerEvent)">
+            <summary>
+            <see cref="T:Common.Logging.Simple.CapturingLogger"/> instances send their captured log events to this method.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CapturingLoggerFactoryAdapter.GetLogger(System.Type)">
+            <summary>
+            Get a <see cref="T:Common.Logging.Simple.CapturingLogger"/> instance for the given type.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CapturingLoggerFactoryAdapter.GetLogger(System.String)">
+            <summary>
+            Get a <see cref="T:Common.Logging.Simple.CapturingLogger"/> instance for the given key.
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Simple.DebugOutLogger">
+            <summary>
+            Sends log messages to <see cref="T:System.Diagnostics.Debug" />.
+            </summary>
+            <author>Gilles Bayon</author>
+        </member>
+        <member name="M:Common.Logging.Simple.DebugOutLogger.#ctor(System.String,Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String)">
+            <summary>
+            Creates and initializes a logger that writes messages to <see cref="T:System.Diagnostics.Debug" />.
+            </summary>
+            <param name="logName">The key, usually type key of the calling class, of the logger.</param>
+            <param name="logLevel">The current logging threshold. Messages received that are beneath this threshold will not be logged.</param>
+            <param name="showLevel">Include the current log level in the log message.</param>
+            <param name="showDateTime">Include the current time in the log message.</param>
+            <param name="showLogName">Include the instance key in the log message.</param>
+            <param name="dateTimeFormat">The date and time format to use in the log message.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.DebugOutLogger.WriteInternal(Common.Logging.LogLevel,System.Object,System.Exception)">
+            <summary>
+            Do the actual logging by constructing the log message using a <see cref="T:System.Text.StringBuilder" /> then
+            sending the output to Debug >> Out" />.
+            </summary>
+            <param name="level">The <see cref="T:Common.Logging.LogLevel" /> of the message.</param>
+            <param name="message">The log message.</param>
+            <param name="e">An optional <see cref="T:System.Exception" /> associated with the message.</param>
+        </member>
+        <member name="T:Common.Logging.Simple.DebugLoggerFactoryAdapter">
+            <summary>
+            Factory for creating <see cref="T:Common.Logging.ILog" /> instances that write data using <see cref="M:System.Diagnostics.Debug.WriteLine(System.String)" />.
+            </summary>
+            <remarks>
+            <example>
+            Below is an example how to configure this adapter:
+            <code>
+            &lt;configuration&gt;
+            
+              &lt;configSections&gt;
+                &lt;sectionGroup key=&quot;common&quot;&gt;
+                  &lt;section key=&quot;logging&quot;
+                           type=&quot;Common.Logging.ConfigurationSectionHandler, Common.Logging&quot;
+                           requirePermission=&quot;false&quot; /&gt;
+                &lt;/sectionGroup&gt;
+              &lt;/configSections&gt;
+            
+              &lt;common&gt;
+                &lt;logging&gt;
+                  &lt;factoryAdapter type=&quot;Common.Logging.Simple.DebugLoggerFactoryAdapter, Common.Logging&quot;&gt;
+                    &lt;arg key=&quot;level&quot; value=&quot;ALL&quot; /&gt;
+                  &lt;/factoryAdapter&gt;
+                &lt;/logging&gt;
+              &lt;/common&gt;
+            
+            &lt;/configuration&gt;
+            </code>
+            </example>
+            </remarks>
+            <seealso cref="T:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter"/>
+            <author>Gilles Bayon</author>
+            <author>Mark Pollack</author>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="M:Common.Logging.Simple.DebugLoggerFactoryAdapter.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.DebugLoggerFactoryAdapter"/> class using default 
+            settings.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.DebugLoggerFactoryAdapter.#ctor(Common.Logging.Configuration.NameValueCollection)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.DebugLoggerFactoryAdapter"/> class.
+            </summary>
+            <remarks>
+            Looks for level, showDateTime, showLogName, dateTimeFormat items from 
+            <paramref key="properties" /> for use when the GetLogger methods are called.
+            <see cref="T:System.Configuration.ConfigurationManager"/> for more information on how to use the 
+            standard .NET application configuraiton file (App.config/Web.config) 
+            to configure this adapter.
+            </remarks>
+            <param name="properties">The key value collection, typically specified by the user in 
+            a configuration section named common/logging.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.DebugLoggerFactoryAdapter.#ctor(Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter"/> class with 
+            default settings for the loggers created by this factory.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.DebugLoggerFactoryAdapter.CreateLogger(System.String,Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String)">
+            <summary>
+            Creates a new <see cref="T:Common.Logging.Simple.DebugOutLogger"/> instance.
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Simple.ExceptionFormatter">
+            <summary>
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Simple.NoOpLogger">
+            <summary>
+            Silently ignores all log messages.
+            </summary>
+            <author>Gilles Bayon</author>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="P:Common.Logging.Simple.NoOpLogger.IsTraceEnabled">
+            <summary>
+            Always returns <see langword="false" />.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.NoOpLogger.IsDebugEnabled">
+            <summary>
+            Always returns <see langword="false" />.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.NoOpLogger.IsInfoEnabled">
+            <summary>
+            Always returns <see langword="false" />.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.NoOpLogger.IsWarnEnabled">
+            <summary>
+            Always returns <see langword="false" />.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.NoOpLogger.IsErrorEnabled">
+            <summary>
+            Always returns <see langword="false" />.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.NoOpLogger.IsFatalEnabled">
+            <summary>
+            Always returns <see langword="false" />.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Trace(System.Object)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Trace(System.Object,System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+            <param name="e"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.TraceFormat(System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.TraceFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.TraceFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.TraceFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Trace(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Trace(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Trace(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Trace(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Debug(System.Object)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Debug(System.Object,System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+            <param name="e"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.DebugFormat(System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.DebugFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.DebugFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.DebugFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Debug(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Debug(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Debug.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Debug(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Debug(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Debug.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Info(System.Object)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Info(System.Object,System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+            <param name="e"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.InfoFormat(System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.InfoFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.InfoFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.InfoFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Info(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Info(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Info.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Info(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Info(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Info.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Warn(System.Object)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Warn(System.Object,System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+            <param name="e"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.WarnFormat(System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.WarnFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.WarnFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting Information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.WarnFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting Information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Warn(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Warn(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Warn.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Warn(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Warn(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Warn.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Error(System.Object)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Error(System.Object,System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+            <param name="e"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.ErrorFormat(System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.ErrorFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.ErrorFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting Errorrmation.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.ErrorFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting Errorrmation.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Error(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Error(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Error.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Error(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Error(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Error.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Fatal(System.Object)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Fatal(System.Object,System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="message"></param>
+            <param name="e"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.FatalFormat(System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.FatalFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.FatalFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting Fatalrmation.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.FatalFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting Fatalrmation.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of message format arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Fatal(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Fatal(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Fatal.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Fatal(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLogger.Fatal(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Ignores message.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Fatal.</param>
+        </member>
+        <member name="P:Common.Logging.Simple.NoOpLogger.GlobalVariablesContext">
+            <summary>
+            Returns the global context for variables
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.NoOpLogger.ThreadVariablesContext">
+            <summary>
+            Returns the thread-specific context for variables
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.NoOpLogger.NestedThreadVariablesContext">
+            <summary>
+            Returns the thread-specific context for variables
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Simple.NoOpLoggerFactoryAdapter">
+            <summary>
+            Factory for creating <see cref="T:Common.Logging.ILog" /> instances that silently ignores
+            logging requests.
+            </summary>
+            <remarks>
+            This logger adapter is the default used by Common.Logging if unconfigured. Using this logger adapter is the most efficient
+            way to suppress any logging output.
+            <example>
+            Below is an example how to configure this adapter:
+            <code>
+            &lt;configuration&gt;
+            
+              &lt;configSections&gt;
+                &lt;sectionGroup key=&quot;common&quot;&gt;
+                  &lt;section key=&quot;logging&quot;
+                           type=&quot;Common.Logging.ConfigurationSectionHandler, Common.Logging&quot;
+                           requirePermission=&quot;false&quot; /&gt;
+                &lt;/sectionGroup&gt;
+              &lt;/configSections&gt;
+            
+              &lt;common&gt;
+                &lt;logging&gt;
+                  &lt;factoryAdapter type=&quot;Common.Logging.Simple.NoOpLoggerFactoryAdapter, Common.Logging&quot;&gt;
+                    &lt;arg key=&quot;level&quot; value=&quot;ALL&quot; /&gt;
+                  &lt;/factoryAdapter&gt;
+                &lt;/logging&gt;
+              &lt;/common&gt;
+            
+            &lt;/configuration&gt;
+            </code>
+            </example>
+            </remarks>
+            <author>Gilles Bayon</author>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLoggerFactoryAdapter.#ctor">
+            <summary>
+            Constructor
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLoggerFactoryAdapter.#ctor(Common.Logging.Configuration.NameValueCollection)">
+            <summary>
+            Constructor
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLoggerFactoryAdapter.GetLogger(System.Type)">
+            <summary>
+            Get a ILog instance by type 
+            </summary>
+            <param name="type"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpLoggerFactoryAdapter.Common#Logging#ILoggerFactoryAdapter#GetLogger(System.String)">
+            <summary>
+            Get a ILog instance by type key 
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Common.Logging.Simple.NoOpNestedVariablesContext">
+            <summary>
+            A null-functionality implementation of <see cref="T:Common.Logging.INestedVariablesContext" />
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpNestedVariablesContext.Push(System.String)">
+            <summary>
+            Ignore the push
+            </summary>
+            <param name="text"></param>
+            <returns>A NoOpDisposable</returns>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpNestedVariablesContext.Pop">
+            <summary>
+            Nothing to pop
+            </summary>
+            <returns>a Null string value</returns>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpNestedVariablesContext.Clear">
+            <summary>
+            Clears the context variables
+            </summary>
+        </member>
+        <member name="P:Common.Logging.Simple.NoOpNestedVariablesContext.HasItems">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Simple.NoOpVariablesContext">
+            <summary>
+            A null-functionality implementation of <see cref="T:Common.Logging.IVariablesContext" />
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpVariablesContext.Set(System.String,System.Object)">
+            <summary>
+            Sets the value of a new or existing variable within the context
+            </summary>
+            <param name="key">The key of the variable that is to be added</param>
+            <param name="value">The value to add</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpVariablesContext.Get(System.String)">
+            <summary>
+            Gets the value of a variable within the context
+            </summary>
+            <param name="key">The key of the variable to get</param>
+            <returns>The value or null if not found</returns>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpVariablesContext.Contains(System.String)">
+            <summary>
+            Checks if a variable is set within the context
+            </summary>
+            <param name="key">The key of the variable to check for</param>
+            <returns>True if the variable is set</returns>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpVariablesContext.Remove(System.String)">
+            <summary>
+            Removes a variable from the context by key
+            </summary>
+            <param name="key">The key of the variable to remove</param>
+        </member>
+        <member name="M:Common.Logging.Simple.NoOpVariablesContext.Clear">
+            <summary>
+            Clears the context variables
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Simple.CommonLoggingTraceListener">
+            <summary>
+            A <see cref="T:System.Diagnostics.TraceListener"/> implementation sending all <see cref="T:System.Diagnostics.Trace">System.Diagnostics.Trace</see> output to 
+            the Common.Logging infrastructure.
+            </summary>
+            <remarks>
+            This listener captures all output sent by calls to <see cref="T:System.Diagnostics.Trace">System.Diagnostics.Trace</see> and
+            and <see cref="T:System.Diagnostics.TraceSource"/> and sends it to an <see cref="T:Common.Logging.ILog"/> instance.<br/>
+            The <see cref="T:Common.Logging.ILog"/> instance to be used is obtained by calling
+            <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>. The name of the logger is created by passing 
+            this listener's <see cref="P:System.Diagnostics.TraceListener.Name"/> and any <c>source</c> or <c>category</c> passed 
+            into this listener (see <see cref="M:System.Diagnostics.TraceListener.WriteLine(System.Object,System.String)"/> or <see cref="M:System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])"/> for example).
+            </remarks>
+            <example>
+            The snippet below shows how to add and configure this listener to your app.config:
+            <code lang="XML">
+            &lt;system.diagnostics&gt;
+              &lt;sharedListeners&gt;
+                &lt;add name=&quot;Diagnostics&quot;
+                     type=&quot;Common.Logging.Simple.CommonLoggingTraceListener, Common.Logging&quot;
+                     initializeData=&quot;DefaultTraceEventType=Information; LoggerNameFormat={listenerName}.{sourceName}&quot;&gt;
+                  &lt;filter type=&quot;System.Diagnostics.EventTypeFilter&quot; initializeData=&quot;Information&quot;/&gt;
+                &lt;/add&gt;
+              &lt;/sharedListeners&gt;
+              &lt;trace&gt;
+                &lt;listeners&gt;
+                  &lt;add name=&quot;Diagnostics&quot; /&gt;
+                &lt;/listeners&gt;
+              &lt;/trace&gt;
+            &lt;/system.diagnostics&gt;
+            </code>
+            </example>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="P:Common.Logging.Simple.CommonLoggingTraceListener.DefaultTraceEventType">
+            <summary>
+            Sets the default <see cref="T:System.Diagnostics.TraceEventType"/> to use for logging
+            all events emitted by <see cref="T:System.Diagnostics.Trace"/><c>.Write(...)</c> and
+            <see cref="T:System.Diagnostics.Trace"/><c>.WriteLine(...)</c> methods.
+            </summary>
+            <remarks>
+            This listener captures all output sent by calls to <see cref="T:System.Diagnostics.Trace"/> and
+            sends it to an <see cref="T:Common.Logging.ILog"/> instance using the <see cref="T:Common.Logging.LogLevel"/> specified
+            on <see cref="T:Common.Logging.LogLevel"/>.
+            </remarks>
+        </member>
+        <member name="P:Common.Logging.Simple.CommonLoggingTraceListener.LoggerNameFormat">
+            <summary>
+            Format to use for creating the logger name. Defaults to "{listenerName}.{sourceName}".
+            </summary>
+            <remarks>
+            Available placeholders are:
+            <list type="bullet">
+            <item>{listenerName}: the configured name of this listener instance.</item>
+            <item>{sourceName}: the trace source name an event originates from (see e.g. <see cref="M:System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])"/>.</item>
+            </list>
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.#ctor">
+            <summary>
+            Creates a new instance with the default name "Diagnostics" and <see cref="T:Common.Logging.LogLevel"/> "Trace".
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.#ctor(System.String)">
+            <summary>
+            Creates a new instance initialized with properties from the <paramref name="initializeData"/>. string.
+            </summary>
+            <remarks>
+            <paramref name="initializeData"/> is a semicolon separated string of name/value pairs, where each pair has
+            the form <c>key=value</c>. E.g.
+            "<c>Name=MyLoggerName;LogLevel=Debug</c>"
+            </remarks>
+            <param name="initializeData">a semicolon separated list of name/value pairs.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.#ctor(System.Collections.Specialized.NameValueCollection)">
+            <summary>
+            Creates a new instance initialized with the specified properties.
+            </summary>
+            <param name="properties">name/value configuration properties.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.Log(System.Diagnostics.TraceEventType,System.String,System.Int32,System.String,System.Object[])">
+            <summary>
+            Logs the given message to the Common.Logging infrastructure.
+            </summary>
+            <param name="eventType">the eventType</param>
+            <param name="source">the <see cref="T:System.Diagnostics.TraceSource"/> name or category name passed into e.g. <see cref="M:System.Diagnostics.Trace.Write(System.Object,System.String)"/>.</param>
+            <param name="id">the id of this event</param>
+            <param name="format">the message format</param>
+            <param name="args">the message arguments</param>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.Write(System.Object)">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.Write(System.Object,System.String)">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.Write(System.String)">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.Write(System.String,System.String)">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.WriteLine(System.Object)">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.WriteLine(System.Object,System.String)">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.WriteLine(System.String)">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.WriteLine(System.String,System.String)">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32)">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String)">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object[])">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.CommonLoggingTraceListener.TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object)">
+            <summary>
+            Writes message to logger provided by <see cref="M:Common.Logging.LogManager.GetLogger(System.String)"/>
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Simple.ConsoleOutLogger">
+            <summary>
+            Sends log messages to <see cref="P:System.Console.Out" />.
+            </summary>
+            <author>Gilles Bayon</author>
+        </member>
+        <member name="M:Common.Logging.Simple.ConsoleOutLogger.#ctor(System.String,Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String)">
+            <summary>
+            Creates and initializes a logger that writes messages to <see cref="P:System.Console.Out" />.
+            </summary>
+            <param name="logName">The name, usually type name of the calling class, of the logger.</param>
+            <param name="logLevel">The current logging threshold. Messages recieved that are beneath this threshold will not be logged.</param>
+            <param name="showLevel">Include the current log level in the log message.</param>
+            <param name="showDateTime">Include the current time in the log message.</param>
+            <param name="showLogName">Include the instance name in the log message.</param>
+            <param name="dateTimeFormat">The date and time format to use in the log message.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.ConsoleOutLogger.#ctor(System.String,Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String,System.Boolean)">
+            <summary>
+            Creates and initializes a logger that writes messages to <see cref="P:System.Console.Out" />.
+            </summary>
+            <param name="logName">The name, usually type name of the calling class, of the logger.</param>
+            <param name="logLevel">The current logging threshold. Messages recieved that are beneath this threshold will not be logged.</param>
+            <param name="showLevel">Include the current log level in the log message.</param>
+            <param name="showDateTime">Include the current time in the log message.</param>
+            <param name="showLogName">Include the instance name in the log message.</param>
+            <param name="dateTimeFormat">The date and time format to use in the log message.</param>
+            <param name="useColor">Use color when writing the log message.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.ConsoleOutLogger.WriteInternal(Common.Logging.LogLevel,System.Object,System.Exception)">
+            <summary>
+            Do the actual logging by constructing the log message using a <see cref="T:System.Text.StringBuilder" /> then
+            sending the output to <see cref="P:System.Console.Out" />.
+            </summary>
+            <param name="level">The <see cref="T:Common.Logging.LogLevel" /> of the message.</param>
+            <param name="message">The log message.</param>
+            <param name="e">An optional <see cref="T:System.Exception" /> associated with the message.</param>
+        </member>
+        <member name="T:Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter">
+            <summary>
+            Factory for creating <see cref="T:Common.Logging.ILog" /> instances that write data to <see cref="P:System.Console.Out" />.
+            </summary>
+            <remarks>
+            <example>
+            Below is an example how to configure this adapter:
+            <code>
+            &lt;configuration&gt;
+            
+              &lt;configSections&gt;
+                &lt;sectionGroup name=&quot;common&quot;&gt;
+                  &lt;section name=&quot;logging&quot;
+                           type=&quot;Common.Logging.ConfigurationSectionHandler, Common.Logging&quot;
+                           requirePermission=&quot;false&quot; /&gt;
+                &lt;/sectionGroup&gt;
+              &lt;/configSections&gt;
+            
+              &lt;common&gt;
+                &lt;logging&gt;
+                  &lt;factoryAdapter type=&quot;Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging&quot;&gt;
+                    &lt;arg key=&quot;level&quot; value=&quot;ALL&quot; /&gt;
+                  &lt;/factoryAdapter&gt;
+                &lt;/logging&gt;
+              &lt;/common&gt;
+            
+            &lt;/configuration&gt;
+            </code>
+            </example>
+            </remarks>
+            <seealso cref="T:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter"/>
+            <seealso cref="P:Common.Logging.LogManager.Adapter"/>
+            <seealso cref="T:Common.Logging.ConfigurationSectionHandler"/>
+            <author>Gilles Bayon</author>
+            <author>Mark Pollack</author>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="M:Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter"/> class using default 
+            settings.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter.#ctor(Common.Logging.Configuration.NameValueCollection)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter"/> class.
+            </summary>
+            <remarks>
+            Looks for level, showDateTime, showLogName, dateTimeFormat items from 
+            <paramref name="properties" /> for use when the GetLogger methods are called.
+            <see cref="T:Common.Logging.ConfigurationSectionHandler"/> for more information on how to use the 
+            standard .NET application configuraiton file (App.config/Web.config) 
+            to configure this adapter.
+            </remarks>
+            <param name="properties">The name value collection, typically specified by the user in 
+            a configuration section named common/logging.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter.#ctor(System.Collections.Specialized.NameValueCollection)">
+            <summary>
+            Constructor for binary backwards compatibility with non-portableversions
+            </summary>
+            <param name="properties">The properties.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter.#ctor(Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter"/> class with 
+            default settings for the loggers created by this factory.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter.#ctor(Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String,System.Boolean)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter"/> class with 
+            default settings for the loggers created by this factory.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter.CreateLogger(System.String,Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String)">
+            <summary>
+            Creates a new <see cref="T:Common.Logging.Simple.ConsoleOutLogger"/> instance.
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Simple.TraceLogger">
+            <summary>
+            Logger sending everything to the trace output stream using <see cref="T:System.Diagnostics.Trace"/>.
+            </summary>
+            <remarks>
+            Beware not to use <see cref="T:Common.Logging.Simple.CommonLoggingTraceListener"/> in combination with this logger as 
+            this would result in an endless loop for obvious reasons!
+            </remarks>
+            <seealso cref="P:Common.Logging.LogManager.Adapter"/>
+            <seealso cref="T:Common.Logging.ConfigurationSectionHandler"/>
+            <author>Gilles Bayon</author>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="T:Common.Logging.Simple.TraceLogger.FormatOutputMessage">
+            <summary>
+            Used to defer message formatting until it is really needed.
+            </summary>
+            <remarks>
+            This class also improves performance when multiple 
+            <see cref="T:System.Diagnostics.TraceListener"/>s are configured.
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.Simple.TraceLogger.#ctor(System.Boolean,System.String,Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String)">
+            <summary>
+            Creates a new TraceLogger instance.
+            </summary>
+            <param name="useTraceSource">whether to use <see cref="T:System.Diagnostics.TraceSource"/> or <see cref="T:System.Diagnostics.Trace"/> for logging.</param>
+            <param name="logName">the name of this logger</param>
+            <param name="logLevel">the default log level to use</param>
+            <param name="showLevel">Include the current log level in the log message.</param>
+            <param name="showDateTime">Include the current time in the log message.</param>
+            <param name="showLogName">Include the instance name in the log message.</param>
+            <param name="dateTimeFormat">The date and time format to use in the log message.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.TraceLogger.IsLevelEnabled(Common.Logging.LogLevel)">
+            <summary>
+            Determines if the given log level is currently enabled.
+            checks <see cref="P:System.Diagnostics.TraceSource.Switch"/> if <see cref="P:Common.Logging.Simple.TraceLoggerFactoryAdapter.UseTraceSource"/> is true.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.TraceLogger.WriteInternal(Common.Logging.LogLevel,System.Object,System.Exception)">
+            <summary>
+            Do the actual logging.
+            </summary>
+            <param name="level"></param>
+            <param name="message"></param>
+            <param name="e"></param>
+        </member>
+        <member name="M:Common.Logging.Simple.TraceLogger.OnDeserialization(System.Object)">
+            <summary>
+            Called after deserialization completed.
+            </summary>
+        </member>
+        <member name="T:Common.Logging.Simple.TraceLoggerFactoryAdapter">
+            <summary>
+            Factory for creating <see cref="T:Common.Logging.ILog" /> instances that send 
+            everything to the <see cref="T:System.Diagnostics.Trace"/> output stream.
+            </summary>
+            <remarks>
+            Beware not to use <see cref="T:Common.Logging.Simple.CommonLoggingTraceListener"/> in combination with this logger factory
+            as this would result in an endless loop for obvious reasons!
+            <example>
+            Below is an example how to configure this adapter:
+            <code>
+            &lt;configuration&gt;
+            
+              &lt;configSections&gt;
+                &lt;sectionGroup name=&quot;common&quot;&gt;
+                  &lt;section name=&quot;logging&quot;
+                           type=&quot;Common.Logging.ConfigurationSectionHandler, Common.Logging&quot;
+                           requirePermission=&quot;false&quot; /&gt;
+                &lt;/sectionGroup&gt;
+              &lt;/configSections&gt;
+            
+              &lt;common&gt;
+                &lt;logging&gt;
+                  &lt;factoryAdapter type=&quot;Common.Logging.Simple.TraceLoggerFactoryAdapter, Common.Logging&quot;&gt;
+                    &lt;arg key=&quot;level&quot; value=&quot;ALL&quot; /&gt;
+                  &lt;/factoryAdapter&gt;
+                &lt;/logging&gt;
+              &lt;/common&gt;
+            
+            &lt;/configuration&gt;
+            </code>
+            </example>
+            </remarks>
+            <seealso cref="T:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter"/>
+            <seealso cref="P:Common.Logging.LogManager.Adapter"/>
+            <seealso cref="T:Common.Logging.ConfigurationSectionHandler"/>
+            <author>Gilles Bayon</author>
+            <author>Mark Pollack</author>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="P:Common.Logging.Simple.TraceLoggerFactoryAdapter.UseTraceSource">
+            <summary>
+            Whether to use <see cref="T:System.Diagnostics.Trace"/>.<c>TraceXXXX(string,object[])</c> methods for logging
+            or <see cref="T:System.Diagnostics.TraceSource"/>.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.TraceLoggerFactoryAdapter.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.TraceLoggerFactoryAdapter"/> class using default settings.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.TraceLoggerFactoryAdapter.#ctor(Common.Logging.Configuration.NameValueCollection)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.TraceLoggerFactoryAdapter"/> class.
+            </summary>
+            <remarks>
+            Looks for level, showDateTime, showLogName, dateTimeFormat items from 
+            <paramref name="properties" /> for use when the GetLogger methods are called.
+            <see cref="T:Common.Logging.ConfigurationSectionHandler"/> for more information on how to use the 
+            standard .NET application configuraiton file (App.config/Web.config) 
+            to configure this adapter.
+            </remarks>
+            <param name="properties">The name value collection, typically specified by the user in 
+            a configuration section named common/logging.</param>
+        </member>
+        <member name="M:Common.Logging.Simple.TraceLoggerFactoryAdapter.#ctor(Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String,System.Boolean)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Common.Logging.Simple.AbstractSimpleLoggerFactoryAdapter"/> class with 
+            default settings for the loggers created by this factory.
+            </summary>
+        </member>
+        <member name="M:Common.Logging.Simple.TraceLoggerFactoryAdapter.CreateLogger(System.String,Common.Logging.LogLevel,System.Boolean,System.Boolean,System.Boolean,System.String)">
+            <summary>
+            Creates a new <see cref="T:Common.Logging.Simple.TraceLogger"/> instance.
+            </summary>
+        </member>
+        <member name="T:Common.Logging.ConfigurationSectionHandler">
+            <summary>
+            Used in an application's configuration file (App.Config or Web.Config) to configure the logging subsystem.
+            </summary>
+            <example>
+            An example configuration section that writes log messages to the Console using the
+            built-in Console Logger.
+            <code lang="XML">
+            &lt;configuration&gt;
+                &lt;configSections&gt;
+                  &lt;sectionGroup name=&quot;common&quot;&gt;
+                    &lt;section name=&quot;logging&quot; type=&quot;Common.Logging.ConfigurationSectionHandler, Common.Logging&quot; /&gt;
+                  &lt;/sectionGroup&gt; 
+                &lt;/configSections&gt;
+                &lt;common&gt;
+                  &lt;logging&gt;
+                    &lt;factoryAdapter type=&quot;Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging&quot;&gt;
+                      &lt;arg key=&quot;showLogName&quot; value=&quot;true&quot; /&gt;
+                      &lt;arg key=&quot;showDateTime&quot; value=&quot;true&quot; /&gt;
+                      &lt;arg key=&quot;level&quot; value=&quot;ALL&quot; /&gt;
+                      &lt;arg key=&quot;dateTimeFormat&quot; value=&quot;yyyy/MM/dd HH:mm:ss:fff&quot; /&gt;
+                    &lt;/factoryAdapter&gt;
+                  &lt;/logging&gt;
+                &lt;/common&gt;
+            &lt;/configuration&gt;
+            </code>
+            </example>
+        </member>
+        <member name="M:Common.Logging.ConfigurationSectionHandler.#cctor">
+            <summary>
+            Ensure static fields get initialized before any class member 
+            can be accessed (avoids beforeFieldInit)
+            </summary>
+        </member>
+        <member name="M:Common.Logging.ConfigurationSectionHandler.#ctor">
+            <summary>
+            Constructor
+            </summary>
+        </member>
+        <member name="M:Common.Logging.ConfigurationSectionHandler.ReadConfiguration(System.Xml.XmlNode)">
+            <summary>
+            Retrieves the <see cref="T:System.Type" /> of the logger the use by looking at the logFactoryAdapter element
+            of the logging configuration element.
+            </summary>
+            <param name="section"></param>
+            <returns>
+            A <see cref="T:Common.Logging.Configuration.LogSetting" /> object containing the specified type that implements 
+            <see cref="T:Common.Logging.ILoggerFactoryAdapter" /> along with zero or more properties that will be 
+            passed to the logger factory adapter's constructor as an <see cref="T:System.Collections.IDictionary" />.
+            </returns>
+        </member>
+        <member name="M:Common.Logging.ConfigurationSectionHandler.Create(Common.Logging.Configuration.LogSetting,System.Object,System.Xml.XmlNode)">
+            <summary>
+            Verifies that the logFactoryAdapter element appears once in the configuration section.
+            </summary>
+            <param name="parent">settings of a parent section - atm this must always be null</param>
+            <param name="configContext">Additional information about the configuration process.</param>
+            <param name="section">The configuration section to apply an XPath query too.</param>
+            <returns>
+            A <see cref="T:Common.Logging.Configuration.LogSetting" /> object containing the specified logFactoryAdapter type
+            along with user supplied configuration properties.
+            </returns>
+        </member>
+        <member name="M:Common.Logging.ConfigurationSectionHandler.System#Configuration#IConfigurationSectionHandler#Create(System.Object,System.Object,System.Xml.XmlNode)">
+            <summary>
+            Verifies that the logFactoryAdapter element appears once in the configuration section.
+            </summary>
+            <param name="parent">The parent of the current item.</param>
+            <param name="configContext">Additional information about the configuration process.</param>
+            <param name="section">The configuration section to apply an XPath query too.</param>
+            <returns>
+            A <see cref="T:Common.Logging.Configuration.LogSetting" /> object containing the specified logFactoryAdapter type
+            along with user supplied configuration properties.
+            </returns>
+        </member>
+    </members>
+</doc>

+ 7 - 0
Assets/Packages/Common.Logging.3.4.1/lib/net40/Common.Logging.xml.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 92b2db9e91f8a1143aa2e3d75037f0d9
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Common.Logging.Core.3.4.1.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dd628ddaca443284b8418a8ae39671fa
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/Common.Logging.Core.3.4.1/.signature.p7s


BIN
Assets/Packages/Common.Logging.Core.3.4.1/Common.Logging.Core.3.4.1.nupkg


+ 7 - 0
Assets/Packages/Common.Logging.Core.3.4.1/Common.Logging.Core.3.4.1.nupkg.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5dcc4fefbecccaf48962c5caecd25b79
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Common.Logging.Core.3.4.1/lib.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8ca266c5109af6c40ab433b3149faff7
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Common.Logging.Core.3.4.1/lib/net40.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ff3e55ac16b373047970ff1b9cb577b1
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 907 - 0
Assets/Packages/Common.Logging.Core.3.4.1/lib/net40/Common.Logging.Core.XML

@@ -0,0 +1,907 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Common.Logging.Core</name>
+    </assembly>
+    <members>
+        <member name="T:Common.Logging.Factory.StringFormatMethodAttribute">
+            <summary>
+            Indicates that the marked method builds string by format pattern and (optional) arguments.
+            Parameter, which contains format string, should be given in constructor. The format string
+            should be in <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/>-like form
+            </summary>
+            <example><code>
+            [StringFormatMethod("message")]
+            public void ShowError(string message, params object[] args) { /* do something */ }
+            public void Foo() {
+              ShowError("Failed: {0}"); // Warning: Non-existing argument in format string
+            }
+            </code></example>
+        </member>
+        <member name="M:Common.Logging.Factory.StringFormatMethodAttribute.#ctor(System.String)">
+            <param name="formatParameterName">
+            Specifies which parameter of an annotated method should be treated as format-string
+            </param>
+        </member>
+        <member name="P:Common.Logging.Factory.StringFormatMethodAttribute.FormatParameterName">
+            <summary>
+            The name of the string parameter being formatted
+            </summary>
+        </member>
+        <member name="T:Common.Logging.FormatMessageHandler">
+            <summary>
+             The type of method that is passed into e.g. <see cref="M:Common.Logging.ILog.Debug(System.Action{Common.Logging.FormatMessageHandler})"/> 
+             and allows the callback method to "submit" it's message to the underlying output system.
+            </summary>
+            <param name="format">the format argument as in <see cref="M:System.String.Format(System.String,System.Object[])"/></param>
+            <param name="args">the argument list as in <see cref="M:System.String.Format(System.String,System.Object[])"/></param>
+            <seealso cref="T:Common.Logging.ILog"/>
+             <author>Erich Eichinger</author>
+        </member>
+        <member name="T:Common.Logging.IConfigurationReader">
+            <summary>
+            Interface for basic operations to read .NET application configuration information.
+            </summary>
+            <remarks>Provides a simple abstraction to handle BCL API differences between .NET 1.x and 2.0. Also
+            useful for testing scenarios.</remarks>
+            <author>Mark Pollack</author>
+        </member>
+        <member name="M:Common.Logging.IConfigurationReader.GetSection(System.String)">
+            <summary>
+            Parses the configuration section and returns the resulting object.
+            </summary>
+            <remarks>
+            <p>
+            Primary purpose of this method is to allow us to parse and 
+            load configuration sections using the same API regardless
+            of the .NET framework version.
+            </p>
+            
+            See also <c>System.Configuration.ConfigurationManager</c>
+            </remarks>
+            <param name="sectionName">Name of the configuration section.</param>
+            <returns>Object created by a corresponding IConfigurationSectionHandler.</returns>
+        </member>
+        <member name="T:Common.Logging.ILog">
+            <summary>
+            A simple logging interface abstracting logging APIs. 
+            </summary>
+            <remarks>
+            <para>
+            Implementations should defer calling a message's <see cref="M:System.Object.ToString"/> until the message really needs
+            to be logged to avoid performance penalties.
+            </para>
+            <para>
+            Each <see cref="T:Common.Logging.ILog"/> log method offers to pass in a <see cref="T:System.Action`1"/> instead of the actual message.
+            Using this style has the advantage to defer possibly expensive message argument evaluation and formatting (and formatting arguments!) until the message gets
+            actually logged. If the message is not logged at all (e.g. due to <see cref="T:Common.Logging.LogLevel"/> settings), 
+            you won't have to pay the peformance penalty of creating the message.
+            </para>
+            </remarks>
+            <example>
+            The example below demonstrates using callback style for creating the message, where the call to the 
+            <see cref="M:System.Random.NextDouble"/> and the underlying <see cref="M:System.String.Format(System.String,System.Object[])"/> only happens, if level <see cref="F:Common.Logging.LogLevel.Debug"/> is enabled:
+            <code>
+            Log.Debug( m=&gt;m(&quot;result is {0}&quot;, random.NextDouble()) );
+            Log.Debug(delegate(m) { m(&quot;result is {0}&quot;, random.NextDouble()); });
+            </code>
+            </example>
+            <seealso cref="T:System.Action`1"/>
+            <author>Mark Pollack</author>
+            <author>Bruno Baia</author>
+            <author>Erich Eichinger</author>
+        </member>
+        <member name="M:Common.Logging.ILog.Trace(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Trace(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Trace"/> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.TraceFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.TraceFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.TraceFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.TraceFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.Trace(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Trace(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Trace(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Trace(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Trace"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Debug(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Debug(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Debug"/> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.DebugFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.DebugFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.DebugFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.DebugFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.Debug(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Debug(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Debug(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Debug(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Debug"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Debug.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Info(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Info(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Info"/> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.InfoFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.InfoFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.InfoFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.InfoFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.Info(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Info(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Info(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Info(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Info"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Info.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Warn(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Warn(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Warn"/> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.WarnFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.WarnFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.WarnFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.WarnFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.Warn(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Warn(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Warn(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Warn(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Warn"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Warn.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Error(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Error(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Error"/> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.ErrorFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.ErrorFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.ErrorFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.ErrorFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.Error(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Error(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Error(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Error(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Error"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Error.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Fatal(System.Object)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+            <param name="message">The message object to log.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Fatal(System.Object,System.Exception)">
+            <summary>
+            Log a message object with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level including
+            the stack trace of the <see cref="T:System.Exception"/> passed
+            as a parameter.
+            </summary>
+            <param name="message">The message object to log.</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.FatalFormat(System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.FatalFormat(System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args">the list of format arguments</param>
+        </member>
+        <member name="M:Common.Logging.ILog.FatalFormat(System.IFormatProvider,System.String,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.FatalFormat(System.IFormatProvider,System.String,System.Exception,System.Object[])">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="format">The format of the message object to log.<see cref="M:System.String.Format(System.String,System.Object[])"/> </param>
+            <param name="exception">The exception to log.</param>
+            <param name="args"></param>
+        </member>
+        <member name="M:Common.Logging.ILog.Fatal(System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Fatal(System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack trace.</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Fatal(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler})">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+        </member>
+        <member name="M:Common.Logging.ILog.Fatal(System.IFormatProvider,System.Action{Common.Logging.FormatMessageHandler},System.Exception)">
+            <summary>
+            Log a message with the <see cref="F:Common.Logging.LogLevel.Fatal"/> level using a callback to obtain the message
+            </summary>
+            <remarks>
+            Using this method avoids the cost of creating a message and evaluating message arguments 
+            that probably won't be logged due to loglevel settings.
+            </remarks>
+            <param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
+            <param name="formatMessageCallback">A callback used by the logger to obtain the message if log level is matched</param>
+            <param name="exception">The exception to log, including its stack Fatal.</param>
+        </member>
+        <member name="P:Common.Logging.ILog.IsTraceEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Trace"/> level.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.ILog.IsDebugEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Debug"/> level.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.ILog.IsErrorEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Error"/> level.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.ILog.IsFatalEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Fatal"/> level.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.ILog.IsInfoEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Info"/> level.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.ILog.IsWarnEnabled">
+            <summary>
+            Checks if this logger is enabled for the <see cref="F:Common.Logging.LogLevel.Warn"/> level.
+            </summary>
+        </member>
+        <member name="P:Common.Logging.ILog.GlobalVariablesContext">
+            <summary>
+            Returns the global context for variables
+            </summary>
+        </member>
+        <member name="P:Common.Logging.ILog.ThreadVariablesContext">
+            <summary>
+            Returns the thread-specific context for variables
+            </summary>
+        </member>
+        <member name="P:Common.Logging.ILog.NestedThreadVariablesContext">
+            <summary>
+            Returns the thread-specific context for nested variables (for NDC, eg.)
+            </summary>
+        </member>
+        <member name="T:Common.Logging.ILoggerFactoryAdapter">
+            <summary>
+            LoggerFactoryAdapter interface is used internally by LogManager
+            Only developers wishing to write new Common.Logging adapters need to
+            worry about this interface.
+            </summary>
+            <author>Gilles Bayon</author>
+        </member>
+        <member name="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.Type)">
+            <summary>
+            Get a ILog instance by type.
+            </summary>
+            <param name="type">The type to use for the logger</param>
+            <returns></returns>
+        </member>
+        <member name="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.String)">
+            <summary>
+            Get a ILog instance by key.
+            </summary>
+            <param name="key">The key of the logger</param>
+            <returns></returns>
+        </member>
+        <member name="T:Common.Logging.ILogManager">
+            <summary>
+            Interface for LogManager
+            </summary>
+        </member>
+        <member name="P:Common.Logging.ILogManager.COMMON_LOGGING_SECTION">
+            <summary>
+            The key of the default configuration section to read settings from.
+            </summary>
+            <remarks>
+            You can always change the source of your configuration settings by setting another <see cref="T:Common.Logging.IConfigurationReader"/> instance
+            on <see cref="P:Common.Logging.ILogManager.ConfigurationReader"/>.
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.ILogManager.Reset">
+            <summary>
+            Reset the <see cref="N:Common.Logging" /> infrastructure to its default settings. This means, that configuration settings
+            will be re-read from section <c>&lt;common/logging&gt;</c> of your <c>app.config</c>.
+            </summary>
+            <remarks>
+            This is mainly used for unit testing, you wouldn't normally use this in your applications.<br/>
+            <b>Note:</b><see cref="T:Common.Logging.ILog"/> instances already handed out from this LogManager are not(!) affected. 
+            Resetting LogManager only affects new instances being handed out.
+            </remarks>
+        </member>
+        <member name="M:Common.Logging.ILogManager.Reset(Common.Logging.IConfigurationReader)">
+            <summary>
+            Reset the <see cref="N:Common.Logging" /> infrastructure to its default settings. This means, that configuration settings
+            will be re-read from section <c>&lt;common/logging&gt;</c> of your <c>app.config</c>.
+            </summary>
+            <remarks>
+            This is mainly used for unit testing, you wouldn't normally use this in your applications.<br/>
+            <b>Note:</b><see cref="T:Common.Logging.ILog"/> instances already handed out from this LogManager are not(!) affected. 
+            Resetting LogManager only affects new instances being handed out.
+            </remarks>
+            <param name="reader">
+            the <see cref="T:Common.Logging.IConfigurationReader"/> instance to obtain settings for 
+            re-initializing the LogManager.
+            </param>
+        </member>
+        <member name="P:Common.Logging.ILogManager.ConfigurationReader">
+            <summary>
+            Gets the configuration reader used to initialize the LogManager.
+            </summary>
+            <remarks>Primarily used for testing purposes but maybe useful to obtain configuration
+            information from some place other than the .NET application configuration file.</remarks>
+            <value>The configuration reader.</value>
+        </member>
+        <member name="P:Common.Logging.ILogManager.Adapter">
+            <summary>
+            Gets or sets the adapter.
+            </summary>
+            <value>The adapter.</value>
+        </member>
+        <member name="M:Common.Logging.ILogManager.GetCurrentClassLogger">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.Type)"/>
+            on the currently configured <see cref="P:Common.Logging.ILogManager.Adapter"/> using the type of the calling class.
+            </summary>
+            <remarks>
+            This method needs to inspect the StackTrace in order to determine the calling 
+            class. This of course comes with a performance penalty, thus you shouldn't call it too
+            often in your application.
+            </remarks>
+            <seealso cref="M:Common.Logging.ILogManager.GetLogger(System.Type)"/>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.ILogManager.Adapter"/></returns>
+        </member>
+        <member name="M:Common.Logging.ILogManager.GetLogger``1">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.Type)"/>
+            on the currently configured <see cref="P:Common.Logging.ILogManager.Adapter"/> using the specified type.
+            </summary>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.ILogManager.Adapter"/></returns>
+        </member>
+        <member name="M:Common.Logging.ILogManager.GetLogger(System.Type)">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.Type)"/>
+            on the currently configured <see cref="P:Common.Logging.ILogManager.Adapter"/> using the specified type.
+            </summary>
+            <param name="type">The type.</param>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.ILogManager.Adapter"/></returns>
+        </member>
+        <member name="M:Common.Logging.ILogManager.GetLogger(System.String)">
+            <summary>
+            Gets the logger by calling <see cref="M:Common.Logging.ILoggerFactoryAdapter.GetLogger(System.String)"/>
+            on the currently configured <see cref="P:Common.Logging.ILogManager.Adapter"/> using the specified key.
+            </summary>
+            <param name="key">The key.</param>
+            <returns>the logger instance obtained from the current <see cref="P:Common.Logging.ILogManager.Adapter"/></returns>
+        </member>
+        <member name="T:Common.Logging.INestedVariablesContext">
+            <summary>
+            A context for logger variables
+            </summary>
+        </member>
+        <member name="M:Common.Logging.INestedVariablesContext.Push(System.String)">
+            <summary>Pushes a new context message into this stack.</summary>
+            <param name="text">The new context message text.</param>
+            <returns>
+            An <see cref="T:System.IDisposable" /> that can be used to clean up the context stack.
+            </returns>
+        </member>
+        <member name="M:Common.Logging.INestedVariablesContext.Pop">
+            <summary>Removes the top context from this stack.</summary>
+            <returns>The message in the context that was removed from the top of this stack.</returns>
+        </member>
+        <member name="M:Common.Logging.INestedVariablesContext.Clear">
+            <summary>
+            Remove all items from nested context
+            </summary>
+        </member>
+        <member name="P:Common.Logging.INestedVariablesContext.HasItems">
+            <summary>
+            Returns true if there is at least one item in the nested context; false, if empty
+            </summary>
+        </member>
+        <member name="T:Common.Logging.IVariablesContext">
+            <summary>
+            A context for logger variables
+            </summary>
+        </member>
+        <member name="M:Common.Logging.IVariablesContext.Set(System.String,System.Object)">
+            <summary>
+            Sets the value of a new or existing variable within the context
+            </summary>
+            <param name="key">The key of the variable that is to be added</param>
+            <param name="value">The value to add</param>
+        </member>
+        <member name="M:Common.Logging.IVariablesContext.Get(System.String)">
+            <summary>
+            Gets the value of a variable within the context
+            </summary>
+            <param name="key">The key of the variable to get</param>
+            <returns>The value or null if not found</returns>
+        </member>
+        <member name="M:Common.Logging.IVariablesContext.Contains(System.String)">
+            <summary>
+            Checks if a variable is set within the context
+            </summary>
+            <param name="key">The key of the variable to check for</param>
+            <returns>True if the variable is set</returns>
+        </member>
+        <member name="M:Common.Logging.IVariablesContext.Remove(System.String)">
+            <summary>
+            Removes a variable from the context by key
+            </summary>
+            <param name="key">The key of the variable to remove</param>
+        </member>
+        <member name="M:Common.Logging.IVariablesContext.Clear">
+            <summary>
+            Clears the context variables
+            </summary>
+        </member>
+        <member name="T:Common.Logging.LogLevel">
+            <summary>
+            The 7 possible logging levels
+            </summary>
+            <author>Gilles Bayon</author>
+        </member>
+        <member name="F:Common.Logging.LogLevel.All">
+            <summary>
+            All logging levels
+            </summary>
+        </member>
+        <member name="F:Common.Logging.LogLevel.Trace">
+            <summary>
+            A trace logging level
+            </summary>
+        </member>
+        <member name="F:Common.Logging.LogLevel.Debug">
+            <summary>
+            A debug logging level
+            </summary>
+        </member>
+        <member name="F:Common.Logging.LogLevel.Info">
+            <summary>
+            A info logging level
+            </summary>
+        </member>
+        <member name="F:Common.Logging.LogLevel.Warn">
+            <summary>
+            A warn logging level
+            </summary>
+        </member>
+        <member name="F:Common.Logging.LogLevel.Error">
+            <summary>
+            An error logging level
+            </summary>
+        </member>
+        <member name="F:Common.Logging.LogLevel.Fatal">
+            <summary>
+            A fatal logging level
+            </summary>
+        </member>
+        <member name="F:Common.Logging.LogLevel.Off">
+            <summary>
+            Do not log anything.
+            </summary>
+        </member>
+    </members>
+</doc>

+ 7 - 0
Assets/Packages/Common.Logging.Core.3.4.1/lib/net40/Common.Logging.Core.XML.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e647ef5a856cca847a385327949b33f3
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/Common.Logging.Core.3.4.1/lib/net40/Common.Logging.Core.dll


+ 33 - 0
Assets/Packages/Common.Logging.Core.3.4.1/lib/net40/Common.Logging.Core.dll.meta

@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: 47c60e2f013cc8e429eb81aca0f67691
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      Any: 
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      Windows Store Apps: WindowsStoreApps
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/IPNetwork2.2.1.2.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7fb447c3d13c8774abeace3f3649d13f
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/IPNetwork2.2.1.2/.signature.p7s


BIN
Assets/Packages/IPNetwork2.2.1.2/IPNetwork2.2.1.2.nupkg


+ 7 - 0
Assets/Packages/IPNetwork2.2.1.2/IPNetwork2.2.1.2.nupkg.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f8ba81b264a5d9b4ba4c991036273629
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/IPNetwork2.2.1.2/lib.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 554af33b50019ec45bf10bd66646b5fd
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/IPNetwork2.2.1.2/lib/net46.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9f0032918516eb94c9c886c91a0aefc1
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/IPNetwork2.2.1.2/lib/net46/System.Net.IPNetwork.dll


+ 33 - 0
Assets/Packages/IPNetwork2.2.1.2/lib/net46/System.Net.IPNetwork.dll.meta

@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: dd3cf7a69f92ac947a70f30531eff157
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      Any: 
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      Windows Store Apps: WindowsStoreApps
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/MQTTnet.3.0.13.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f7db0182c41560244b46fb420b57d45c
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/MQTTnet.3.0.13/.signature.p7s


+ 21 - 0
Assets/Packages/MQTTnet.3.0.13/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2016-2019 Christian Kratky
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 7 - 0
Assets/Packages/MQTTnet.3.0.13/LICENSE.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: cf3c8209695efe443a1dc0fd9c03e0e8
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/MQTTnet.3.0.13/MQTTnet.3.0.13.nupkg


+ 7 - 0
Assets/Packages/MQTTnet.3.0.13/MQTTnet.3.0.13.nupkg.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ad83909b325bc0f44a3e672f00b31005
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/MQTTnet.3.0.13/images.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 90d8df1a7e037a543a0cb0577525d96f
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/MQTTnet.3.0.13/images/Logo_128x128.png


+ 140 - 0
Assets/Packages/MQTTnet.3.0.13/images/Logo_128x128.png.meta

@@ -0,0 +1,140 @@
+fileFormatVersion: 2
+guid: e8d5f27b120ada442b14a3262fd0b63a
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: -1
+    aniso: 2
+    mipBias: -100
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Windows Store Apps
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/MQTTnet.3.0.13/lib.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6daa9087735f31146974bb2e0df336ef
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/MQTTnet.3.0.13/lib/net461.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ec2bc129b9e997a43821204905d50624
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/MQTTnet.3.0.13/lib/net461/MQTTnet.dll


+ 33 - 0
Assets/Packages/MQTTnet.3.0.13/lib/net461/MQTTnet.dll.meta

@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: 94e1cfe693f84f048917cdd4c9ff0fc9
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      Any: 
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      Windows Store Apps: WindowsStoreApps
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Makaretu.Dns.2.0.1.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5bc4d36b35ff4854bae0566bba02c90f
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/Makaretu.Dns.2.0.1/.signature.p7s


BIN
Assets/Packages/Makaretu.Dns.2.0.1/Makaretu.Dns.2.0.1.nupkg


+ 7 - 0
Assets/Packages/Makaretu.Dns.2.0.1/Makaretu.Dns.2.0.1.nupkg.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: dcd8c283c5ad46d4ebef4ef608f2aba2
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Makaretu.Dns.2.0.1/lib.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dab521e1a64319d47a2a05c47929f637
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Makaretu.Dns.2.0.1/lib/net45.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6ba2e99905f4a764c8242bc3d3e39fc2
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/Makaretu.Dns.2.0.1/lib/net45/Makaretu.Dns.dll


+ 33 - 0
Assets/Packages/Makaretu.Dns.2.0.1/lib/net45/Makaretu.Dns.dll.meta

@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: 8d8249a00c802a74884ad1d08177b232
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      Any: 
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      Windows Store Apps: WindowsStoreApps
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 5038 - 0
Assets/Packages/Makaretu.Dns.2.0.1/lib/net45/Makaretu.Dns.xml

@@ -0,0 +1,5038 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Makaretu.Dns</name>
+    </assembly>
+    <members>
+        <member name="T:Makaretu.Dns.AAAARecord">
+            <summary>
+              Contains the IPv6 address of the named resource.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.AAAARecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.AAAARecord"/> class.
+            </summary>
+        </member>
+        <member name="T:Makaretu.Dns.AddressRecord">
+            <summary>
+              Base class for an Internet address.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.AddressRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.AddressRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.AddressRecord.Address">
+            <summary>
+              The Internet address.
+            </summary>
+            <value>
+              Either IPv4 or IPv6.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.AddressRecord.Create(Makaretu.Dns.DomainName,System.Net.IPAddress)">
+            <summary>
+              Creates an A or AAAA record based on the <see cref="T:System.Net.Sockets.AddressFamily"/>.
+            </summary>
+            <param name="name">
+              The name of the node that owns the address.
+            </param>
+            <param name="address">
+              An IPv4 or IPv6 address.
+            </param>
+            <returns>
+              An <see cref="T:Makaretu.Dns.ARecord"/> or <see cref="T:Makaretu.Dns.AAAARecord"/> tha describes
+              the <paramref name="name"/> and <paramref name="address"/>.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.AddressRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.AddressRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.AddressRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.AddressRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.AFSDBRecord">
+            <summary>
+              Andrew File System Database.
+            </summary>
+            <remarks>
+              Maps a domain name to the name of an AFS cell database server.
+            </remarks>
+            <seealso href="https://tools.ietf.org/html/rfc1183"/>
+        </member>
+        <member name="M:Makaretu.Dns.AFSDBRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.AFSDBRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.AFSDBRecord.Subtype">
+            <summary>
+             A 16 bit integer which specifies the type of AFS server.
+            </summary>
+            <value>
+              See <see href="https://tools.ietf.org/html/rfc1183#section-1"/>
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.AFSDBRecord.Target">
+            <summary>
+             A domain-name which specifies a host running an AFS server.
+            </summary>
+            <value>
+              The name of an AFS server.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.AFSDBRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.AFSDBRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.AFSDBRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.AFSDBRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.ARecord">
+            <summary>
+              Contains the IPv4 address of the named resource.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.ARecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.ARecord"/> class.
+            </summary>
+        </member>
+        <member name="T:Makaretu.Dns.CNAMERecord">
+            <summary>
+              The canonical name for an alias.
+            </summary>
+            <remarks>
+             CNAME RRs cause no additional section processing, but name servers may
+             choose to restart the query at the canonical name in certain cases. See
+             the description of name server logic in [RFC - 1034] for details.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.CNAMERecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.CNAMERecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.CNAMERecord.Target">
+            <summary>
+             A domain-name which specifies the canonical or primary
+             name for the owner. The owner name is an alias.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.CNAMERecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.CNAMERecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.CNAMERecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.CNAMERecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.DigestRegistry">
+            <summary>
+              Registry of implemented <see cref="T:Makaretu.Dns.DigestType"/>.
+            </summary>
+            <remarks>
+              IANA maintains a list of all known types at <see href="https://www.iana.org/assignments/ds-rr-types/ds-rr-types.xhtml#ds-rr-types-1"/>.
+            </remarks>
+            <see cref="T:Makaretu.Dns.DigestType"/>
+            <see cref="T:System.Security.Cryptography.HashAlgorithm"/>
+        </member>
+        <member name="F:Makaretu.Dns.DigestRegistry.Digests">
+            <summary>
+              Defined hashing algorithms.
+            </summary>
+            <remarks>
+              The key is the <see cref="T:Makaretu.Dns.DigestType"/>.
+              The value is a function that returns a new <see cref="T:Makaretu.Dns.ResourceRecord"/>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DigestRegistry.Create(Makaretu.Dns.DigestType)">
+            <summary>
+              Gets the hash algorithm for the <see cref="T:Makaretu.Dns.DigestType"/>.
+            </summary>
+            <param name="digestType">
+              One of the <see cref="T:Makaretu.Dns.DigestType"/> values.
+            </param>
+            <returns>
+              A new instance of the <see cref="T:System.Security.Cryptography.HashAlgorithm"/> that implements
+              the <paramref name="digestType"/>.
+            </returns>
+            <exception cref="T:System.NotImplementedException">
+              When <paramref name="digestType"/> is not implemented.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.DigestRegistry.Create(Makaretu.Dns.SecurityAlgorithm)">
+            <summary>
+              Gets the hash algorithm for the <see cref="T:Makaretu.Dns.SecurityAlgorithm"/>.
+            </summary>
+            <param name="algorithm">
+              One of the <see cref="T:Makaretu.Dns.SecurityAlgorithm"/> values.
+            </param>
+            <returns>
+              A new instance of the <see cref="T:System.Security.Cryptography.HashAlgorithm"/> that is used
+              for the <paramref name="algorithm"/>.
+            </returns>
+            <exception cref="T:System.NotImplementedException">
+              When the <paramref name="algorithm"/> or its <see cref="T:System.Security.Cryptography.HashAlgorithm"/>
+              is not implemented.
+            </exception>
+        </member>
+        <member name="T:Makaretu.Dns.DigestType">
+            <summary>
+             Identities the cryptographic digest algorithm used by the resource records.
+            </summary>
+            <remarks>
+              The values are maintained by IANA at <see href="https://www.iana.org/assignments/ds-rr-types/ds-rr-types.xhtml#ds-rr-types-1"/>.
+              <para>
+              Implemented digest algorithms are obtained from the <see cref="T:Makaretu.Dns.DigestRegistry"/>.
+              </para>
+            </remarks>
+            <seealso cref="T:Makaretu.Dns.ResourceRecord"/>
+            <seealso href="https://www.ietf.org/rfc/rfc4034.txt">RFC 4035</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DigestType.Sha1">
+            <summary>
+            SHA-1.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DigestType.Sha256">
+            <summary>
+            SHA-256
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DigestType.GostR34_11_94">
+            <summary>
+              GOST R 34.11-94.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DigestType.Sha384">
+            <summary>
+            SHA-384
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DigestType.Sha512">
+            <summary>
+            SHA-512 (not in IANA registry)
+            </summary>
+        </member>
+        <member name="T:Makaretu.Dns.DNAMERecord">
+            <summary>
+              Alias for a name and all its subnames.
+            </summary>
+            <remarks>
+             Alias for a name and all its subnames, unlike <see cref="T:Makaretu.Dns.CNAMERecord"/>, which is an 
+             alias for only the exact name. Like a CNAME record, the DNS lookup will continue by 
+             retrying the lookup with the new name.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DNAMERecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.DNAMERecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.DNAMERecord.Target">
+            <summary>
+             A domain-name which specifies the canonical or primary
+             name for the owner. The owner name is an alias.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.DNAMERecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DNAMERecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DNAMERecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DNAMERecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.DnsClass">
+            <summary>
+             Identifies the network of the <see cref="T:Makaretu.Dns.ResourceRecord"/>.
+            </summary>
+            <remarks>
+              The values are maintained by IANA at <see href="https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-2"/>.
+            </remarks>
+        </member>
+        <member name="F:Makaretu.Dns.DnsClass.IN">
+            <summary>
+              The Internet.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DnsClass.CS">
+            <summary>
+              The CSNET class (Obsolete - used only for examples insome obsolete RFCs).
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DnsClass.CH">
+            <summary>
+              The CHAOS class.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DnsClass.HS">
+            <summary>
+              Hesiod[Dyer 87].
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DnsClass.None">
+            <summary>
+              Used in UPDATE message to signify no class.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DnsClass.ANY">
+            <summary>
+              Only used in QCLASS.
+            </summary>
+            <seealso cref="P:Makaretu.Dns.Question.Class"/>
+        </member>
+        <member name="T:Makaretu.Dns.DNSKEYFlags">
+            <summary>
+              The usage of a <see cref="T:Makaretu.Dns.DNSKEYRecord">key</see>.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DNSKEYFlags.None">
+            <summary>
+             No specific usage.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DNSKEYFlags.SecureEntryPoint">
+            <summary>
+              Used by a parent zone's <see cref="T:Makaretu.Dns.DSRecord"/>.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.DNSKEYFlags.ZoneKey">
+            <summary>
+              Used to sign the zone.
+            </summary>
+            <remarks>
+              When set, the <see cref="P:Makaretu.Dns.ResourceRecord.Name"/> must be the
+              name of the zone.
+            </remarks>
+        </member>
+        <member name="T:Makaretu.Dns.DNSKEYRecord">
+            <summary>
+              Public key cryptography to sign and authenticate resource records.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.DNSKEYRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.DNSKEYRecord"/> class.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.DNSKEYRecord.#ctor(System.Security.Cryptography.RSA,Makaretu.Dns.SecurityAlgorithm)">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.DNSKEYRecord"/> class
+              from the specified RSA key.
+            </summary>
+            <param name="key">
+              A public or private RSA key.
+            </param>
+            <param name="algorithm">
+              The security algorithm to use.  Only RSA types are allowed.
+            </param>
+        </member>
+        <member name="P:Makaretu.Dns.DNSKEYRecord.Flags">
+            <summary>
+             Identifies the intended usage of the key.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.DNSKEYRecord.Protocol">
+            <summary>
+              Must be three.
+            </summary>
+            <value>
+              Defaults to 3.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.DNSKEYRecord.Algorithm">
+            <summary>
+              Identifies the public key's cryptographic algorithm.
+            </summary>
+            <value>
+              Identifies the type of key (RSA, ECDSA, ...) and the
+              hashing algorithm.
+            </value>
+            <remarks>
+               Determines the format of the<see cref="P:Makaretu.Dns.DNSKEYRecord.PublicKey"/>.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.DNSKEYRecord.PublicKey">
+            <summary>
+              The public key material.
+            </summary>
+            <value>
+              The format depends on the key <see cref="P:Makaretu.Dns.DNSKEYRecord.Algorithm"/>.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.DNSKEYRecord.KeyTag">
+            <summary>
+              Calculates the key tag.
+            </summary>
+            <value>
+              A non-unique identifier for the public key.
+            </value>
+            <remarks>
+              <see href="https://tools.ietf.org/html/rfc4034#appendix-B"/> for the details.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DNSKEYRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DNSKEYRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DNSKEYRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DNSKEYRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.DnsObject">
+            <summary>
+              Base class for all DNS objects.
+            </summary>
+            <remarks>
+              Provides helper methods for <see cref="T:Makaretu.Dns.IWireSerialiser">wire serialisation</see>,
+              cloning and caching.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.DnsObject.CreationTime">
+            <summary>
+              When the object was created.
+            </summary>
+            <value>
+              Local time.
+            </value>
+            <remarks>
+              Cloning does not alter the value.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DnsObject.Length">
+            <summary>
+              Length in bytes of the object when serialised.
+            </summary>
+            <returns>
+              Numbers of bytes when serialised.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.DnsObject.Clone">
+            <summary>
+              Makes a deep copy of the object.
+            </summary>
+            <returns>
+              A deep copy of the dns object.
+            </returns>
+            <remarks>
+              Uses serialisation to make a copy.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DnsObject.Clone``1">
+            <summary>
+              Makes a deep copy of the object.
+            </summary>
+            <typeparam name="T">
+              Some type derived from <see cref="T:Makaretu.Dns.DnsObject"/>.
+            </typeparam>
+            <returns>
+              A deep copy of the dns object.
+            </returns>
+            <remarks>
+              Use serialisation to make a copy.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DnsObject.Read(System.Byte[])">
+            <summary>
+              Reads the DNS object from a byte array.
+            </summary>
+            <param name="buffer">
+              The source for the DNS object.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.DnsObject.Read(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+              Reads the DNS object from a byte array.
+            </summary>
+            <param name="buffer">
+              The source for the DNS object.
+            </param>
+            <param name="offset">
+              The offset into the <paramref name="buffer"/>.
+            </param>
+            <param name="count">
+              The number of bytes in the <paramref name="buffer"/>.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.DnsObject.Read(System.IO.Stream)">
+            <summary>
+              Reads the DNS object from a stream.
+            </summary>
+            <param name="stream">
+              The source for the DNS object.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.DnsObject.Read(Makaretu.Dns.WireReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DnsObject.ToByteArray">
+            <summary>
+              Writes the DNS object to a byte array.
+            </summary>
+            <returns>
+              A byte array containing the binary representaton of the DNS object.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.DnsObject.Write(System.IO.Stream)">
+            <summary>
+              Writes the DNS object to a stream.
+            </summary>
+            <param name="stream">
+              The destination for the DNS object.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.DnsObject.Write(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.DnsType">
+            <summary>
+            A resource record or query type. 
+            </summary>
+            <seealso cref="P:Makaretu.Dns.Question.Type"/>
+            <seealso cref="P:Makaretu.Dns.ResourceRecord.Type"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.A">
+            <summary>
+            A host address.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035">RFC 1035</seealso>
+            <seealso cref="T:Makaretu.Dns.ARecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.NS">
+            <summary>
+            An authoritative name server.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3.11">RFC 1035</seealso>
+            <seealso cref="T:Makaretu.Dns.NSRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.MD">
+            <summary>
+            A mail destination (OBSOLETE - use MX).
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035">RFC 1035</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.MF">
+            <summary>
+            A mail forwarder (OBSOLETE - use MX).
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035">RFC 1035</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.CNAME">
+            <summary>
+            The canonical name for an alias.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3.1">RFC 1035</seealso>
+            <seealso cref="T:Makaretu.Dns.CNAMERecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.SOA">
+            <summary>
+            Marks the start of a zone of authority.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3.13">RFC 1035</seealso>
+            <seealso cref="T:Makaretu.Dns.SOARecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.MB">
+            <summary>
+            A mailbox domain name (EXPERIMENTAL).
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3.3">RFC 1035</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.MG">
+            <summary>
+            A mail group member (EXPERIMENTAL).
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3.6">RFC 1035</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.MR">
+            <summary>
+            A mailbox rename domain name (EXPERIMENTAL).
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3.8">RFC 1035</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.NULL">
+            <summary>
+            A Null resource record (EXPERIMENTAL).
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3.8">RFC 1035</seealso>
+            <seealso cref="T:Makaretu.Dns.NULLRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.WKS">
+            <summary>
+            A well known service description.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc3232">RFC 3232</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.PTR">
+            <summary>
+            A domain name pointer.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3.12">RFC 1035</seealso>
+            <seealso cref="T:Makaretu.Dns.PTRRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.HINFO">
+            <summary>
+            Host information.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3.11">RFC 1035</seealso>
+            <seealso href="https://tools.ietf.org/html/rfc1010">RFC 1010</seealso>
+            <seealso cref="T:Makaretu.Dns.HINFORecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.MINFO">
+            <summary>
+            Mailbox or mail list information.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3.11">RFC 1035</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.MX">
+            <summary>
+            Mail exchange.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3.9">RFC 1035</seealso>
+            <seealso href="https://tools.ietf.org/html/rfc974">RFC 974</seealso>
+            <seealso cref="T:Makaretu.Dns.MXRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.TXT">
+            <summary>
+            Text resources.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035#section-3.3">RFC 1035</seealso>
+            <seealso href="https://tools.ietf.org/html/rfc1464">RFC 1464</seealso>
+            <seealso cref="T:Makaretu.Dns.TXTRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.RP">
+            <summary>
+            Responsible Person.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1183">RFC 1183</seealso>
+            <seealso cref="T:Makaretu.Dns.RPRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.AFSDB">
+            <summary>
+            AFS Data Base location.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1183#section-1">RFC 1183</seealso>
+            <seealso href="https://tools.ietf.org/html/rfc5864">RFC 5864</seealso>
+            <seealso cref="T:Makaretu.Dns.AFSDBRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.AAAA">
+            <summary>
+            An IPv6 host address.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc3596#section-2.2">RFC 3596</seealso>
+            <seealso cref="T:Makaretu.Dns.AAAARecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.SRV">
+            <summary>
+            A resource record which specifies the location of the server(s) for a specific protocol and domain.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc2782">RFC 2782</seealso>
+            <seealso cref="T:Makaretu.Dns.SRVRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.DNAME">
+            <summary>
+              Maps an entire domain name.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc6672">RFC 6672</seealso>
+            <see cref="T:Makaretu.Dns.DNAMERecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.OPT">
+            <summary>
+            Option record.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc6891">RFC 6891</seealso>
+            <see cref="T:Makaretu.Dns.OPTRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.DS">
+            <summary>
+              Delegation Signer.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc4034#section-5"/>
+            <see cref="T:Makaretu.Dns.DSRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.RRSIG">
+            <summary>
+            Signature for a RRSET with a particular name, class, and type.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc4034#section-3"/>
+            <seealso cref="T:Makaretu.Dns.RRSIGRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.NSEC">
+            <summary>
+              Next secure owener.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc3845"/>
+            <seealso cref="T:Makaretu.Dns.NSECRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.DNSKEY">
+            <summary>
+              Public key cryptography to sign and authenticate resource records.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc4034#section-2.1"/>
+            <seealso cref="T:Makaretu.Dns.DNSKEYRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.NSEC3">
+            <summary>
+              Authenticated next secure owner.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc5155"/>
+            <seealso cref="T:Makaretu.Dns.NSEC3Record"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.NSEC3PARAM">
+            <summary>
+              Parameters needed by authoritative servers to calculate hashed owner names.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc5155#section-4"/>
+            <seealso cref="T:Makaretu.Dns.NSEC3PARAMRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.TKEY">
+            <summary>
+              Shared secret key.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc2930"/>
+            <seealso cref="T:Makaretu.Dns.TKEYRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.TSIG">
+            <summary>
+             Transactional Signature.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc2845"/>
+            <seealso cref="T:Makaretu.Dns.TSIGRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.AXFR">
+            <summary>
+            A request for a transfer of an entire zone.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035">RFC 1035</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.MAILB">
+            <summary>
+             A request for mailbox-related records (MB, MG or MR).
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035">RFC 1035</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.MAILA">
+            <summary>
+             A request for mail agent RRs (Obsolete - see MX).
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035">RFC 1035</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.ANY">
+            <summary>
+             A request for any record(s).
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc1035">RFC 1035</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.URI">
+            <summary>
+            A Uniform Resource Identifier (URI) resource record.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc7553">RFC 7553</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.DnsType.CAA">
+            <summary>
+            A certification authority authorization.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc6844">RFC 6844</seealso>
+        </member>
+        <member name="T:Makaretu.Dns.DomainName">
+            <summary>
+            A domain name consists of one or more parts, <see cref="P:Makaretu.Dns.DomainName.Labels"/>, that are 
+            conventionally delimited by dots, such as "example.org".
+            </summary>
+            <remarks>
+              Equality is based on the number of and the case-insenstive contents of <see cref="P:Makaretu.Dns.DomainName.Labels"/>.
+            </remarks>
+        </member>
+        <member name="F:Makaretu.Dns.DomainName.Root">
+            <summary>
+              The root name space.
+            </summary>
+            <value>
+             The empty string.
+            </value>
+            <remarks>
+              The DNS is a hierarchical naming system for computers, services, or any 
+              resource participating in the Internet. The top of that hierarchy is 
+              the root domain. The root domain does not have a formal name and its
+              label in the DNS hierarchy is an empty string. 
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.DomainName.Labels">
+            <summary>
+              A sequence of labels that make up the domain name.
+            </summary>
+            <value>
+              A sequece of strings.
+            </value>
+            <remarks>
+              The last label is the TLD (top level domain).
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.#ctor(System.String)">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.DomainName"/> class from
+              the specified name.
+            </summary>
+            <param name="name">
+              The dot separated labels; such as "example.org".
+            </param>
+            <remarks>
+              The name can contain backslash to escape a character.
+              See <see href="https://tools.ietf.org/html/rfc4343">RFC 4343</see> 
+              for the character escaping rules.
+              <note>
+              To use us backslash in a domain name (highly unusaual), you must use a double backslash.
+              </note>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.#ctor(System.String[])">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.DomainName"/> class from
+              the sequence of label.
+            </summary>
+            <param name="labels">
+              The <see cref="P:Makaretu.Dns.DomainName.Labels"/>.
+            </param>
+            <remarks>
+              The labels are not parsed; character escaping is not performed.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.Join(Makaretu.Dns.DomainName[])">
+            <summary>
+              Combine multiple domain names to form one.
+            </summary>
+            <param name="names">
+              The domain names to join.
+            </param>
+            <returns>
+              A new domain containing all the <paramref name="names"/>.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.ToString">
+            <summary>
+              Returns the textual representation.
+            </summary>
+            <returns>
+              The concatenation of the <see cref="P:Makaretu.Dns.DomainName.Labels"/> separated by a dot.
+            </returns>
+            <remarks>
+              If a label contains a dot or backslash, then it is escaped with a backslash.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.ToCanonical">
+            <summary>
+              Gets the canonical form of the domain name.
+            </summary>
+            <returns>
+              A domain name in the canonical form.
+            </returns>
+            <remarks>
+              All uppercase US-ASCII letters in the <see cref="P:Makaretu.Dns.DomainName.Labels"/> are
+              replaced by the corresponding lowercase US-ASCII letters.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.BelongsTo(Makaretu.Dns.DomainName)">
+            <summary>
+              Determines if this domain name is a subdomain of or equals an another
+              domain name.
+            </summary>
+            <param name="domain">
+              Another domain.
+            </param>
+            <returns>
+              <b>true</b> if this domain name is a subdomain of <paramref name="domain"/>
+              or equals <paramref name="domain"/>.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.IsSubdomainOf(Makaretu.Dns.DomainName)">
+            <summary>
+              Determines if this domain name is a subdomain of another
+              domain name.
+            </summary>
+            <param name="domain">
+              Another domain.
+            </param>
+            <returns>
+              <b>true</b> if this domain name is a subdomain of <paramref name="domain"/>.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.Parent">
+            <summary>
+              Gets the parent's domain name.
+            </summary>
+            <returns>
+              The domain name of the parent or <b>null</b> if
+              there is no parent; e.g. this is the root.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.GetHashCode">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.Equals(System.Object)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.Equals(Makaretu.Dns.DomainName)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.op_Equality(Makaretu.Dns.DomainName,Makaretu.Dns.DomainName)">
+            <summary>
+              Value equality.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.op_Inequality(Makaretu.Dns.DomainName,Makaretu.Dns.DomainName)">
+            <summary>
+              Value inequality.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.op_Implicit(System.String)~Makaretu.Dns.DomainName">
+            <summary>
+              Implicit casting of a <see cref="T:System.String"/> to a <see cref="T:Makaretu.Dns.DomainName"/>.
+            </summary>
+            <param name="s">
+              A possibly escaped domain name.
+            </param>
+            <returns>
+              A new <see cref="T:Makaretu.Dns.DomainName"/>
+            </returns>
+            <remarks>
+               Equivalent to <code>new DomainName(s)</code>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DomainName.LabelsEqual(System.String,System.String)">
+            <summary>
+              Determines if the two domain name labels are equal.
+            </summary>
+            <param name="a">A domain name label</param>
+            <param name="b">A domain name label</param>
+            <returns>
+              <b>true</b> if <paramref name="a"/> and <paramref name="b"/> are
+              considered equal.
+            </returns>
+            <remarks>
+              Uses a case-insenstive algorithm, where 'A-Z' are equivalent to 'a-z'.
+            </remarks>
+        </member>
+        <member name="T:Makaretu.Dns.DSRecord">
+            <summary>
+              Delegation Signer.
+            </summary>
+            <remarks>
+              Defined in <see href="https://tools.ietf.org/html/rfc4034#section-5">RFC 4034 section 5</see>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DSRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.DSRecord"/> class.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.DSRecord.#ctor(Makaretu.Dns.DNSKEYRecord,System.Boolean)">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.DSRecord"/> class
+              from the specified <see cref="T:Makaretu.Dns.DNSKEYRecord"/>.
+            </summary>
+            <param name="key">
+              The dns key to use.
+            </param>
+            <param name="force">
+              If <b>true</b>, key usage checks are ignored.
+            </param>
+            <exception cref="T:System.ArgumentException">
+              Both <see cref="F:Makaretu.Dns.DNSKEYFlags.ZoneKey"/> and <see cref="F:Makaretu.Dns.DNSKEYFlags.SecureEntryPoint"/>
+              must be set.
+            </exception>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+              The <see cref="P:Makaretu.Dns.ResourceRecord.Name"/> of the <paramref name="key"/> is missing.
+            </exception>
+        </member>
+        <member name="P:Makaretu.Dns.DSRecord.KeyTag">
+            <summary>
+              The tag of the referenced <see cref="T:Makaretu.Dns.DNSKEYRecord"/>.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.DSRecord.Algorithm">
+            <summary>
+              The <see cref="T:Makaretu.Dns.SecurityAlgorithm"/> of the referenced <see cref="T:Makaretu.Dns.DNSKEYRecord"/>.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.DSRecord.HashAlgorithm">
+            <summary>
+              The cryptographic hash algorithm used to create the 
+              <see cref="P:Makaretu.Dns.DSRecord.Digest"/>.
+            </summary>
+            <value>
+              One of the <see cref="T:Makaretu.Dns.DigestType"/> value.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.DSRecord.Digest">
+            <summary>
+              The digest of the referenced <see cref="T:Makaretu.Dns.DNSKEYRecord"/>.
+            </summary>
+            <remarks>
+              <c>digest = HashAlgorithm(DNSKEY owner name | DNSKEY RDATA)</c>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.DSRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DSRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DSRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.DSRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.EdnsDAUOption">
+            <summary>
+              DNSSEC Algorithm Understood.
+            </summary>
+            <remarks>
+             <para>
+             Defined in <see href="https://tools.ietf.org/html/rfc6975">RFC 6975 - 
+             Signaling Cryptographic Algorithm Understanding in DNS Security Extensions(DNSSEC)</see>
+             </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsDAUOption.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.EdnsDAUOption"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.EdnsDAUOption.Algorithms">
+            <summary>
+              The understood algorithms.
+            </summary>
+            <value>
+              A list of implemented <see cref="T:Makaretu.Dns.SecurityAlgorithm"/>.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsDAUOption.Create">
+            <summary>
+              Create a new instance of the <see cref="T:Makaretu.Dns.EdnsDAUOption"/> class with
+              the known/implemented security algorithms.
+            </summary>
+            <remarks>
+              The <see cref="P:Makaretu.Dns.EdnsDAUOption.Algorithms"/> are obtained from the <see cref="T:Makaretu.Dns.SecurityAlgorithmRegistry"/>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsDAUOption.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.EdnsDAUOption.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.EdnsDAUOption.ToString">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.EdnsDHUOption">
+            <summary>
+              DS Hash Understood.
+            </summary>
+            <remarks>
+             <para>
+             Defined in <see href="https://tools.ietf.org/html/rfc6975">RFC 6975 - 
+             Signaling Cryptographic Algorithm Understanding in DNS Security Extensions(DNSSEC)</see>
+             </para>
+            </remarks>
+            <seealso cref="T:Makaretu.Dns.DSRecord"/>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsDHUOption.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.EdnsDHUOption"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.EdnsDHUOption.Algorithms">
+            <summary>
+              The understood hashing algorithms.
+            </summary>
+            <value>
+              A list of implemented <see cref="T:Makaretu.Dns.DigestType"/>.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsDHUOption.Create">
+            <summary>
+              Create a new instance of the <see cref="T:Makaretu.Dns.EdnsDHUOption"/> class with
+              the known/implemented hashing algorithms.
+            </summary>
+            <remarks>
+              The <see cref="P:Makaretu.Dns.EdnsDHUOption.Algorithms"/> are obtained from the <see cref="T:Makaretu.Dns.DigestRegistry"/>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsDHUOption.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.EdnsDHUOption.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.EdnsDHUOption.ToString">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.EdnsKeepaliveOption">
+            <summary>
+              TCP idle time.
+            </summary>
+            <remarks>
+              Signals a variable idle timeout.  This
+              signalling encourages the use of long-lived TCP connections by
+              allowing the state associated with TCP transport to be managed
+              effectively with minimal impact on the DNS transaction time.
+            </remarks>
+            <seealso href="https://tools.ietf.org/html/rfc7828"/>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsKeepaliveOption.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.EdnsKeepaliveOption"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.EdnsKeepaliveOption.Timeout">
+            <summary>
+              The idle timeout value for the TCP connection.
+            </summary>
+            <value>
+              The resolution is 100 milliseconds.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsKeepaliveOption.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.EdnsKeepaliveOption.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.EdnsKeepaliveOption.ToString">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.EdnsN3UOption">
+            <summary>
+             NSEC3 Hash Understood.
+            </summary>
+            <remarks>
+             <para>
+             Defined in <see href="https://tools.ietf.org/html/rfc6975">RFC 6975 - 
+             Signaling Cryptographic Algorithm Understanding in DNS Security Extensions(DNSSEC)</see>
+             </para>
+            </remarks>
+            <seealso cref="T:Makaretu.Dns.NSEC3Record"/>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsN3UOption.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.EdnsN3UOption"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.EdnsN3UOption.Algorithms">
+            <summary>
+              The understood hashing algorithms.
+            </summary>
+            <value>
+              A list of implemented <see cref="T:Makaretu.Dns.DigestType"/>.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsN3UOption.Create">
+            <summary>
+              Create a new instance of the <see cref="T:Makaretu.Dns.EdnsDHUOption"/> class with
+              the known/implemented hashing algorithms.
+            </summary>
+            <remarks>
+              The <see cref="P:Makaretu.Dns.EdnsN3UOption.Algorithms"/> are obtained from the <see cref="T:Makaretu.Dns.DigestRegistry"/>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsN3UOption.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.EdnsN3UOption.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.EdnsN3UOption.ToString">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.EdnsNSIDOption">
+            <summary>
+              Name server ID.
+            </summary>
+            <remarks>
+             The identity of the name server.
+            </remarks>
+            <seealso href="https://tools.ietf.org/html/rfc5001"/>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsNSIDOption.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.EdnsNSIDOption"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.EdnsNSIDOption.Id">
+            <summary>
+              The ID of the name server.
+            </summary>
+            <value>
+              The bytes used to identify the name server.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsNSIDOption.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.EdnsNSIDOption.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.EdnsOption">
+            <summary>
+              Contains some information on an Extended DNS option.
+            </summary>
+            <remarks>
+              EdnsOptions are found in the <see cref="T:Makaretu.Dns.OPTRecord"/>.
+              <para>
+              The <see cref="T:Makaretu.Dns.EdnsOptionRegistry"/> contains the metadata on known
+              EDNS options. When reading, if the registry does not contain
+              the record, then an <see cref="T:Makaretu.Dns.UnknownEdnsOption"/> is used.
+              </para>
+            </remarks>
+            <seealso cref="T:Makaretu.Dns.OPTRecord"/>
+            <seealso href="https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-11">IANA - DNS EDNS0 Option Codes</seealso>.
+        </member>
+        <member name="P:Makaretu.Dns.EdnsOption.Type">
+            <summary>
+              The option type.
+            </summary>
+            <value>
+              A code to specify the type of EDNS option.
+            </value>
+            <remarks>
+              Codes are specified in <see href="https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-11">IANA - DNS EDNS0 Option Codes</see>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsOption.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <summary>
+              Read the data that is specific to the option <see cref="P:Makaretu.Dns.EdnsOption.Type"/>.
+            </summary>
+            <param name="reader">
+              The source of the option's data.
+            </param>
+            <param name="length">
+              The length, in bytes, of the data.
+            </param>
+            <remarks>
+              Derived classes must implement this method.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsOption.WriteData(Makaretu.Dns.WireWriter)">
+            <summary>
+              Write the data that is specific to the resource record <see cref="P:Makaretu.Dns.EdnsOption.Type"/>.
+            </summary>
+            <param name="writer">
+              The destination for the option's data.
+            </param>
+            <remarks>
+              Derived classes must implement this method.
+            </remarks>
+        </member>
+        <member name="T:Makaretu.Dns.EdnsOptionRegistry">
+            <summary>
+              Metadata on EDNS options.
+            </summary>
+            <see cref="T:Makaretu.Dns.EdnsOption"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionRegistry.Options">
+            <summary>
+              All the EDNS options.
+            </summary>
+            <remarks>
+              The key is the <see cref="T:Makaretu.Dns.EdnsOptionType"/>.
+              The value is a function that returns a new <see cref="T:Makaretu.Dns.EdnsOption"/>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsOptionRegistry.Register``1">
+            <summary>
+              Register a new EDNS option.
+            </summary>
+            <typeparam name="T">
+              A type that is derived from <see cref="T:Makaretu.Dns.EdnsOption"/>.
+            </typeparam>
+        </member>
+        <member name="T:Makaretu.Dns.EdnsPaddingOption">
+            <summary>
+              Padding for a <see cref="T:Makaretu.Dns.Message"/>.
+            </summary>
+            <remarks>
+             Padding is used to frustrate size-based correlation of the encrypted message.
+             <para>
+             Defined in <see href="https://tools.ietf.org/html/rfc7830">RFC 7830 - The EDNS(0) Padding Option</see>
+             </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsPaddingOption.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.EdnsPaddingOption"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.EdnsPaddingOption.Padding">
+            <summary>
+              The padding bytes.
+            </summary>
+            <value>
+              The bytes used for padding.  Normally all bytes are zero.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.EdnsPaddingOption.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.EdnsPaddingOption.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.EdnsPaddingOption.ToString">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.EdnsOptionType">
+            <summary>
+              EDSN option codes.
+            </summary>
+            <remarks>
+              Codes are specified in <see href="https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-11">IANA - DNS EDNS0 Option Codes</see>.
+            </remarks>
+            <seealso cref="P:Makaretu.Dns.EdnsOption.Type"/>
+            <seealso cref="T:Makaretu.Dns.OPTRecord"/>
+            <seealso cref="T:Makaretu.Dns.EdnsOptionRegistry"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.NSID">
+            <summary>
+              DNS Name Server Identifier (NSID) Option.
+            </summary>
+            <seealso cref="T:Makaretu.Dns.EdnsNSIDOption"/>
+            <seealso href="https://tools.ietf.org/html/rfc5001"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.DAU">
+            <summary>
+              DNSSEC Algorithm Understood.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc6975"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.DHU">
+            <summary>
+              DS Hash Understood.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc6975"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.N3U">
+            <summary>
+              NSEC3 Hash Understood.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc6975"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.ClientSubnet">
+            <summary>
+              Client Subnet in DNS Queries.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc7871"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.Expire">
+            <summary>
+              Extension Mechanisms for DNS (EDNS) EXPIRE Option.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc7314"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.Cookie">
+            <summary>
+              Domain Name System (DNS) Cookies.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc7873"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.Keepalive">
+            <summary>
+              The edns-tcp-keepalive EDNS0 Option.
+            </summary>
+            <seealso cref="T:Makaretu.Dns.EdnsKeepaliveOption"/>
+            <seealso href="https://tools.ietf.org/html/rfc7828"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.Padding">
+            <summary>
+              The EDNS(0) Padding Option.
+            </summary>
+            <seealso cref="T:Makaretu.Dns.EdnsPaddingOption"/>
+            <seealso href="https://tools.ietf.org/html/rfc7830"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.Chain">
+            <summary>
+              CHAIN Query Requests in DNS.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc7901"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.KeyTag">
+            <summary>
+               Signaling Trust Anchor Knowledge in DNSSEC.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc8145"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.ExperimentalMin">
+            <summary>
+              Minimum value for local or experiment use.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc6891"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.ExperimentalMax">
+            <summary>
+              Maximum value for local or experiment use.s
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc6891"/>
+        </member>
+        <member name="F:Makaretu.Dns.EdnsOptionType.FutureExpansion">
+            <summary>
+              Reserved for future expansion.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc6891"/>
+        </member>
+        <member name="T:Makaretu.Dns.HINFORecord">
+             <summary>
+               Host information. 
+             </summary>
+             <remarks>
+               Standard values for CPU and OS can be found in [RFC-1010].
+            
+               HINFO records are used to acquire general information about a host. The
+               main use is for protocols such as FTP that can use special procedures
+               when talking between machines or operating systems of the same type.
+             </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.HINFORecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.HINFORecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.HINFORecord.Cpu">
+            <summary>
+             CPU type.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.HINFORecord.OS">
+            <summary>
+             Operating system type.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.HINFORecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.HINFORecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.HINFORecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.HINFORecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.IPAddressExtensions">
+            <summary>
+              Extension methods for <see cref="T:System.Net.IPAddress"/>.
+            </summary>
+            <remarks>
+              Original code copied from <see href="https://github.com/MichaCo/DnsClient.NET/blob/dev/src/DnsClient/IpAddressExtensions.cs"/> 
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.IPAddressExtensions.GetArpaName(System.Net.IPAddress)">
+            <summary>
+            Translates a IPv4 or IPv6 address into an arpa address.
+            Used for reverse DNS lookup to get the domain name of the given address.
+            </summary>
+            <param name="ip">The address to translate.</param>
+            <returns>The arpa representation of the address.</returns>
+            <seealso href="https://en.wikipedia.org/wiki/.arpa"/>
+        </member>
+        <member name="T:Makaretu.Dns.IPresentationSerialiser">
+            <summary>
+              Presentation format serialisation of a resource record.
+            </summary>
+            <remarks>
+              The text representation of a <see cref="T:Makaretu.Dns.ResourceRecord"/>.
+              It is also referred to as the "master file format".
+              See <see href="https://tools.ietf.org/html/rfc1035">RFC 1035 - 5 Master File</see>
+              and <see href="https://tools.ietf.org/html/rfc3597">RFC 3597 - Handling of Unknown DNS Resource Record (RR) Types</see>
+              for more details.
+              <para>
+              The <see cref="T:Makaretu.Dns.ResourceRecord"/> adds helper methods to
+              deal with a <see cref="T:System.String"/>.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.IPresentationSerialiser.Read(Makaretu.Dns.PresentationReader)">
+            <summary>
+              Reads the text representation of a resource record.
+            </summary>
+            <param name="reader">
+              The source of the <see cref="T:Makaretu.Dns.ResourceRecord"/>.
+            </param>
+            <returns>
+              The final resource record.
+            </returns>
+            <remarks>
+              Reading a <see cref="T:Makaretu.Dns.ResourceRecord"/> will return a new instance that
+              is type specific
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.IPresentationSerialiser.Write(Makaretu.Dns.PresentationWriter)">
+            <summary>
+             Writes the text representation of a resource record.
+            </summary>
+            <param name="writer">
+              The destination of the <see cref="T:Makaretu.Dns.ResourceRecord"/>.
+            </param>
+        </member>
+        <member name="T:Makaretu.Dns.IResolver">
+            <summary>
+              Answers a question.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.IResolver.ResolveAsync(Makaretu.Dns.Message,System.Threading.CancellationToken)">
+            <summary>
+              Get an answer to a question.
+            </summary>
+            <param name="request">
+              A <see cref="T:Makaretu.Dns.Message"/> containing a <see cref="T:Makaretu.Dns.Question"/> that
+              needs to be answered.
+            </param>
+            <param name="cancel">
+              Is used to stop the task.  When cancelled, the <see cref="T:System.Threading.Tasks.TaskCanceledException"/> is raised.
+            </param>
+            <returns>
+              A task that represents the asynchronous operation. The task's value is
+              the <see cref="T:Makaretu.Dns.Message"/> response to the <paramref name="request"/>.
+            </returns>
+        </member>
+        <member name="T:Makaretu.Dns.IWireSerialiser">
+            <summary>
+              Wire format serialisation of a DNS object.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.IWireSerialiser.Read(Makaretu.Dns.WireReader)">
+            <summary>
+              Reads the DNS object that is encoded in the wire format.
+            </summary>
+            <param name="reader">
+              The source of the DNS object.
+            </param>
+            <returns>
+              The final DNS object.
+            </returns>
+            <remarks>
+              Reading a <see cref="T:Makaretu.Dns.ResourceRecord"/> will return a new instance that
+              is type specific unless the <see cref="M:Makaretu.Dns.ResourceRecord.GetDataLength">RDLENGTH</see>
+              is zero.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.IWireSerialiser.Write(Makaretu.Dns.WireWriter)">
+            <summary>
+              Writes the DNS object encoded in the wire format.
+            </summary>
+            <param name="writer">
+              The destination of the DNS object.
+            </param>
+        </member>
+        <member name="T:Makaretu.Dns.KeyExchangeMode">
+            <summary>
+              Identifies a key exchange algorithm.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.KeyExchangeMode.ServerAssignment">
+            <summary>
+              Server assignment.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.KeyExchangeMode.DiffieHellman">
+            <summary>
+             Diffie-Hellman exchange (DH).
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.KeyExchangeMode.GssApi">
+            <summary>
+             GSS-API negotiation.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.KeyExchangeMode.ResolverAssignment">
+            <summary>
+              Resolver assignment.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.KeyExchangeMode.KeyDeletion">
+            <summary>
+              Key deletion.
+            </summary>
+        </member>
+        <member name="T:Makaretu.Dns.Message">
+            <summary>
+              All communications inside of the domain protocol are carried in a single
+              format called a message.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.Message.opcode4">
+            <summary>
+              The least significant 4 bits of the opcode.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.Message.MaxLength">
+            <summary>
+              Maximum bytes of a message.
+            </summary>
+            <value>
+              9000 bytes.
+            </value>
+            <remarks>
+              In reality the max length is dictated by the network MTU.  For legacy IPv4 systems,
+              512 bytes should be used.  For DNSSEC, at least 4096 bytes are needed.
+              <para>
+              9000 bytes (less IP and UPD header lengths) is specified by Multicast DNS.
+              </para>
+            </remarks>
+        </member>
+        <member name="F:Makaretu.Dns.Message.MinLength">
+            <summary>
+              Minimum bytes of a messages
+            </summary>
+            <value>
+              12 bytes.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.Id">
+            <summary>
+            A 16 bit identifier assigned by the program that
+            generates any kind of query. This identifier is copied
+            the corresponding reply and can be used by the requester
+            to match up replies to outstanding queries.
+            </summary>
+            <value>
+              A unique identifier.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.QR">
+            <summary>
+              A one bit field that specifies whether this message is a query(0), or a response(1).
+            </summary>
+            <value>
+              <b>false</b> for a query; otherwise, <b>true</b> for a response.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.IsQuery">
+            <summary>
+              Determines if the message is query.
+            </summary>
+            <value>
+              <b>true</b> for a query; otherwise, <b>false</b> for a response.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.IsResponse">
+            <summary>
+              Determines if the message is a response to a query.
+            </summary>
+            <value>
+              <b>false</b> for a query; otherwise, <b>true</b> for a response.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.Opcode">
+            <summary>
+              The requested operation. 
+            </summary>
+            <value>
+              One of the <see cref="T:Makaretu.Dns.MessageOperation"/> values. Both standard
+              and extended values are supported.
+            </value>
+            <remarks>
+              This value is set by the originator of a query
+              and copied into the response.
+              <para>
+              Extended opcodes (values requiring more than 4 bits) are split between
+              the message header and the <see cref="T:Makaretu.Dns.OPTRecord"/> in the
+              <see cref="P:Makaretu.Dns.Message.AdditionalRecords"/> section.  When setting an extended opcode,
+              the <see cref="T:Makaretu.Dns.OPTRecord"/> will be created if it does not already
+              exist.
+              </para>
+            </remarks>
+            <seealso cref="M:Makaretu.Dns.Message.CreateResponse"/>
+        </member>
+        <member name="P:Makaretu.Dns.Message.AA">
+            <summary>
+               Authoritative Answer - this bit is valid in responses,
+               and specifies that the responding name server is an
+               authority for the domain name in question section.
+               
+               Note that the contents of the answer section may have
+               multiple owner names because of aliases.The AA bit
+               corresponds to the name which matches the query name, or
+               the first owner name in the answer section.
+            </summary>
+            <value>
+              <b>true</b> for an authoritative answer; otherwise, <b>false</b>.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.TC">
+            <summary>
+              TrunCation - specifies that this message was truncated
+              due to length greater than that permitted on the
+              transmission channel.
+            </summary>
+            <value>
+              <b>true</b> for a truncated message; otherwise, <b>false</b>.
+            </value>
+            <seealso cref="M:Makaretu.Dns.Message.Truncate(System.Int32)"/>
+        </member>
+        <member name="P:Makaretu.Dns.Message.RD">
+            <summary>
+               Recursion Desired - this bit may be set in a query and
+               is copied into the response. If RD is set, it directs
+               the name server to pursue the query recursively.
+               
+               Recursive query support is optional.
+            </summary>
+            <value>
+              <b>true</b> if recursion is desired; otherwise, <b>false</b>.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.RA">
+            <summary>
+               Recursion Available - this be is set or cleared in a
+               response, and denotes whether recursive query support is
+               available in the name server.
+            </summary>
+            <value>
+              <b>true</b> if recursion is available; otherwise, <b>false</b>.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.Z">
+            <summary>
+               Reserved for future use. 
+            </summary>
+            <value>
+               Must be zero in all queries and responses.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.AD">
+            <summary>
+              Authentic data.
+            </summary>
+            <value>
+              <b>true</b> if the response data is authentic; otherwise, <b>false</b>.
+            </value>
+            <remarks>
+              Only used in a response and indicates that
+              all the data included in the <see cref="P:Makaretu.Dns.Message.Answers"/> and 
+              <see cref="P:Makaretu.Dns.Message.AuthorityRecords"/> sections are authenticated by the 
+              server according to its DNSSEC policies.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.Message.CD">
+            <summary>
+              Checking disabled.
+            </summary>
+            <value>
+              <b>true</b> if the query does not require 
+              <see cref="P:Makaretu.Dns.Message.AD">authenticated data</see>; otherwise, <b>false</b>.
+            </value>
+            <remarks>
+              Only used in a query and indicates that pending (non-authenticated) 
+              data is acceptable to the resolver sending the query.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.Message.DO">
+            <summary>
+              Indicates that DNS Security Extensions (DNSSEC) are supported.
+            </summary>
+            <value>
+              <b>true</b> if DNSSEC is supported; otherwise, <b>false</b>.
+            </value>
+            <remarks>
+              The <b>DO</b> bit is actually in the <see cref="T:Makaretu.Dns.OPTRecord"/>, when setting
+              the record is added to <see cref="P:Makaretu.Dns.Message.AdditionalRecords"/> if not already present.
+            </remarks>
+            <seealso cref="M:Makaretu.Dns.Message.UseDnsSecurity"/>
+            <seealso href="https://tools.ietf.org/html/rfc3225"/>
+        </member>
+        <member name="P:Makaretu.Dns.Message.Status">
+            <summary>
+                Response code - this 4 bit field is set as part of responses.
+            </summary>
+            <value>
+              One of the <see cref="T:Makaretu.Dns.MessageStatus"/> values.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.Questions">
+            <summary>
+              The list of question.
+            </summary>
+            <value>
+              A list of questions.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.Answers">
+            <summary>
+              The list of answers.
+            </summary>
+            <value>
+              A list of answers.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.AuthorityRecords">
+            <summary>
+              The list of authority records.
+            </summary>
+            <value>
+              A list of authority resource records.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Message.AdditionalRecords">
+            <summary>
+              The list of additional records.
+            </summary>
+            <value>
+              A list of additional resource records.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.Message.CreateResponse">
+            <summary>
+              Create a response for the query message.
+            </summary>
+            <returns>
+              A new response for the query message.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.Message.Truncate(System.Int32)">
+            <summary>
+              Make the message not exceed the specified length.
+            </summary>
+            <param name="length">
+              The maximum number bytes for the message.
+            </param>
+            <remarks>
+              If the message does not fit into <paramref name="length"/> bytes, then <see cref="P:Makaretu.Dns.Message.AdditionalRecords"/>
+              are removed and then <see cref="P:Makaretu.Dns.Message.AuthorityRecords"/> are removed.  
+              <para>
+              If it is still too big, then the <see cref="P:Makaretu.Dns.Message.TC"/> bit is set.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.Message.UseDnsSecurity">
+            <summary>
+              Enables DNS Security Extensions (DNSSEC) for the message.
+            </summary>
+            <returns>
+              The <see cref="T:Makaretu.Dns.Message"/> for a fluent design.
+            </returns>
+            <remarks>
+              Sets <see cref="P:Makaretu.Dns.OPTRecord.DO"/> to <b>true</b>.  Adds an <see cref="T:Makaretu.Dns.OPTRecord"/> to
+              <see cref="P:Makaretu.Dns.Message.AdditionalRecords"/> if not already present.
+            </remarks>
+            <seealso cref="P:Makaretu.Dns.Message.DO"/>
+        </member>
+        <member name="M:Makaretu.Dns.Message.Read(Makaretu.Dns.WireReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.Message.Write(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.Message.ToString">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.MessageOperation">
+            <summary>
+              The requested operation of a <see cref="T:Makaretu.Dns.Message"/>.
+            </summary>
+            <remarks>
+              Defines the standard and extended (EDNS(0)) operations.  Standard
+              values are between 0 and 15 (0xF). Extended values are between 16 and
+              4095 (0xFFF).
+            </remarks>
+            <seealso cref="P:Makaretu.Dns.Message.Opcode"/>
+        </member>
+        <member name="F:Makaretu.Dns.MessageOperation.Query">
+            <summary>
+              Standard query.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageOperation.InverseQuery">
+            <summary>
+              Inverse query (obsolete), see <see href="https://tools.ietf.org/html/rfc3425"/>.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageOperation.Status">
+            <summary>
+              A server status request.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageOperation.Notify">
+            <summary>
+              Zone change, see <see href="https://tools.ietf.org/html/rfc1996"/>.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageOperation.Update">
+            <summary>
+              Update message, see <see href="https://tools.ietf.org/html/rfc2136"/>.
+            </summary>
+        </member>
+        <member name="T:Makaretu.Dns.MessageStatus">
+            <summary>
+              Response codes.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.NoError">
+            <summary>
+               No error condition
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.FormatError">
+            <summary>
+               The name server was unable to interpret the query.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.ServerFailure">
+            <summary>
+               The name server was unable to process this query due to a
+               problem with the name server.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.NameError">
+            <summary>
+               Meaningful only for responses from an authoritative name
+               server, this code signifies that the domain name 
+               referenced in the query does not exist.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.NotImplemented">
+            <summary>
+               The name server does not support the requested kind of query.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.Refused">
+            <summary>
+               The name server refuses to perform the specified operation for
+               policy reasons. 
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.YXDomain">
+            <summary>
+               Some name that ought not to exist, does exist.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.YXRRSet">
+            <summary>
+              Some RRset that ought not to exist, does exist.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.NXRRSet">
+            <summary>
+              Some RRset that ought not to exist, does exist.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.NotAuthoritative">
+            <summary>
+              The server is not authoritative for the zone named in the Zone Section.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.NotZone">
+            <summary>
+              A name used in the Prerequisite or Update Section is not within the
+              zone denoted by the Zone Section.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.BadVersion">
+            <summary>
+              Invalid version.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.BadSignature">
+            <summary>
+              Invalid signature (TSIG).
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.BadKey">
+            <summary>
+              Invalid key (TSIG).
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.BadTime">
+            <summary>
+            Invalid date/time (TSIG).
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.BADMODE">
+            <summary>
+              Bad TKEY mode (TKEY).
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.BADNAME">
+            <summary>
+              Duplicate key name (TKEY).
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MessageStatus.BADALG">
+            <summary>
+              Algorithm not supported (TKEY).
+            </summary>
+        </member>
+        <member name="T:Makaretu.Dns.MXRecord">
+            <summary>
+              Mail exchange.
+            </summary>
+            <remarks>
+              MX records cause type A additional section processing for the host
+              specified by EXCHANGE.The use of MX RRs is explained in detail in
+              [RFC-974].
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.MXRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.MXRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.MXRecord.Preference">
+            <summary>
+             The preference given to this RR among others at the same owner. 
+            </summary>
+            <value>
+              Lower values are preferred.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.MXRecord.Exchange">
+            <summary>
+             A domain-name which specifies a host willing to act as
+             a mail exchange for the owner name.
+            </summary>
+            <value>
+              The name of an mail exchange.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.MXRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.MXRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.MXRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.MXRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.NSEC3Flags">
+            <summary>
+              The processing options of a <see cref="T:Makaretu.Dns.NSEC3Record"/>.
+            </summary>
+            <remarks>
+              Defined by <see href="https://tools.ietf.org/html/rfc5155#section-3.1.2">RFC 5155 - DNS Security (DNSSEC) Hashed Authenticated Denial of Existence</see>.
+            </remarks>
+        </member>
+        <member name="F:Makaretu.Dns.NSEC3Flags.OptOut">
+            <summary>
+              Indicates uncovered unsigned delegations.
+            </summary>
+        </member>
+        <member name="T:Makaretu.Dns.NSEC3PARAMRecord">
+            <summary>
+              Parameters needed by authoritative servers to calculate hashed owner names.
+            </summary>
+            <remarks>
+              Defined by <see href="https://tools.ietf.org/html/rfc5155#section-4">RFC 5155 - DNS Security (DNSSEC) Hashed Authenticated Denial of Existence</see>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.NSEC3PARAMRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.NSEC3PARAMRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.NSEC3PARAMRecord.HashAlgorithm">
+            <summary>
+              The cryptographic hash algorithm used to create the hashed owner name.
+            </summary>
+            <value>
+              One of the <see cref="T:Makaretu.Dns.DigestType"/> value.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.NSEC3PARAMRecord.Flags">
+            <summary>
+              Not used, must be zero.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.NSEC3PARAMRecord.Iterations">
+            <summary>
+              Number of times to perform the <see cref="P:Makaretu.Dns.NSEC3PARAMRecord.HashAlgorithm"/>.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.NSEC3PARAMRecord.Salt">
+            <summary>
+              Appended to the original owner name before hashing.
+            </summary>
+            <remarks>
+              Used to defend against pre-calculated dictionary attacks.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.NSEC3PARAMRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSEC3PARAMRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSEC3PARAMRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSEC3PARAMRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.NSEC3Record">
+            <summary>
+              Authenticated denial of existence for DNS Resource Record Sets.
+            </summary>
+            <remarks>
+              Defined by <see href="https://tools.ietf.org/html/rfc5155#section-3">RFC 5155 - DNS Security (DNSSEC) Hashed Authenticated Denial of Existence</see>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.NSEC3Record.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.NSEC3Record"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.NSEC3Record.HashAlgorithm">
+            <summary>
+              The cryptographic hash algorithm used to create the <see cref="P:Makaretu.Dns.NSEC3Record.NextHashedOwnerName"/>.
+            </summary>
+            <value>
+              One of the <see cref="T:Makaretu.Dns.DigestType"/> value.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.NSEC3Record.Flags">
+            <summary>
+             Indicates different processing.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.NSEC3Record.Iterations">
+            <summary>
+              Number of times to perform the <see cref="P:Makaretu.Dns.NSEC3Record.HashAlgorithm"/>.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.NSEC3Record.Salt">
+            <summary>
+              Appended to the original owner name before hashing.
+            </summary>
+            <remarks>
+              Used to defend against pre-calculated dictionary attacks.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.NSEC3Record.NextHashedOwnerName">
+            <summary>
+              The next hashed owner name that has authoritative data.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.NSEC3Record.Types">
+            <summary>
+              The sequence of RR types present at the NSEC3 RR's owner name.
+            </summary>
+            <value>
+              Defaults to the empty list.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.NSEC3Record.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSEC3Record.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSEC3Record.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSEC3Record.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.NSECRecord">
+            <summary>
+              Contains the the next owner name and the set of RR
+              types present at the NSEC RR's owner name [RFC3845].
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.NSECRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.NSECRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.NSECRecord.NextOwnerName">
+            <summary>
+              The next owner name that has authoritative data or contains a
+              delegation point NS RRset
+            </summary>
+            <remarks>
+              Defaults to the <see cref="F:Makaretu.Dns.DomainName.Root"/>.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.NSECRecord.Types">
+            <summary>
+              The sequence of RR types present at the NSEC RR's owner name.
+            </summary>
+            <value>
+              Defaults to the empty list.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.NSECRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSECRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSECRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSECRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.NSRecord">
+            <summary>
+              An authoritative name server.
+            </summary>
+            <remarks>
+              NS records cause both the usual additional section processing to locate
+              a type A record, and, when used in a referral, a special search of the
+              zone in which they reside for glue information.
+              
+              The NS RR states that the named host should be expected to have a zone
+              starting at owner name of the specified class.  Note that the class may
+              not indicate the protocol family which should be used to communicate
+              with the host, although it is typically a strong hint.For example,
+              hosts which are name servers for either Internet (IN) or Hesiod (HS)
+              class information are normally queried using IN class protocols.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.NSRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.NSRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.NSRecord.Authority">
+            <summary>
+              A domain-name which specifies a host which should be
+              authoritative for the specified class and domain.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.NSRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NSRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.NULLRecord">
+            <summary>
+              A null RR (EXPERIMENTAL).
+            </summary>
+            <remarks>
+             NULL records cause no additional section processing.  NULL RRs are not
+             allowed in master files. NULLs are used as placeholders in some
+             experimental extensions of the DNS.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.NULLRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.NULLRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.NULLRecord.Data">
+            <summary>
+               Specfic data for the resource.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.NULLRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NULLRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.NULLRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.OPTRecord">
+            <summary>
+              An extension mechanism for DNS (EDNS(0)).
+            </summary>
+            <remarks>
+              An OPT record does not carry any DNS data. It is used only to
+              contain control information pertaining to the question-and-answer
+              sequence of a specific transaction. OPT RRs MUST NOT be cached,
+              forwarded, or stored in or loaded from master files.
+              <para>
+              The <b>OPTRecord</b> can be present in the <see cref="P:Makaretu.Dns.Message.AdditionalRecords"/>
+              section.
+              </para>
+              <note>
+              The <see cref="P:Makaretu.Dns.ResourceRecord.Class"/> property is repurposed to specify
+              the requestor's payload size.
+              </note>
+              <note>
+              The <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/> property is repurposed to specify
+              the <see cref="P:Makaretu.Dns.OPTRecord.Opcode8"/>, <see cref="P:Makaretu.Dns.OPTRecord.Version"/> and <see cref="P:Makaretu.Dns.OPTRecord.DO"/> properties.
+              </note>
+            </remarks>
+            <seealso href="https://tools.ietf.org/html/rfc6891"/>
+        </member>
+        <member name="M:Makaretu.Dns.OPTRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.OPTRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.OPTRecord.RequestorPayloadSize">
+            <summary>
+              The maximimum packet size that can be received by the requestor.
+            </summary>
+            <value>
+              Specified in number of bytes. Defaults to 1280, which is reasonable over Ethernet.
+            </value>
+            <remarks>
+              The <see cref="P:Makaretu.Dns.ResourceRecord.Class"/> property is repurposed to specify
+              the requestor's payload size.
+            </remarks>
+            <seealso href="https://tools.ietf.org/html/rfc6891#section-6.2.3"/>
+        </member>
+        <member name="P:Makaretu.Dns.OPTRecord.Opcode8">
+            <summary>
+              The most significant 8 bits of the opcode.
+            </summary>
+            <value>
+              Defaults to zero.
+            </value>
+            <remarks>
+              The <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/> property is repurposed to specify
+              the opcode's most significant bits.
+            </remarks>
+            <seealso cref="P:Makaretu.Dns.Message.Opcode"/>
+        </member>
+        <member name="P:Makaretu.Dns.OPTRecord.Version">
+            <summary>
+              The EDNS version.
+            </summary>
+            <value>
+              Defaults to zero.
+            </value>
+            <remarks>
+              The <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/> property is repurposed to specify
+              the version.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.OPTRecord.DO">
+            <summary>
+              The DNSSEC OK bit as defined by RFC3225.
+            </summary>
+            <value>
+              Defaults to <b>false</b>.
+            </value>
+            <remarks>
+              The <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/> property is repurposed to specify
+              the version.
+            </remarks>
+            <seealso href="https://tools.ietf.org/html/rfc3225"/>
+        </member>
+        <member name="P:Makaretu.Dns.OPTRecord.Options">
+            <summary>
+              The extended DNS options.
+            </summary>
+            <value>
+              The EDNS option sequence.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.OPTRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.OPTRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.OPTRecord.ToString">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.PresentationReader">
+            <summary>
+              Methods to read DNS data items encoded in the presentation (text) format.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.PresentationReader.tokenStartsNewLine">
+            <summary>
+              Indicates that the token is at the begining of the line without
+              any leading whitespace.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.PresentationReader.Position">
+            <summary>
+              The reader relative position within the stream.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.#ctor(System.IO.TextReader)">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.PresentationReader"/> using the
+              specified <see cref="T:System.IO.TextReader"/>.
+            </summary>
+            <param name="text">
+              The source for data items.
+            </param>
+        </member>
+        <member name="P:Makaretu.Dns.PresentationReader.Origin">
+            <summary>
+              The origin domain name, sometimes called the zone name.
+            </summary>
+            <value>
+              Defaults to "".
+            </value>
+            <remarks>
+              <b>Origin</b> is used when the domain name "@" is used
+              for a domain name.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadByte">
+            <summary>
+              Read a byte.
+            </summary>
+            <returns>
+              The number as a byte.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadUInt16">
+            <summary>
+              Read an unsigned short.
+            </summary>
+            <returns>
+              The number as an unsigned short.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadUInt32">
+            <summary>
+              Read an unsigned int.
+            </summary>
+            <returns>
+              The number as an unsignd int.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadDomainName">
+            <summary>
+              Read a domain name.
+            </summary>
+            <returns>
+              The domain name as a string.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadString">
+            <summary>
+              Read a string.
+            </summary>
+            <returns>
+              The string.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadBase64String">
+            <summary>
+              Read bytes encoded in base-64.
+            </summary>
+            <returns>
+              The bytes.
+            </returns>
+            <remarks>
+              This must be the last field in the RDATA because the string
+              can contain embedded spaces.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadTimeSpan16">
+            <summary>
+              Read a time span (interval) in 16-bit seconds.
+            </summary>
+            <returns>
+              A <see cref="T:System.TimeSpan"/> with second resolution.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadTimeSpan32">
+            <summary>
+              Read a time span (interval) in 32-bit seconds.
+            </summary>
+            <returns>
+              A <see cref="T:System.TimeSpan"/> with second resolution.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadIPAddress(System.Int32)">
+            <summary>
+              Read an Internet address.
+            </summary>
+            <param name="length">
+              Ignored.
+            </param>
+            <returns>
+              An <see cref="T:System.Net.IPAddress"/>.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadDnsType">
+            <summary>
+              Read a DNS Type.
+            </summary>
+            <remarks>
+              Either the name of a <see cref="T:Makaretu.Dns.DnsType"/> or
+              the string "TYPEx".
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadDateTime">
+            <summary>
+              Read a date/time.
+            </summary>
+            <returns>
+              The <see cref="T:System.DateTime"/>.
+            </returns>
+            <remarks>
+              Allows a <see cref="T:System.DateTime"/> in the form "yyyyMMddHHmmss" or
+              the number of seconds since the unix epoch (00:00:00 on 1 January 1970 UTC).
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadResourceData">
+            <summary>
+              Read hex encoded RDATA.
+            </summary>
+            <returns>
+              A byte array containing the RDATA.
+            </returns>
+            <remarks>
+              See <see href="https://tools.ietf.org/html/rfc3597#section-5"/> for all
+              the details.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.ReadResourceRecord">
+            <summary>
+              Read a resource record.
+            </summary>
+            <returns>
+              A <see cref="T:Makaretu.Dns.ResourceRecord"/> or <b>null</b> if no more
+              resource records are available.
+            </returns>
+            <remarks>
+              Processes the "$ORIGIN" and "$TTL" specials that define the
+              <see cref="P:Makaretu.Dns.PresentationReader.Origin"/> and a default time-to-live respectively.
+              <para>
+              A domain name can be "@" to refer to the <see cref="P:Makaretu.Dns.PresentationReader.Origin"/>. 
+              A missing domain name will use the previous record's domain name.
+              </para>
+              <para>
+              Defaults the <see cref="P:Makaretu.Dns.ResourceRecord.Class"/> to <see cref="F:Makaretu.Dns.DnsClass.IN"/>.
+              Defaults the <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/>  to either the "$TTL" or
+              the <see cref="F:Makaretu.Dns.ResourceRecord.DefaultTTL"/>.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationReader.IsEndOfLine">
+            <summary>
+              Determines if the reader is at the end of a line.
+            </summary>
+        </member>
+        <member name="T:Makaretu.Dns.PresentationWriter">
+            <summary>
+              Methods to write DNS data items encoded in the presentation (text) format.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.#ctor(System.IO.TextWriter)">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.PresentationWriter"/> using the
+              specified <see cref="T:System.IO.TextWriter"/>.
+            </summary>
+            <param name="text">
+              The source for data items.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteSpace">
+            <summary>
+              Writes a space.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteEndOfLine">
+            <summary>
+              Writes a CRLF.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteByte(System.Byte,System.Boolean)">
+            <summary>
+              Write an byte.
+            </summary>
+            <param name="value">
+              The value to write.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteUInt16(System.UInt16,System.Boolean)">
+            <summary>
+              Write an unsigned short.
+            </summary>
+            <param name="value">
+              The value to write.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteUInt32(System.UInt32,System.Boolean)">
+            <summary>
+              Write an unsigned int.
+            </summary>
+            <param name="value">
+              The value to write.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteString(System.String,System.Boolean)">
+            <summary>
+              Write a string.
+            </summary>
+            <param name="value">
+              An ASCII string.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+            <remarks>
+              Quotes and escapes are added as needned.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteStringUnencoded(System.String,System.Boolean)">
+            <summary>
+              Write a string.
+            </summary>
+            <param name="value">
+              An ASCII string.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+            <remarks>
+              Quotes and escapes are NOT added.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteDomainName(Makaretu.Dns.DomainName,System.Boolean)">
+            <summary>
+              Write a domain name.
+            </summary>
+            <param name="value">
+              The value to write.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteBase16String(System.Byte[],System.Boolean)">
+            <summary>
+              Write bytes encoded in base-16.
+            </summary>
+            <param name="value">
+              The value to write.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteBase64String(System.Byte[],System.Boolean)">
+            <summary>
+              Write bytes encoded in base-64.
+            </summary>
+            <param name="value">
+              The value to write.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteTimeSpan16(System.TimeSpan,System.Boolean)">
+            <summary>
+              Write a time span (interval) in 16-bit seconds.
+            </summary>
+            <param name="value">
+              The number of seconds to write.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteTimeSpan32(System.TimeSpan,System.Boolean)">
+            <summary>
+              Write a time span (interval) in 32-bit seconds.
+            </summary>
+            <param name="value">
+              The number of seconds to write.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteDateTime(System.DateTime,System.Boolean)">
+            <summary>
+              Write a date/time.
+            </summary>
+            <param name="value">
+              The UTC <see cref="T:System.DateTime"/>. Resolution is seconds.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteIPAddress(System.Net.IPAddress,System.Boolean)">
+            <summary>
+              Write an Internet address.
+            </summary>
+            <param name="value">
+              The value to write.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteDnsType(Makaretu.Dns.DnsType,System.Boolean)">
+            <summary>
+              Write a DNS Type.
+            </summary>
+            <param name="value">
+              The value to write.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+            <remarks>
+              Either the name of a <see cref="T:Makaretu.Dns.DnsType"/> or
+              the string "TYPEx".
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.PresentationWriter.WriteDnsClass(Makaretu.Dns.DnsClass,System.Boolean)">
+            <summary>
+              Write a DNS Class.
+            </summary>
+            <param name="value">
+              The value to write.
+            </param>
+            <param name="appendSpace">
+              Write a space after the value.
+            </param>
+            <remarks>
+              Either the name of a <see cref="T:Makaretu.Dns.DnsClass"/> or
+              the string "CLASSx".
+            </remarks>
+        </member>
+        <member name="T:Makaretu.Dns.PTRRecord">
+            <summary>
+              A domain name pointer.
+            </summary>
+            <remarks>
+             PTR records cause no additional section processing.  These RRs are used
+             in special domains to point to some other location in the domain space.
+             These records are simple data, and don't imply any special processing
+             similar to that performed by CNAME, which identifies aliases.See the
+             description of the IN-ADDR.ARPA domain for an example.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.PTRRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.PTRRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.PTRRecord.DomainName">
+            <summary>
+             A domain-name which points to some location in the
+             domain name space.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.PTRRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.PTRRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.PTRRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.PTRRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.Question">
+            <summary>
+              A question about a domain name to resolve.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.Question.Name">
+            <summary>
+               A domain name to query.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.Question.Type">
+            <summary>
+               A two octet code which specifies the type of the query.
+            </summary>
+            <value>
+               One of the <see cref="T:Makaretu.Dns.DnsType"/> values.
+            </value>
+            <remarks>
+               The values for this field include all codes valid for a
+               TYPE field, together with some more general codes which
+               can match more than one type of the resource record.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.Question.Class">
+            <summary>
+              A two octet code that specifies the class of the query.
+            </summary>
+            <value>
+              Defaults to <see cref="F:Makaretu.Dns.DnsClass.IN"/>.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.Question.Read(Makaretu.Dns.WireReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.Question.Write(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.Question.ToString">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.Resolving.CachedNameServer">
+            <summary>
+              A caching name server.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.CachedNameServer.Prune(System.Nullable{System.DateTime})">
+            <summary>
+              Removes any expired resource record from the cache.
+            </summary>
+            <param name="now">
+              The time to use to determine if a resource record is expired.
+              Defaults to <see cref="P:System.DateTime.Now"/>.
+            </param>
+            <remarks>
+              Authoritative nodes are not pruned.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.CachedNameServer.PruneContinuously(System.TimeSpan)">
+            <summary>
+             Prune the cache in the background.
+            </summary>
+            <param name="interval">
+             The delay between pruning.
+            </param>
+            <returns>
+              Allows cancelation of the background task.
+            </returns>
+            <seealso cref="M:Makaretu.Dns.Resolving.CachedNameServer.Prune(System.Nullable{System.DateTime})"/>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.CachedNameServer.Add(Makaretu.Dns.Message)">
+            <summary>
+              Cache the response.
+            </summary>
+            <param name="response">
+              A response from a name server.
+            </param>
+            <remarks>
+              Both the <see cref="P:Makaretu.Dns.Message.Answers"/> and
+              the <see cref="P:Makaretu.Dns.Message.AdditionalRecords"/> are added to the cache.
+              Only resources records with a positive <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/>
+              are added.
+            </remarks>
+        </member>
+        <member name="T:Makaretu.Dns.Resolving.Catalog">
+            <summary>
+              A dictionary of <see cref="T:Makaretu.Dns.Resolving.Node">DNS nodes</see>.
+            </summary>
+            <remarks>
+              This is a portion of the DNS distribute database.
+              <para>
+              The key is the case insensitive <see cref="P:Makaretu.Dns.Resolving.Node.Name"/> and the value is a <see cref="T:Makaretu.Dns.Resolving.Node"/>.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.Catalog.IncludeZone(Makaretu.Dns.PresentationReader)">
+            <summary>
+              Include the zone information.
+            </summary>
+            <param name="reader">
+              The source of the zone information.
+            </param>
+            <returns>
+              The <see cref="T:Makaretu.Dns.Resolving.Node"/> that represents the zone.
+            </returns>
+            <remarks>
+              All included nodes are marked as <see cref="P:Makaretu.Dns.Resolving.Node.Authoritative"/>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.Catalog.RemoveZone(Makaretu.Dns.DomainName)">
+            <summary>
+              Remove all nodes that belong to the zone.
+            </summary>
+            <param name="name">
+              The name of the zone.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.Catalog.Add(Makaretu.Dns.ResourceRecord,System.Boolean)">
+            <summary>
+              Add or update the resource record to the catalog. 
+            </summary>
+            <param name="resource">
+              The <see cref="P:Makaretu.Dns.ResourceRecord.Name"/> is also the name of the node.
+            </param>
+            <param name="authoritative">
+              Indicates if the <paramref name="resource"/> is authoritative or cached.
+              Only used when a <see cref="T:Makaretu.Dns.Resolving.Node"/> is created.
+            </param>
+            <returns>
+              The <see cref="T:Makaretu.Dns.Resolving.Node"/> that was created or updated.
+            </returns>
+            <remarks>
+              If the <paramref name="resource"/> already exists, then update the
+              non-equality properties <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/>
+              and <see cref="P:Makaretu.Dns.DnsObject.CreationTime"/>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.Catalog.IncludeRootHints">
+            <summary>
+              Include the root name servers.
+            </summary>
+            <returns>
+              The <see cref="T:Makaretu.Dns.Resolving.Node"/> that represents the "root".
+            </returns>
+            <remarks>
+              A DNS recursive resolver typically needs a "root hints file". This file 
+              contains the names and IP addresses of the authoritative name servers for the root zone, 
+              so the software can bootstrap the DNS resolution process.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.Catalog.Include(Makaretu.Dns.PresentationReader,System.Boolean)">
+            <summary>
+              Include the resource records.
+            </summary>
+            <param name="reader">
+              The source of the resource records.
+            </param>
+            <param name="authoritative">
+              Indicates if a <see cref="T:Makaretu.Dns.ResourceRecord"/> is authoritative or cached.
+              Only used when a <see cref="T:Makaretu.Dns.Resolving.Node"/> is created.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.Catalog.NodesInCanonicalOrder">
+            <summary>
+              Get a sequence of nodes in canonical order.
+            </summary>
+            <returns>
+              A sequence of nodes in canonical order.
+            </returns>
+            <remarks>
+              Node names are converted to US-ASCII lowercase and
+              then sorted by their reversed labels.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.Catalog.IncludeReverseLookupRecords">
+            <summary>
+              Add PTR records for each authoritative A/AAAA record.
+            </summary>
+            <remarks>
+              This enables reverse DNS lookup of all address records.
+            </remarks>
+        </member>
+        <member name="T:Makaretu.Dns.Resolving.ConcurrentSet`1">
+            <summary>
+            A concurrent, simplified HashSet.
+            </summary>
+            <remarks>
+              This is a copy and paste of <see href="https://github.com/dotnet/roslyn/blob/master/src/Compilers/Core/Portable/InternalUtilities/ConcurrentSet.cs"/>
+              taken on 18 July 2018.
+            </remarks>
+        </member>
+        <member name="F:Makaretu.Dns.Resolving.ConcurrentSet`1.DefaultConcurrencyLevel">
+            <summary>
+            The default concurrency level is 2. That means the collection can cope with up to two
+            threads making simultaneous modifications without blocking.
+            Note ConcurrentDictionary's default concurrency level is dynamic, scaling according to
+            the number of processors.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.Resolving.ConcurrentSet`1.DefaultCapacity">
+            <summary>
+            Taken from ConcurrentDictionary.DEFAULT_CAPACITY
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.Resolving.ConcurrentSet`1._dictionary">
+            <summary>
+            The backing dictionary. The values are never used; just the keys.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.#ctor">
+            <summary>
+            Construct a concurrent set with the default concurrency level.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
+            <summary>
+            Construct a concurrent set using the specified equality comparer.
+            </summary>
+            <param name="equalityComparer">The equality comparer for values in the set.</param>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Construct a concurrent set using the specified the sequence.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.Resolving.ConcurrentSet`1.Count">
+            <summary>
+            Obtain the number of elements in the set.
+            </summary>
+            <returns>The number of elements in the set.</returns>
+        </member>
+        <member name="P:Makaretu.Dns.Resolving.ConcurrentSet`1.IsEmpty">
+            <summary>
+            Determine whether the set is empty.</summary>
+            <returns>true if the set is empty; otherwise, false.</returns>
+        </member>
+        <member name="P:Makaretu.Dns.Resolving.ConcurrentSet`1.IsReadOnly">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.Contains(`0)">
+            <summary>
+            Determine whether the given value is in the set.
+            </summary>
+            <param name="value">The value to test.</param>
+            <returns>true if the set contains the specified value; otherwise, false.</returns>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.Add(`0)">
+            <summary>
+            Attempts to add a value to the set.
+            </summary>
+            <param name="value">The value to add.</param>
+            <returns>true if the value was added to the set. If the value already exists, this method returns false.</returns>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
+            <summary>
+              Add a sequence to the set.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.Remove(`0)">
+            <summary>
+            Attempts to remove a value from the set.
+            </summary>
+            <param name="value">The value to remove.</param>
+            <returns>true if the value was removed successfully; otherwise false.</returns>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.Clear">
+            <summary>
+            Clear the set
+            </summary>
+        </member>
+        <member name="T:Makaretu.Dns.Resolving.ConcurrentSet`1.KeyEnumerator">
+            <summary>
+              enumerator for the keys.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.Resolving.ConcurrentSet`1.KeyEnumerator.Current">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.KeyEnumerator.MoveNext">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.KeyEnumerator.Reset">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.GetEnumerator">
+            <summary>
+            Obtain an enumerator that iterates through the elements in the set.
+            </summary>
+            <returns>An enumerator for the set.</returns>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.ConcurrentSet`1.CopyTo(`0[],System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.Resolving.NameServer">
+            <summary>
+              Anwsers questions from the local <see cref="P:Makaretu.Dns.Resolving.NameServer.Catalog"/>.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.Resolving.NameServer.Catalog">
+            <summary>
+              Information about some portion of the DNS database.
+            </summary>
+            <value>
+              A subset of the DNS database. Typically (1) one or more zones or (2) a cache of received
+              responses.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.Resolving.NameServer.AnswerAllQuestions">
+            <summary>
+              Determines how multiple questions are answered.
+            </summary>
+            <value>
+              <b>false</b> to answer <b>any</b> of the questions. 
+              <b>false</b> to answer <b>all</b> of the questions.
+              The default is <b>false</b>.
+            </value>
+            <remarks>
+              Standard DNS specifies that only one of the questions need to be answered.
+              Multicast DNS specifies that all the questions need to be answered.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.NameServer.ResolveAsync(Makaretu.Dns.Message,System.Threading.CancellationToken)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.NameServer.ResolveAsync(Makaretu.Dns.Question,Makaretu.Dns.Message,System.Threading.CancellationToken)">
+            <summary>
+              Get an answer to a question.
+            </summary>
+            <param name="question">
+              The question to answer.
+            </param>
+            <param name="response">
+              Where the answers are added.  If <b>null</b>, then a new <see cref="T:Makaretu.Dns.Message"/> is
+              created.
+            </param>
+            <param name="cancel">
+              Is used to stop the task.  When cancelled, the <see cref="T:System.Threading.Tasks.TaskCanceledException"/> is raised.
+            </param>
+            <returns>
+              A task that represents the asynchronous operation. The task's value is
+              a <see cref="T:Makaretu.Dns.Message"/> response to the <paramref name="question"/>.
+            </returns>
+            <remarks>
+              If the question's domain does not exist, then the closest authority
+              (<see cref="T:Makaretu.Dns.SOARecord"/>) is added to the <see cref="P:Makaretu.Dns.Message.AuthorityRecords"/>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.NameServer.FindAnswerAsync(Makaretu.Dns.Question,Makaretu.Dns.Message,System.Threading.CancellationToken)">
+            <summary>
+              Find an answer to the <see cref="T:Makaretu.Dns.Question"/>.
+            </summary>
+            <param name="question">
+              The question to answer.
+            </param>
+            <param name="response">
+              Where the answers are added.
+            </param>
+            <param name="cancel">
+              Is used to stop the task.  When cancelled, the <see cref="T:System.Threading.Tasks.TaskCanceledException"/> is raised.
+            </param>
+            <returns>
+              A task that represents the asynchronous operation.  The task's value
+              is <b>true</b> if the resolver added an answer.
+            </returns>
+            <remarks>
+              Derived classes must implement this method.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.NameServer.AddSecurityExtensionsAsync(Makaretu.Dns.Message,Makaretu.Dns.Message)">
+            <summary>
+              
+            </summary>
+            <param name="request"></param>
+            <param name="response"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.NameServer.AddSecurityResourcesAsync(System.Collections.Generic.List{Makaretu.Dns.ResourceRecord})">
+            <summary>
+              Add the DNSSEC resources for the resource record set.
+            </summary>
+            <param name="rrset">
+              The set of resource records.
+            </param>
+            <remarks>
+              Add the signature records (RRSIG) for each resource in the set.
+            </remarks>
+        </member>
+        <member name="T:Makaretu.Dns.Resolving.Node">
+            <summary>
+              Locally held information on a domain name. 
+            </summary>
+            <remarks>
+              The domain name system is distributed, only a portion of the database
+              is available on each local host.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.Resolving.Node.Name">
+            <summary>
+              The name of the node.
+            </summary>
+            <value>
+              An absolute (fully qualified) domain name.  For example, "emanon.org".
+            </value>
+            <remarks>
+              All <see cref="P:Makaretu.Dns.Resolving.Node.Resources"/> must have a <see cref="P:Makaretu.Dns.ResourceRecord.Name"/> that
+              matches this value.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.Resolving.Node.ToString">
+            <inheritdoc />
+        </member>
+        <member name="P:Makaretu.Dns.Resolving.Node.Resources">
+            <summary>
+              The resource records associated with this node.
+            </summary>
+            <value>
+              Commonly called the RRSET (resource record set).
+            </value>
+            <remarks>
+              Duplicate resources are silently ignored.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.Resolving.Node.Authoritative">
+            <summary>
+              Indicates that the node's resources contains the complete information for
+              the node.
+            </summary>
+            <value>
+              <b>true</b> if the <see cref="P:Makaretu.Dns.Resolving.Node.Resources"/> are authoritative; otherwise, <b>false</b>.
+            </value>
+            <remarks>
+              An Authoritative node is typically defined in a <see cref="M:Makaretu.Dns.Resolving.Catalog.IncludeZone(Makaretu.Dns.PresentationReader)">zone</see>.
+            </remarks>
+        </member>
+        <member name="T:Makaretu.Dns.ResourceRecord">
+            <summary>
+              Contains some information on the named resource.
+            </summary>
+            <remarks>
+              The <see cref="T:Makaretu.Dns.ResourceRegistry"/> contains the metadata on known
+              resource records. When reading, if the registry does not contain
+              the record, then an <see cref="T:Makaretu.Dns.UnknownRecord"/> is used.
+            </remarks>
+        </member>
+        <member name="F:Makaretu.Dns.ResourceRecord.DefaultTTL">
+            <summary>
+              The default time interval that a resource record maybe cached.
+            </summary>
+            <value>
+              Defaults to 1 day.
+            </value>
+        </member>
+        <member name="F:Makaretu.Dns.ResourceRecord.DefaultHostTTL">
+            <summary>
+              The default time interval that a resource record containing
+              a host name maybe cached.
+            </summary>
+            <value>
+              Defaults to 1 day.
+            </value>
+            <remarks>
+              Host names are in A, AAAA, and HINFO records.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.ResourceRecord.Name">
+            <summary>
+              An owner name, i.e., the name of the node to which this
+              resource record pertains.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.ResourceRecord.CanonicalName">
+            <summary>
+              The canonical form of the owner name.
+            </summary>
+            <remarks>
+              All uppercase US-ASCII letters in the <see cref="P:Makaretu.Dns.ResourceRecord.Name"/> are
+              replaced by the corresponding lowercase US-ASCII letters.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.ResourceRecord.Type">
+            <summary>
+               One of the RR TYPE codes.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.ResourceRecord.Class">
+            <summary>
+               One of the RR CLASS codes.
+            </summary>
+            <value>
+              Defaults to <see cref="F:Makaretu.Dns.DnsClass.IN"/>.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.ResourceRecord.TTL">
+            <summary>
+               Specifies the time interval
+               that the resource record may be cached before the source
+               of the information should again be consulted. 
+            </summary>
+            <value>
+               The resolution is 1 second. Defaults to 1 day.
+            </value>
+            <remarks>
+               Zero values are interpreted to mean that the RR can only be
+               used for the transaction in progress, and should not be
+               cached.
+            </remarks>
+            <seealso cref="F:Makaretu.Dns.ResourceRecord.DefaultTTL"/>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.IsExpired(System.Nullable{System.DateTime})">
+            <summary>
+              Determines if the <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/> has expired.
+            </summary>
+            <param name="from">
+              The time to compare against.  If <b>null</b>, the default value, then
+              <see cref="P:System.DateTime.Now"/> is used.
+            </param>
+            <returns>
+              <b>true</b> if the resource is no longer valid; otherwise <b>false</b>.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.GetDataLength">
+            <summary>
+              The length of the resource specific data.
+            </summary>
+            <returns>
+              Number of bytes to represent the resource specific data.
+            </returns>
+            <remarks>
+              This is referred to as the <c>RDLENGTH</c> in the DNS spec.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.GetData">
+            <summary>
+              The resource specific data.
+            </summary>
+            <returns>
+              A byte array, never <b>null</b>.
+            </returns>
+            <remarks>
+              This is referred to as the <c>RDATA</c> in the DNS spec.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.Read(Makaretu.Dns.WireReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <summary>
+              Read the data that is specific to the resource record <see cref="P:Makaretu.Dns.ResourceRecord.Type"/>.
+            </summary>
+            <param name="reader">
+              The source of the resource record's data.
+            </param>
+            <param name="length">
+              The length, in bytes, of the data.
+            </param>
+            <remarks>
+              Derived classes must implement this method.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.Write(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <summary>
+              Write the data that is specific to the resource record <see cref="T:System.Type"/>.
+            </summary>
+            <param name="writer">
+              The destination for the DNS object's data.
+            </param>
+            <remarks>
+              Derived classes must implement this method.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.Equals(System.Object)">
+            <summary>
+              Determines if the specified object is equal to the current object.
+            </summary>
+            <param name="obj">
+              The object to compare.
+            </param>
+            <returns>
+              <b>true</b> if the specified object is equal to the current object; otherwise, <b>false</b>.
+            </returns>
+            <remarks>
+              Two Resource Records are considered equal if their <see cref="P:Makaretu.Dns.ResourceRecord.Name"/>, 
+              <see cref="P:Makaretu.Dns.ResourceRecord.Class"/>, <see cref="P:Makaretu.Dns.ResourceRecord.Type"/> and <see cref="M:Makaretu.Dns.ResourceRecord.GetData">data fields</see>
+              are equal. Note that the <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/> field is explicitly 
+              excluded from the comparison.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.op_Equality(Makaretu.Dns.ResourceRecord,Makaretu.Dns.ResourceRecord)">
+            <summary>
+              Value equality.
+            </summary>
+            <remarks>
+              Two Resource Records are considered equal if their <see cref="P:Makaretu.Dns.ResourceRecord.Name"/>, 
+              <see cref="P:Makaretu.Dns.ResourceRecord.Class"/>, <see cref="P:Makaretu.Dns.ResourceRecord.Type"/> and data fields
+              are equal. Note that the <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/> field is explicitly 
+              excluded from the comparison.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.op_Inequality(Makaretu.Dns.ResourceRecord,Makaretu.Dns.ResourceRecord)">
+            <summary>
+              Value inequality.
+            </summary>
+            <remarks>
+              Two Resource Records are considered equal if their <see cref="P:Makaretu.Dns.ResourceRecord.Name"/>, 
+              <see cref="P:Makaretu.Dns.ResourceRecord.Class"/>, <see cref="P:Makaretu.Dns.ResourceRecord.Type"/> and data fields
+              are equal. Note that the <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/> field is explicitly 
+              excluded from the comparison.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.GetHashCode">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.ToString">
+            <summary>
+              Returns the textual representation.
+            </summary>
+            <returns>
+              The presentation format of this resource record. 
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.Write(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <summary>
+              Write the textual representation of the data that is specific to 
+              the resource record.
+            </summary>
+            <param name="writer">
+              The destination for the resource record's data.
+            </param>
+            <remarks>
+              Derived classes should implement this method.
+              <para>
+              By default, this will write the hex encoding of
+              the <see cref="M:Makaretu.Dns.ResourceRecord.GetData">RDATA</see> preceeded by
+              "\#" and the number integer bytes.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.Read(System.String)">
+            <summary>
+              Create a new <see cref="T:Makaretu.Dns.ResourceRecord"/> from the
+              specified string.
+            </summary>
+            <param name="text">
+              The presentation format.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.Read(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <summary>
+              Read the textual representation of the data that is specific to 
+              the resource record <see cref="P:Makaretu.Dns.ResourceRecord.Type"/>.
+            </summary>
+            <param name="reader">
+              The source of the resource record's data.
+            </param>
+            <remarks>
+              Derived classes must implement this method.
+            </remarks>
+        </member>
+        <member name="T:Makaretu.Dns.ResourceRegistry">
+            <summary>
+              Metadata on resource records.
+            </summary>
+            <see cref="T:Makaretu.Dns.ResourceRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.ResourceRegistry.Records">
+            <summary>
+              All the resource records.
+            </summary>
+            <remarks>
+              The key is the DNS Resource Record type, <see cref="T:Makaretu.Dns.DnsType"/>.
+              The value is a function that returns a new <see cref="T:Makaretu.Dns.ResourceRecord"/>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRegistry.Register``1">
+            <summary>
+              Register a new resource record.
+            </summary>
+            <typeparam name="T">
+              A derived class of <see cref="T:Makaretu.Dns.ResourceRecord"/>.
+            </typeparam>
+            <exception cref="T:System.ArgumentException">
+              When RR TYPE is zero.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.ResourceRegistry.Create(Makaretu.Dns.DnsType)">
+            <summary>
+              Gets the resource record for the <see cref="T:Makaretu.Dns.DnsType"/>.
+            </summary>
+            <param name="type">
+              One of the <see cref="T:Makaretu.Dns.DnsType"/> values.
+            </param>
+            <returns>
+              A new instance derived from <see cref="T:Makaretu.Dns.ResourceRecord"/>.
+            </returns>
+            <remarks>
+              When the <paramref name="type"/> is not implemented, a new
+              of <see cref="T:Makaretu.Dns.UnknownRecord"/> is returned.
+            </remarks>
+        </member>
+        <member name="T:Makaretu.Dns.RPRecord">
+            <summary>
+              The person responsible for a name.
+            </summary>
+            <remarks>
+             The responsible person identification to any name in the DNS.
+            </remarks>
+            <seealso href="https://tools.ietf.org/html/rfc1183"/>
+        </member>
+        <member name="M:Makaretu.Dns.RPRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.RPRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.RPRecord.Mailbox">
+            <summary>
+              The mailbox for the responsible person.
+            </summary>
+            <value>
+              Defaults to <see cref="F:Makaretu.Dns.DomainName.Root"/>.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.RPRecord.TextName">
+            <summary>
+              The name of TXT records for the responsible person.
+            </summary>
+            <value>
+              Defaults to <see cref="F:Makaretu.Dns.DomainName.Root"/>.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.RPRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.RPRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.RPRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.RPRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.RRSIGRecord">
+            <summary>
+              Signature for a RRSET with a particular name, class, and type.
+            </summary>
+            <remarks>
+              Defined in <see href="https://tools.ietf.org/html/rfc4034#section-3">RFC 4034 section 3</see>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.RRSIGRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.RRSIGRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.RRSIGRecord.TypeCovered">
+            <summary>
+              The type of the RRset that is covered by this signature.
+            </summary>
+            <value>
+              One of the <see cref="T:Makaretu.Dns.DnsType"/> values.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.RRSIGRecord.Algorithm">
+            <summary>
+              Identifies the cryptographic algorithm to create the <see cref="P:Makaretu.Dns.RRSIGRecord.Signature"/>.
+            </summary>
+            <value>
+              Identifies the type of key (RSA, ECDSA, ...) and the
+              hashing algorithm.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.RRSIGRecord.Labels">
+            <summary>
+              The number of labels in the original RRSIG RR owner name.
+            </summary>
+            <remarks>
+              The significance of this field is that a validator
+              uses it to determine whether the answer was synthesized from a
+              wildcard.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.RRSIGRecord.OriginalTTL">
+            <summary>
+              The TTL of the covered RRset as it appears in the authoritative zone.
+            </summary>
+            <value>
+              The resolution is 1 second.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.RRSIGRecord.SignatureExpiration">
+            <summary>
+              The end date for the <see cref="P:Makaretu.Dns.RRSIGRecord.Signature"/>.
+            </summary>
+            <value>
+              The resolution is 1 second.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.RRSIGRecord.SignatureInception">
+            <summary>
+              The start date for the <see cref="P:Makaretu.Dns.RRSIGRecord.Signature"/>.
+            </summary>
+            <value>
+              The resolution is 1 second.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.RRSIGRecord.KeyTag">
+            <summary>
+              The key tag of the <see cref="T:Makaretu.Dns.DNSKEYRecord"/> that 
+              validates the <see cref="P:Makaretu.Dns.RRSIGRecord.Signature"/>.
+            </summary>
+            <value>
+              The <see cref="M:Makaretu.Dns.DNSKEYRecord.KeyTag"/> method produces this value.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.RRSIGRecord.SignerName">
+            <summary>
+              The owner name of the <see cref="T:Makaretu.Dns.DNSKEYRecord"/> that
+              validates the <see cref="P:Makaretu.Dns.RRSIGRecord.Signature"/>.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.RRSIGRecord.Signature">
+            <summary>
+              The cryptographic signature.
+            </summary>
+            <value>
+              The format depends upon the <see cref="P:Makaretu.Dns.RRSIGRecord.Algorithm"/>.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.RRSIGRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.RRSIGRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.RRSIGRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.RRSIGRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.SecurityAlgorithm">
+            <summary>
+             Identities the security algorithm used by DNSSEC resource records.
+            </summary>
+            <remarks>
+              The values are maintained by IANA at <see href="https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml#dns-sec-alg-numbers-1"/>
+              <para>
+              Implemented security algorithms are obtained from the <see cref="T:Makaretu.Dns.SecurityAlgorithmRegistry"/>.
+              </para>
+            </remarks>
+            <seealso cref="T:Makaretu.Dns.DNSKEYRecord"/>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.DELETE">
+            <summary>
+             Delete DS
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.RSAMD5">
+            <summary>
+              RSA/MD5 (deprecated)
+            </summary>
+            <remarks>
+              Must not be implemented according to <see href="https://tools.ietf.org/html/rfc6944">RFC 6944</see>.
+            </remarks>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.DH">
+            <summary>
+             Diffie-Hellman
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.DSA">
+            <summary>
+             DSA/SHA1
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.RSASHA1">
+            <summary>
+             RSA/SHA-1
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.DSANSEC3SHA1">
+            <summary>
+             DSA-NSEC3-SHA1
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.RSASHA1NSEC3SHA1">
+            <summary>
+             RSASHA1-NSEC3-SHA1
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.RSASHA256">
+            <summary>
+             RSA/SHA-256
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.RSASHA512">
+            <summary>
+             RSA/SHA-512
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.ECCGOST">
+            <summary>
+             GOST R 34.10-2001
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.ECDSAP256SHA256">
+            <summary>
+             ECDSA Curve P-256 with SHA-256
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.ECDSAP384SHA384">
+            <summary>
+             ECDSA Curve P-384 with SHA-384
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.ED25519">
+            <summary>
+             Ed25519
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.ED448">
+            <summary>
+             Ed448
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.INDIRECT">
+            <summary>
+             Indirect Keys
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.PRIVATEDNS">
+            <summary>
+             Private algorithm
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithm.PRIVATEOID">
+            <summary>
+             Private algorithm OID
+            </summary>
+        </member>
+        <member name="T:Makaretu.Dns.SecurityAlgorithmRegistry">
+            <summary>
+              Registry of implemented <see cref="T:Makaretu.Dns.SecurityAlgorithm"/>.
+            </summary>
+            <remarks>
+              IANA maintains a list of all known types at <see href="https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml#dns-sec-alg-numbers-1"/>.
+            </remarks>
+            <see cref="T:Makaretu.Dns.SecurityAlgorithm"/>
+        </member>
+        <member name="T:Makaretu.Dns.SecurityAlgorithmRegistry.Metadata">
+            <summary>
+              Metadata on a <see cref="T:Makaretu.Dns.SecurityAlgorithm"/>.
+            </summary>
+            <remarks>
+              Used by the <see cref="T:Makaretu.Dns.SecurityAlgorithmRegistry"/>.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.SecurityAlgorithmRegistry.Metadata.HashAlgorithm">
+            <summary>
+              The cryptographic hash algorithm to use.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.SecurityAlgorithmRegistry.Metadata.OtherNames">
+            <summary>
+              Other names associated with the algorithm.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.SecurityAlgorithmRegistry.Algorithms">
+            <summary>
+              Defined security algorithms.
+            </summary>
+            <remarks>
+              The key is the <see cref="T:Makaretu.Dns.SecurityAlgorithm"/>.
+              The value is th <see cref="T:Makaretu.Dns.SecurityAlgorithmRegistry.Metadata"/>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.SecurityAlgorithmRegistry.GetMetadata(Makaretu.Dns.SecurityAlgorithm)">
+            <summary>
+              Gets the meta data for the the <see cref="T:Makaretu.Dns.SecurityAlgorithm"/>.
+            </summary>
+            <param name="algorithm">
+              One of the <see cref="T:Makaretu.Dns.SecurityAlgorithm"/> values.
+            </param>
+            <returns>
+              The <see cref="T:Makaretu.Dns.SecurityAlgorithmRegistry.Metadata"/> for the <paramref name="algorithm"/>.
+            </returns>
+            <exception cref="T:System.NotImplementedException">
+              When the <paramref name="algorithm"/> is not defined.
+            </exception>
+        </member>
+        <member name="T:Makaretu.Dns.SOARecord">
+            <summary>
+              Marks the start of a zone of authority.
+            </summary>
+            <remarks>
+              Most of these fields are pertinent only for name server maintenance
+              operations.  However, MINIMUM is used in all query operations that
+              retrieve RRs from a zone.Whenever a RR is sent in a response to a
+              query, the TTL field is set to the maximum of the TTL field from the RR
+              and the MINIMUM field in the appropriate SOA.Thus MINIMUM is a lower
+              bound on the TTL field for all RRs in a zone.Note that this use of
+              MINIMUM should occur when the RRs are copied into the response and not
+              when the zone is loaded from a master file or via a zone transfer.  The
+              reason for this provison is to allow future dynamic update facilities to
+              change the SOA RR with known semantics.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.SOARecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.SOARecord"/> class.
+            </summary>
+            <remarks>
+              Sets <see cref="P:Makaretu.Dns.ResourceRecord.TTL"/> to zero.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.SOARecord.PrimaryName">
+            <summary>
+             The domain-name of the name server that was the
+             original or primary source of data for this zone.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.SOARecord.Mailbox">
+            <summary>
+             A domain-name which specifies the mailbox of the
+             person responsible for this zone.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.SOARecord.SerialNumber">
+            <summary>
+             The unsigned 32 bit version number of the original copy
+             of the zone.
+            </summary>
+            <remarks>
+             Zone transfers preserve this value. This
+             value wraps and should be compared using sequence space
+             arithmetic.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.SOARecord.Refresh">
+            <summary>
+              Interval before the zone should be refreshed.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.SOARecord.Retry">
+            <summary>
+              interval that should elapse before a failed refresh should be retried.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.SOARecord.Expire">
+            <summary>
+              Specifies the upper limit on
+              the time interval that can elapse before the zone is no
+              longer authoritative.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.SOARecord.Minimum">
+            <summary>
+             Minimum TTL field that should be exported with any RR from this zone.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.SOARecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.SOARecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.SOARecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.SOARecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.SRVRecord">
+            <summary>
+              Allows administrators to use several servers for a single domain.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.SRVRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.SRVRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.SRVRecord.Priority">
+            <summary>
+             The priority of this target host.
+            </summary>
+            <remarks>
+             A client MUST attempt to contact the target host with the 
+             lowest-numbered priority it can
+             reach; target hosts with the same priority SHOULD be tried in an
+             order defined by the weight field.The range is 0-65535. 
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.SRVRecord.Weight">
+            <summary>
+              A server selection mechanism.
+            </summary>
+            <remarks>
+              The weight field specifies a
+              relative weight for entries with the same priority.Larger
+              weights SHOULD be given a proportionately higher probability of
+              being selected.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.SRVRecord.Port">
+            <summary>
+              The port on this target host of this service.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.SRVRecord.Target">
+            <summary>
+              The domain name of the target host.
+            </summary>
+            <remarks>
+              There MUST be one or more
+              address records for this name, the name MUST NOT be an alias (in
+              the sense of RFC 1034 or RFC 2181).
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.SRVRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.SRVRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.SRVRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.SRVRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.TKEYRecord">
+            <summary>
+              Shared secret key.
+            </summary>
+            <remarks>
+              Defined in <see href="https://tools.ietf.org/html/rfc2930">RFC 2930</see>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.TKEYRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.TKEYRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.TKEYRecord.Algorithm">
+            <summary>
+              Identifies the cryptographic algorithm to create.
+            </summary>
+            <value>
+              Identifies the HMAC alogirthm.
+            </value>
+            <remarks>
+              The algorithm determines how the secret keying material agreed to 
+              using the TKEY RR is actually used to derive the algorithm specific key.
+            </remarks>
+            <seealso cref="P:Makaretu.Dns.TSIGRecord.Algorithm"/>
+        </member>
+        <member name="P:Makaretu.Dns.TKEYRecord.Inception">
+            <summary>
+              The start date for the <see cref="P:Makaretu.Dns.TKEYRecord.Key"/>.
+            </summary>
+            <value>
+              Resolution in seconds.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.TKEYRecord.Expiration">
+            <summary>
+              The end date for the <see cref="P:Makaretu.Dns.TKEYRecord.Key"/>.
+            </summary>
+            <value>
+              Resolution in seconds.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.TKEYRecord.Mode">
+            <summary>
+              The key exchange algorithm.
+            </summary>
+            <value>
+              One of the <see cref="T:Makaretu.Dns.KeyExchangeMode"/> values.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.TKEYRecord.Error">
+            <summary>
+              Expanded error code for TKEY.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.TKEYRecord.Key">
+            <summary>
+              The key exchange data.
+            </summary>
+            <value>
+              The format depends on the <see cref="P:Makaretu.Dns.TKEYRecord.Mode"/>.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.TKEYRecord.OtherData">
+            <summary>
+              Other data.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.TKEYRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.TKEYRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.TKEYRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.TKEYRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.TSIGRecord">
+            <summary>
+              Transaction Signature.
+            </summary>
+            <remarks>
+              Defined in <see href="https://tools.ietf.org/html/rfc2845">RFC 2845</see>.
+            </remarks>
+        </member>
+        <member name="F:Makaretu.Dns.TSIGRecord.HMACMD5">
+            <summary>
+             The <see cref="P:Makaretu.Dns.TSIGRecord.Algorithm"/> name for HMACMD5.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.TSIGRecord.GSSTSIG">
+            <summary>
+             The <see cref="P:Makaretu.Dns.TSIGRecord.Algorithm"/> name for GSSTSIG.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.TSIGRecord.HMACSHA1">
+            <summary>
+             The <see cref="P:Makaretu.Dns.TSIGRecord.Algorithm"/> name for HMACSHA1.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.TSIGRecord.HMACSHA224">
+            <summary>
+             The <see cref="P:Makaretu.Dns.TSIGRecord.Algorithm"/> name for HMACSHA224.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.TSIGRecord.HMACSHA256">
+            <summary>
+             The <see cref="P:Makaretu.Dns.TSIGRecord.Algorithm"/> name for HMACSHA256.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.TSIGRecord.HMACSHA384">
+            <summary>
+             The <see cref="P:Makaretu.Dns.TSIGRecord.Algorithm"/> name for HMACSHA384.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.TSIGRecord.HMACSHA512">
+            <summary>
+             The <see cref="P:Makaretu.Dns.TSIGRecord.Algorithm"/> name for HMACSHA512.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.TSIGRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.TSIGRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.TSIGRecord.Algorithm">
+            <summary>
+              Identifies the cryptographic algorithm to create the <see cref="P:Makaretu.Dns.TSIGRecord.MAC"/>.
+            </summary>
+            <value>
+              Identifies the HMAC alogirthm.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.TSIGRecord.TimeSigned">
+            <summary>
+              When the record was signed.
+            </summary>
+            <value>
+              Must be in <see cref="F:System.DateTimeKind.Utc"/>.
+              Resolution in seconds.
+              Defaults to <see cref="P:System.DateTime.UtcNow"/> less the milliseconds.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.TSIGRecord.MAC">
+            <summary>
+              The message authentication code.
+            </summary>
+            <value>
+              The format depends on the <see cref="P:Makaretu.Dns.TSIGRecord.Algorithm"/>.
+            </value>
+            <remarks>
+              See <see href="https://tools.ietf.org/html/rfc2845#section-3">Protocol Operation</see>
+              for details on generating the MAC.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.TSIGRecord.Fudge">
+            <summary>
+               Permitted error in <see cref="P:Makaretu.Dns.TSIGRecord.TimeSigned"/>.
+            </summary>
+            <value>
+              Defaults to 300 seconds.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.TSIGRecord.OriginalMessageId">
+            <summary>
+              The Original <see cref="P:Makaretu.Dns.Message.Id"/>.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.TSIGRecord.Error">
+            <summary>
+              Expanded error code for TSIG.
+            </summary>
+            <value>
+              <see cref="F:Makaretu.Dns.MessageStatus.NoError"/>, <see cref="F:Makaretu.Dns.MessageStatus.BadSignature"/>
+              <see cref="F:Makaretu.Dns.MessageStatus.BadKey"/> or <see cref="F:Makaretu.Dns.MessageStatus.BadTime"/>.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.TSIGRecord.OtherData">
+            <summary>
+              Other data.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.TSIGRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.TSIGRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.TSIGRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.TSIGRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.TXTRecord">
+            <summary>
+              Text strings.
+            </summary>
+            <remarks>
+              TXT RRs are used to hold descriptive text.  The semantics of the text
+              depends on the domain where it is found.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.TXTRecord.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.TXTRecord"/> class.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.TXTRecord.Strings">
+            <summary>
+             The sequence of strings.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.TXTRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.TXTRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.TXTRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.TXTRecord.WriteData(Makaretu.Dns.PresentationWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.UnknownEdnsOption">
+            <summary>
+              An unknown EDNS option.
+            </summary>
+            <remarks>
+              When an <see cref="T:Makaretu.Dns.EdnsOption"/> is read with a <see cref="P:Makaretu.Dns.EdnsOption.Type"/> that
+              is not <see cref="T:Makaretu.Dns.EdnsOptionRegistry">registered</see>, then this is used
+              to deserialise the information.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.UnknownEdnsOption.Data">
+            <summary>
+              Specfic data for the option.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.UnknownEdnsOption.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.UnknownEdnsOption.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.UnknownEdnsOption.ToString">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.UnknownRecord">
+            <summary>
+              An unknown resource record.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.UnknownRecord.Data">
+            <summary>
+               Specfic data for the resource.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.UnknownRecord.ReadData(Makaretu.Dns.WireReader,System.Int32)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.UnknownRecord.ReadData(Makaretu.Dns.PresentationReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.UnknownRecord.WriteData(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.UpdateMessage">
+            <summary>
+              Dynamic updates in the Domain Name System.
+            </summary>
+            <remarks>
+            <para>
+              <see href="https://tools.ietf.org/html/rfc2136">RFC 2136</see> allows adding or 
+              deleting resource records from a specified zone.
+            </para>
+            <para>
+              <see cref="P:Makaretu.Dns.UpdateMessage.Prerequisites"/> are  specified separately from 
+              <see cref="P:Makaretu.Dns.UpdateMessage.Updates">update operations</see>, and can specify a
+              dependency upon either the previous existence or nonexistence of an
+              RRset, or the existence of a single RR.
+            </para>
+            <para>
+              An update is atomic, i.e., all prerequisites must be satisfied or else
+              no update operations will take place. There are no data dependent
+              error conditions defined after the prerequisites have been met.
+            </para>
+            </remarks>
+            <seealso href="https://tools.ietf.org/html/rfc2136"/>
+        </member>
+        <member name="P:Makaretu.Dns.UpdateMessage.Id">
+            <summary>
+              A 16 bit identifier assigned by the program that
+              generates any kind of update. 
+            </summary>
+            <value>
+              A unique identifier assigned by the requestor.
+            </value>
+            <remarks>
+              This identifier is copied to
+              the corresponding response and can be used by the requestor
+              to match up replies to outstanding queries.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.UpdateMessage.QR">
+            <summary>
+              Determines if the message is a request or a response.
+            </summary>
+            <value>
+              0 if the message is a request or 1 if the message is a response.
+            </value>
+            <seealso cref="P:Makaretu.Dns.UpdateMessage.IsUpdate"/>
+            <seealso cref="P:Makaretu.Dns.UpdateMessage.IsResponse"/>
+        </member>
+        <member name="P:Makaretu.Dns.UpdateMessage.IsUpdate">
+            <summary>
+              Determines if the message is an update.
+            </summary>
+            <value>
+              <b>true</b> if <see cref="P:Makaretu.Dns.UpdateMessage.QR"/> is <b>false</b>.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.UpdateMessage.IsResponse">
+            <summary>
+              Determines if the message is a response to an update.
+            </summary>
+            <value>
+              <b>true</b> if <see cref="P:Makaretu.Dns.UpdateMessage.QR"/> is <b>true</b>.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.UpdateMessage.Opcode">
+            <summary>
+              The kind of message.
+            </summary>
+            <value>
+              Defaults to <see cref="F:Makaretu.Dns.MessageOperation.Update"/>.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.UpdateMessage.Z">
+            <summary>
+              Reserved for future use.  Must be zero in all updates
+              and responses.
+            </summary>
+            <value>
+              Must be zero.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.UpdateMessage.Status">
+            <summary>
+              Response code - this 4 bit field is set as part of responses.
+            </summary>
+            <value>
+              One of the <see cref="T:Makaretu.Dns.MessageStatus"/> values.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.UpdateMessage.Zone">
+            <summary>
+              The zone to update.
+            </summary>
+            <value>
+              Defaults to the empty zone.  <see cref="P:Makaretu.Dns.Question.Name"/> is <b>null</b>,
+              <see cref="P:Makaretu.Dns.Question.Class"/> is <see cref="F:Makaretu.Dns.DnsClass.IN"/> and
+              <see cref="P:Makaretu.Dns.Question.Type"/> is SOA (6).
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.UpdateMessage.Prerequisites">
+            <summary>
+              Resource records which must (not) preexist.
+            </summary>
+            <value>
+              Defaults to an empty list.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.UpdateMessage.Updates">
+            <summary>
+              Resource records to be added or deleted.
+            </summary>
+            <value>
+              Defaults to an empty list.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.UpdateMessage.AdditionalResources">
+            <summary>
+              The list of additional resource records.
+            </summary>
+            <value>
+              Defaults to an empty list.
+            </value>
+            <remarks>
+              The resources which are related to the update itself, or
+              to new resources being added by the update. For example, out of zone glue
+              (A RRs referred to by new NS RRs) should be presented here.
+              <para>
+              The  server can use or ignore out of zone glue, at the discretion of the
+              server implementor.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.UpdateMessage.CreateResponse">
+            <summary>
+              Create a response for the update message.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Makaretu.Dns.UpdateMessage.Read(Makaretu.Dns.WireReader)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.UpdateMessage.Write(Makaretu.Dns.WireWriter)">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.UpdatePrerequisiteList">
+            <summary>
+              Preconditions for a update.
+            </summary>
+            <remarks>
+              The list of <see cref="T:Makaretu.Dns.ResourceRecord">resource records</see> which must be
+              satisfied before an <see cref="T:Makaretu.Dns.UpdateMessage"/> can proceed.
+              <para>
+              <c>MustExist</c> and <c>MustNotExist</c> are convenience methods to create the 
+              various preconditions.
+              </para>
+            </remarks>
+            <seealso href="https://tools.ietf.org/html/rfc2136"/>
+        </member>
+        <member name="M:Makaretu.Dns.UpdatePrerequisiteList.MustExist(Makaretu.Dns.DomainName,Makaretu.Dns.DnsType)">
+            <summary>
+              At least one resource record with the specified name and type must exist
+              in the <see cref="P:Makaretu.Dns.UpdateMessage.Zone"/>.
+            </summary>
+            <param name="name">A resource name.</param>
+            <param name="type">One of the RR TYPE codes.</param>
+            <returns>
+              The prerequisite list to allow fluent usage.
+            </returns>
+            <remarks>
+              For this prerequisite, a requestor adds to the section a single RR
+              whose NAME and TYPE are equal to that of the zone RRset whose
+              existence is required. RDLENGTH is zero and RDATA is therefore
+              empty. CLASS must be specified as ANY to differentiate this
+              condition from that of an actual RR whose RDLENGTH is naturally zero
+              (0) (e.g., NULL).  TTL is specified as zero(0).
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.UpdatePrerequisiteList.MustExist(Makaretu.Dns.DomainName)">
+            <summary>
+              At least one resource record with the specified name must exist
+              in the <see cref="P:Makaretu.Dns.UpdateMessage.Zone"/>.
+            </summary>
+            <param name="name">A resource name.</param>
+            <returns>
+              The prerequisite list to allow fluent usage.
+            </returns>
+            <remarks>
+              For this prerequisite, a requestor adds to the section a single RR
+              whose NAME is equal to that of the name whose ownership of an RR is
+              required. RDLENGTH is zero and RDATA is therefore empty. CLASS must
+              be specified as ANY to differentiate this condition from that of an
+              actual RR whose RDLENGTH is naturally zero (0) (e.g., NULL).  TYPE
+              must be specified as ANY to differentiate this case from that of an
+              RRset existence test. TTL is specified as zero (0).
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.UpdatePrerequisiteList.MustExist``1(Makaretu.Dns.DomainName)">
+            <summary>
+              At least one resource record with the specified name and type must exist
+              in the <see cref="P:Makaretu.Dns.UpdateMessage.Zone"/>.
+            </summary>
+            <typeparam name="T">
+              A derived class of <see cref="T:Makaretu.Dns.ResourceRecord"/>.
+            </typeparam>
+            <param name="name">A resource name.</param>
+            <returns>
+              The prerequisite list to allow fluent usage.
+            </returns>
+            <remarks>
+              For this prerequisite, a requestor adds to the section a single RR
+              whose NAME is equal to that of the name whose ownership of an RR is
+              required. RDLENGTH is zero and RDATA is therefore empty. CLASS must
+              be specified as ANY to differentiate this condition from that of an
+              actual RR whose RDLENGTH is naturally zero (0) (e.g., NULL).  TYPE
+              must be specified as ANY to differentiate this case from that of an
+              RRset existence test. TTL is specified as zero (0).
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.UpdatePrerequisiteList.MustExist(Makaretu.Dns.ResourceRecord)">
+            <summary>
+              A resource record exists with the specified NAME, TYPE and RDATA.
+            </summary>
+            <param name="resource">A resource record.</param>
+            <returns>
+              The prerequisite list to allow fluent usage.
+            </returns>
+            <remarks>
+              For this prerequisite, a requestor adds to the section an entire
+              RRset whose preexistence is required. NAME and TYPE are that of the
+              RRset being denoted. CLASS is that of the zone.  TTL must be
+              specified as zero (0) and is ignored when comparing RRsets for
+              identity.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.UpdatePrerequisiteList.MustNotExist(Makaretu.Dns.DomainName,Makaretu.Dns.DnsType)">
+            <summary>
+              No resource record with the specified name and type can exist
+              in the <see cref="P:Makaretu.Dns.UpdateMessage.Zone"/>.
+            </summary>
+            <param name="name">A resource name.</param>
+            <param name="type">One of the RR TYPE codes.</param>
+            <returns>
+              The prerequisite list to allow fluent usage.
+            </returns>
+            <remarks>
+              For this prerequisite, a requestor adds to the section a single RR
+              whose NAME and TYPE are equal to that of the RRset whose nonexistence
+              is required. The RDLENGTH of this record is zero (0), and RDATA
+              field is therefore empty.  CLASS must be specified as NONE in order
+              to distinguish this condition from a valid RR whose RDLENGTH is
+              naturally zero (0) (for example, the NULL RR).  TTL must be specified
+              as zero(0).
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.UpdatePrerequisiteList.MustNotExist(Makaretu.Dns.DomainName)">
+            <summary>
+              No resource record with the specified name can exist
+              in the <see cref="P:Makaretu.Dns.UpdateMessage.Zone"/>.
+            </summary>
+            <param name="name">A resource name.</param>
+            <returns>
+              The prerequisite list to allow fluent usage.
+            </returns>
+            <remarks>
+              For this prerequisite, a requestor adds to the section a single RR
+              whose NAME is equal to that of the name whose nonownership of any RRs
+              is required. RDLENGTH is zero and RDATA is therefore empty. CLASS
+              must be specified as NONE. TYPE must be specified as ANY. TTL must
+              be specified as zero (0).
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.UpdatePrerequisiteList.MustNotExist``1(Makaretu.Dns.DomainName)">
+            <summary>
+              No resource record with the specified name and type can exist
+              in the <see cref="P:Makaretu.Dns.UpdateMessage.Zone"/>.
+            </summary>
+            <typeparam name="T">
+              A derived class of <see cref="T:Makaretu.Dns.ResourceRecord"/>.
+            </typeparam>
+            <param name="name">A resource name.</param>
+            <returns>
+              The prerequisite list to allow fluent usage.
+            </returns>
+            <remarks>
+              For this prerequisite, a requestor adds to the section a single RR
+              whose NAME and TYPE are equal to that of the RRset whose nonexistence
+              is required. The RDLENGTH of this record is zero (0), and RDATA
+              field is therefore empty.  CLASS must be specified as NONE in order
+              to distinguish this condition from a valid RR whose RDLENGTH is
+              naturally zero (0) (for example, the NULL RR).  TTL must be specified
+              as zero(0).
+            </remarks>
+        </member>
+        <member name="T:Makaretu.Dns.UpdateResourceList">
+            <summary>
+              Resource records to add or delete from the zone.
+            </summary>
+            <remarks>
+              The list of <see cref="T:Makaretu.Dns.ResourceRecord">resource records</see> which are
+              adde or deleted from the <see cref="P:Makaretu.Dns.UpdateMessage.Zone"/>.
+              <para>
+              <c>AddResource</c> and <c>DeleteResource</c> are convenience methods to specify
+              the update operations.
+              </para>
+            </remarks>
+            <seealso href="https://tools.ietf.org/html/rfc2136"/>
+        </member>
+        <member name="M:Makaretu.Dns.UpdateResourceList.AddResource(Makaretu.Dns.ResourceRecord)">
+            <summary>
+              Add the resource to the zone.
+            </summary>
+            <param name="resource">
+              The <see cref="T:Makaretu.Dns.ResourceRecord"/> to add to the zone.
+            </param>
+            <returns>
+              The update resource list to allow fluent usage.
+            </returns>
+            <remarks>
+              Equivalent to <see cref="M:System.Collections.Generic.List`1.Add(`0)"/>.
+              <para>
+              A duplicate <see cref="T:Makaretu.Dns.ResourceRecord"/> will be silently ignored by the primary
+              master.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.UpdateResourceList.DeleteResource(Makaretu.Dns.ResourceRecord)">
+            <summary>
+              Delete the resource record from the zone.
+            </summary>
+            <param name="resource">
+              The <see cref="T:Makaretu.Dns.ResourceRecord"/> to delete from the zone.
+            </param>
+            <returns>
+              The update resource list to allow fluent usage.
+            </returns>
+            <remarks>
+              The NAME, TYPE, RDLENGTH and RDATA must match the RR being deleted.
+              TTL must be specified as zero(0) and will otherwise be ignored by the primary
+              master. CLASS must be specified as NONE to distinguish this from an
+              RR addition.
+              <para>
+              If no such RRsets exist, then
+              this Update RR will be silently ignored by the primary master.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.UpdateResourceList.DeleteResource(Makaretu.Dns.DomainName)">
+            <summary>
+              Delete the resource records with the specifified name.
+            </summary>
+            <param name="name">A resource name.</param>
+            <returns>
+              The update resource list to allow fluent usage.
+            </returns>
+            <remarks>
+              TYPE must be specified as ANY.  TTL must
+              be specified as zero(0) and is otherwise not used by the primary
+              master. CLASS must be specified as ANY. RDLENGTH must be zero(0)
+              and RDATA must therefore be empty.
+              <para>
+              If no such RRsets exist, then
+              this Update RR will be silently ignored by the primary master.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.UpdateResourceList.DeleteResource(Makaretu.Dns.DomainName,Makaretu.Dns.DnsType)">
+            <summary>
+              Delete the resource records with the specifified name and type.
+            </summary>
+            <param name="name">A resource name.</param>
+            <param name="type">One of the RR TYPE codes.</param>
+            <returns>
+              The update resource list to allow fluent usage.
+            </returns>
+            <remarks>
+              TTL must be specified as zero(0) and is otherwise not used by the primary
+              master. CLASS must be specified as ANY. RDLENGTH must be zero(0)
+              and RDATA must therefore be empty.
+              <para>
+              If no such RRsets exist, then
+              this Update RR will be silently ignored by the primary master.
+              </para>
+            </remarks>
+            <seealso cref="M:Makaretu.Dns.UpdateResourceList.DeleteResource``1(Makaretu.Dns.DomainName)"/>
+        </member>
+        <member name="M:Makaretu.Dns.UpdateResourceList.DeleteResource``1(Makaretu.Dns.DomainName)">
+            <summary>
+              Delete the resource records with the specifified name and type.
+            </summary>
+            <param name="name">A resource name.</param>
+            <typeparam name="T">
+              A derived class of <see cref="T:Makaretu.Dns.ResourceRecord"/>.
+            </typeparam>
+            <returns>
+              The update resource list to allow fluent usage.
+            </returns>
+            <remarks>
+              TTL must be specified as zero(0) and is otherwise not used by the primary
+              master. CLASS must be specified as ANY. RDLENGTH must be zero(0)
+              and RDATA must therefore be empty.
+              <para>
+              If no such RRsets exist, then
+              this Update RR will be silently ignored by the primary master.
+              </para>
+            </remarks>
+            <seealso cref="M:Makaretu.Dns.UpdateResourceList.DeleteResource(Makaretu.Dns.DomainName,Makaretu.Dns.DnsType)"/>
+        </member>
+        <member name="T:Makaretu.Dns.WireReader">
+            <summary>
+              Methods to read DNS wire formatted data items.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.WireReader.Position">
+            <summary>
+              The reader relative position within the stream.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.#ctor(System.IO.Stream)">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.WireReader"/> on the
+              specified <see cref="T:System.IO.Stream"/>.
+            </summary>
+            <param name="stream">
+              The source for data items.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadByte">
+            <summary>
+              Read a byte.
+            </summary>
+            <returns>
+              The next byte in the stream.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadBytes(System.Int32)">
+            <summary>
+              Read the specified number of bytes.
+            </summary>
+            <param name="length">
+              The number of bytes to read.
+            </param>
+            <returns>
+              The next <paramref name="length"/> bytes in the stream.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadByteLengthPrefixedBytes">
+            <summary>
+              Read the bytes with a byte length prefix.
+            </summary>
+            <returns>
+              The next N bytes.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadUInt16LengthPrefixedBytes">
+            <summary>
+              Read the bytes with an uint16 length prefix.
+            </summary>
+            <returns>
+              The next N bytes.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadUInt16">
+            <summary>
+              Read an unsigned short.
+            </summary>
+            <returns>
+              The two byte little-endian value as an unsigned short.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadUInt32">
+            <summary>
+              Read an unsigned int.
+            </summary>
+            <returns>
+              The four byte little-endian value as an unsigned int.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadUInt48">
+            <summary>
+              Read an unsigned long from 48 bits.
+            </summary>
+            <returns>
+              The six byte little-endian value as an unsigned long.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadDomainName">
+            <summary>
+              Read a domain name.
+            </summary>
+            <returns>
+              The domain name.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+            <exception cref="T:System.IO.InvalidDataException">
+              Only ASCII characters are allowed.
+            </exception>
+            <remarks>
+              A domain name is represented as a sequence of labels, where
+              each label consists of a length octet followed by that
+              number of octets. The domain name terminates with the
+              zero length octet for the null label of the root.
+              <note>
+              Compressed domain names are also supported.
+              </note>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadString">
+            <summary>
+              Read a string.
+            </summary>
+            <remarks>
+              Strings are encoded with a length prefixed byte.  All strings are ASCII.
+            </remarks>
+            <returns>
+              The string.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+            <exception cref="T:System.IO.InvalidDataException">
+              Only ASCII characters are allowed.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadTimeSpan16">
+            <summary>
+              Read a time span (interval) with 16-bits.
+            </summary>
+            <returns>
+              A <see cref="T:System.TimeSpan"/> with second resolution.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+            <remarks>
+              The interval is represented as the number of seconds in two bytes.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadTimeSpan32">
+            <summary>
+              Read a time span (interval) with 32-bits.
+            </summary>
+            <returns>
+              A <see cref="T:System.TimeSpan"/> with second resolution.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+            <remarks>
+              The interval is represented as the number of seconds in four bytes.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadIPAddress(System.Int32)">
+            <summary>
+              Read an Internet address.
+            </summary>
+            <returns>
+              An <see cref="T:System.Net.IPAddress"/>.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+            <remarks>
+              Use a <paramref name="length"/> of 4 to read an IPv4 address and
+              16 to read an IPv6 address.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadBitmap">
+            <summary>
+              Reads a bitmap.
+            </summary>
+            <returns>
+              The sequence of values encoded by the bitmap.
+            </returns>
+            <remarks>
+              <see href="https://tools.ietf.org/html/rfc3845#section-2.1.2"/> for the
+              encoding details.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadDateTime32">
+            <summary>
+              Read a <see cref="T:System.DateTime"/> that is represented in
+              seconds (32 bits) from the Unix epoch. 
+            </summary>
+            <returns>
+              A <see cref="T:System.DateTime"/> in <see cref="F:System.DateTimeKind.Utc"/>.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.WireReader.ReadDateTime48">
+            <summary>
+              Read a <see cref="T:System.DateTime"/> that is represented in
+              seconds (48 bits) from the Unix epoch. 
+            </summary>
+            <returns>
+              A <see cref="T:System.DateTime"/> in <see cref="F:System.DateTimeKind.Utc"/>.
+            </returns>
+            <exception cref="T:System.IO.EndOfStreamException">
+              When no more data is available.
+            </exception>
+        </member>
+        <member name="T:Makaretu.Dns.WireWriter">
+            <summary>
+              Methods to write DNS wire formatted data items.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.WireWriter.Position">
+            <summary>
+              The writer relative position within the stream.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.#ctor(System.IO.Stream)">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.WireWriter"/> on the
+              specified <see cref="T:System.IO.Stream"/>.
+            </summary>
+            <param name="stream">
+              The destination for data items.
+            </param>
+        </member>
+        <member name="P:Makaretu.Dns.WireWriter.CanonicalForm">
+            <summary>
+              Determines if canonical records are produced.
+            </summary>
+            <value>
+              <b>true</b> to produce canonical records; otherwise <b>false</b>.
+              Defaults to false.
+            </value>
+            <remarks>
+              When enabled, the following rules are applied
+              <list type="bullet">
+              <item><description>Domain names are uncompressed</description></item>
+              <item><description>Domain names are converted to US-ASCII lowercase</description></item>
+              </list>
+            </remarks>
+            <seealso href="https://tools.ietf.org/html/rfc4034#section-6.2"/>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.PushLengthPrefixedScope">
+            <summary>
+              Start a length prefixed stream.
+            </summary>
+            <remarks>
+              A memory stream is created for writing.  When it is popped,
+              the memory stream's position is writen as an UInt16 and its
+              contents are copied to the current stream.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.PopLengthPrefixedScope">
+            <summary>
+              Start a length prefixed stream.
+            </summary>
+            <remarks>
+              A memory stream is created for writing.  When it is popped,
+              the memory stream's position is writen as an UInt16 and its
+              contents are copied to the current stream.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteByte(System.Byte)">
+            <summary>
+              Write a byte.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteBytes(System.Byte[])">
+            <summary>
+              Write a sequence of bytes.
+            </summary>
+            <param name="bytes">
+              A sequence of bytes to write.
+            </param>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteByteLengthPrefixedBytes(System.Byte[])">
+            <summary>
+              Write a sequence of bytes prefixed with the length as a byte.
+            </summary>
+            <param name="bytes">
+              A sequence of bytes to write.
+            </param>
+            <exception cref="T:System.ArgumentException">
+              When the length is greater than <see cref="F:System.Byte.MaxValue"/>.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteUint16LengthPrefixedBytes(System.Byte[])">
+            <summary>
+              Write a sequence of bytes prefixed with the length as a unint16.
+            </summary>
+            <param name="bytes">
+              A sequence of bytes to write.
+            </param>
+            <exception cref="T:System.ArgumentException">
+              When the length is greater than <see cref="F:System.UInt16.MaxValue"/>.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteUInt16(System.UInt16)">
+            <summary>
+              Write an unsigned short.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteUInt32(System.UInt32)">
+            <summary>
+              Write an unsigned int.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteUInt48(System.UInt64)">
+            <summary>
+              Write an unsigned long in 48 bits.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteDomainName(System.String,System.Boolean)">
+            <summary>
+              Write a domain name.
+            </summary>
+            <param name="name">
+              The name to write.
+            </param>
+            <param name="uncompressed">
+              Determines if the <paramref name="name"/> must be uncompressed.  The
+              defaultl is false (allow compression).
+              <see cref="P:Makaretu.Dns.WireWriter.CanonicalForm"/> overrides this value.
+            </param>
+            <exception cref="T:System.ArgumentException">
+              When a label length is greater than 63 octets.
+            </exception>
+            <remarks>
+              A domain name is represented as a sequence of labels, where
+              each label consists of a length octet followed by that
+              number of octets.The domain name terminates with the
+              zero length octet for the null label of the root. Note
+              that this field may be an odd number of octets; no
+              padding is used.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteDomainName(Makaretu.Dns.DomainName,System.Boolean)">
+            <summary>
+              Write a domain name.
+            </summary>
+            <param name="name">
+              The name to write.
+            </param>
+            <param name="uncompressed">
+              Determines if the <paramref name="name"/> must be uncompressed.  The
+              defaultl is false (allow compression).
+              <see cref="P:Makaretu.Dns.WireWriter.CanonicalForm"/> overrides this value.
+            </param>
+            <exception cref="T:System.ArgumentException">
+              When a label length is greater than 63 octets.
+            </exception>
+            <remarks>
+              A domain name is represented as a sequence of labels, where
+              each label consists of a length octet followed by that
+              number of octets.The domain name terminates with the
+              zero length octet for the null label of the root. Note
+              that this field may be an odd number of octets; no
+              padding is used.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteString(System.String)">
+            <summary>
+              Write a string.
+            </summary>
+            <exception cref="T:System.ArgumentException">
+              When the length is greater than <see cref="F:System.Byte.MaxValue"/> or
+              the string is not ASCII.
+            </exception>
+            <remarks>
+              Strings are encoded with a length prefixed byte.  All strings must be
+              ASCII.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteTimeSpan16(System.TimeSpan)">
+            <summary>
+              Write a time span with 16-bits.
+            </summary>
+            <param name="value">
+              The number of non-negative seconds.
+            </param>
+            <remarks>
+              The interval is represented as the number of seconds in two bytes.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteTimeSpan32(System.TimeSpan)">
+            <summary>
+              Write a time span with 32-bits.
+            </summary>
+            <param name="value">
+              The number of non-negative seconds.
+            </param>
+            <remarks>
+              The interval is represented as the number of seconds in four bytes.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteDateTime32(System.DateTime)">
+            <summary>
+              Write a date/time.
+            </summary>
+            <param name="value">
+              The <see cref="T:System.DateTime"/> in UTC to write.
+            </param>
+            <exception cref="T:System.OverflowException">
+              <paramref name="value"/> seconds cannot be represented
+              in 32 bits.
+            </exception>
+            <remarks>
+              Write the <paramref name="value"/> as the number seconds
+              since the Unix epoch.  The seconds is represented as 32-bit
+              unsigned int
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteDateTime48(System.DateTime)">
+            <summary>
+              Write a date/time.
+            </summary>
+            <param name="value">
+              The <see cref="T:System.DateTime"/> in UTC to write.
+            </param>
+            <exception cref="T:System.OverflowException">
+              <paramref name="value"/> seconds cannot be represented
+              in 48 bits.
+            </exception>
+            <remarks>
+              Write the <paramref name="value"/> as the number seconds
+              since the Unix epoch.  The seconds is represented as 48-bit
+              unsigned int
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteIPAddress(System.Net.IPAddress)">
+            <summary>
+              Write an IP address.
+            </summary>
+            <param name="value"></param>
+        </member>
+        <member name="M:Makaretu.Dns.WireWriter.WriteBitmap(System.Collections.Generic.IEnumerable{System.UInt16})">
+            <summary>
+              Write the bitmap(s) for the values.
+            </summary>
+            <param name="values">
+              The sequence of values to encode into a bitmap.
+            </param>
+        </member>
+    </members>
+</doc>

+ 7 - 0
Assets/Packages/Makaretu.Dns.2.0.1/lib/net45/Makaretu.Dns.xml.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5ad366f94825d06498b0ce89254446d2
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Makaretu.Dns.Multicast.0.27.0.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 881fcbc81afccc24e8d8d6846fd45a07
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/Makaretu.Dns.Multicast.0.27.0/.signature.p7s


BIN
Assets/Packages/Makaretu.Dns.Multicast.0.27.0/Makaretu.Dns.Multicast.0.27.0.nupkg


+ 7 - 0
Assets/Packages/Makaretu.Dns.Multicast.0.27.0/Makaretu.Dns.Multicast.0.27.0.nupkg.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 3e2c2b242505c1c459b9c2aca5eaf7e5
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: afb4d4072c7d778469efa81c4147f379
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fed258b0f8588c245a9d1f336dd48ea1
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461/Makaretu.Dns.Multicast.dll


+ 33 - 0
Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461/Makaretu.Dns.Multicast.dll.meta

@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: f7fc3120b3fa5574cbf0470c66871620
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      Any: 
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      Windows Store Apps: WindowsStoreApps
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 862 - 0
Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461/Makaretu.Dns.Multicast.xml

@@ -0,0 +1,862 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Makaretu.Dns.Multicast</name>
+    </assembly>
+    <members>
+        <member name="T:Makaretu.Dns.MessageEventArgs">
+            <summary>
+              The event data for <see cref="E:Makaretu.Dns.MulticastService.QueryReceived"/> or
+              <see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/>.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.MessageEventArgs.Message">
+            <summary>
+              The DNS message.
+            </summary>
+            <value>
+              The received message.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.MessageEventArgs.RemoteEndPoint">
+            <summary>
+              The DNS message sender endpoint.
+            </summary>
+            <value>
+              The endpoint from the message was received.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.MessageEventArgs.IsLegacyUnicast">
+            <summary>
+              Determines if the sender is using legacy unicast DNS.
+            </summary>
+            <value>
+              <b>false</b> if the sender is using port 5353.
+            </value>
+        </member>
+        <member name="T:Makaretu.Dns.MulticastClient">
+            <summary>
+              Performs the magic to send and receive datagrams over multicast
+              sockets.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MulticastClient.MulticastPort">
+            <summary>
+              The port number assigned to Multicast DNS.
+            </summary>
+            <value>
+              Port number 5353.
+            </value>
+        </member>
+        <member name="T:Makaretu.Dns.MulticastService">
+            <summary>
+              Muticast Domain Name Service.
+            </summary>
+            <remarks>
+              Sends and receives DNS queries and answers via the multicast mechachism
+              defined in <see href="https://tools.ietf.org/html/rfc6762"/>.
+              <para>
+              Use <see cref="M:Makaretu.Dns.MulticastService.Start"/> to start listening for multicast messages.
+              One of the events, <see cref="E:Makaretu.Dns.MulticastService.QueryReceived"/> or <see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/>, is
+              raised when a <see cref="T:Makaretu.Dns.Message"/> is received.
+              </para>
+            </remarks>
+        </member>
+        <member name="F:Makaretu.Dns.MulticastService.sentMessages">
+            <summary>
+              Recently sent messages.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MulticastService.receivedMessages">
+            <summary>
+              Recently received messages.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MulticastService.client">
+            <summary>
+              The multicast client.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MulticastService.unicastClientIp4">
+            <summary>
+              Use to send unicast IPv4 answers.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MulticastService.unicastClientIp6">
+            <summary>
+              Use to send unicast IPv6 answers.
+            </summary>
+        </member>
+        <member name="F:Makaretu.Dns.MulticastService.networkInterfacesFilter">
+            <summary>
+              Function used for listening filtered network interfaces.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.#cctor">
+            <summary>
+              Set the default TTLs.
+            </summary>
+            <seealso cref="F:Makaretu.Dns.ResourceRecord.DefaultTTL"/>
+            <seealso cref="F:Makaretu.Dns.ResourceRecord.DefaultHostTTL"/>
+        </member>
+        <member name="E:Makaretu.Dns.MulticastService.QueryReceived">
+            <summary>
+              Raised when any local MDNS service sends a query.
+            </summary>
+            <value>
+              Contains the query <see cref="T:Makaretu.Dns.Message"/>.
+            </value>
+            <remarks>
+              Any exception throw by the event handler is simply logged and
+              then forgotten.
+            </remarks>
+            <seealso cref="M:Makaretu.Dns.MulticastService.SendQuery(Makaretu.Dns.Message)"/>
+        </member>
+        <member name="E:Makaretu.Dns.MulticastService.AnswerReceived">
+            <summary>
+              Raised when any link-local MDNS service responds to a query.
+            </summary>
+            <value>
+              Contains the answer <see cref="T:Makaretu.Dns.Message"/>.
+            </value>
+            <remarks>
+              Any exception throw by the event handler is simply logged and
+              then forgotten.
+            </remarks>
+        </member>
+        <member name="E:Makaretu.Dns.MulticastService.MalformedMessage">
+            <summary>
+              Raised when a DNS message is received that cannot be decoded.
+            </summary>
+            <value>
+              The DNS message as a byte array.
+            </value>
+        </member>
+        <member name="E:Makaretu.Dns.MulticastService.NetworkInterfaceDiscovered">
+            <summary>
+              Raised when one or more network interfaces are discovered. 
+            </summary>
+            <value>
+              Contains the network interface(s).
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.#ctor(System.Func{System.Collections.Generic.IEnumerable{System.Net.NetworkInformation.NetworkInterface},System.Collections.Generic.IEnumerable{System.Net.NetworkInformation.NetworkInterface}})">
+            <summary>
+              Create a new instance of the <see cref="T:Makaretu.Dns.MulticastService"/> class.
+            </summary>
+            <param name="filter">
+              Multicast listener will be bound to result of filtering function.
+            </param>
+        </member>
+        <member name="P:Makaretu.Dns.MulticastService.UseIpv4">
+            <summary>
+              Send and receive on IPv4.
+            </summary>
+            <value>
+              Defaults to <b>true</b> if the OS supports it.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.MulticastService.UseIpv6">
+            <summary>
+              Send and receive on IPv6.
+            </summary>
+            <value>
+              Defaults to <b>true</b> if the OS supports it.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.MulticastService.IgnoreDuplicateMessages">
+            <summary>
+              Determines if received messages are checked for duplicates.
+            </summary>
+            <value>
+              <b>true</b> to ignore duplicate messages. Defaults to <b>true</b>.
+            </value>
+            <remarks>
+              When set, a message that has been received within the last minute
+              will be ignored.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.MulticastService.NetworkInterfaceDiscoveryInterval">
+            <summary>
+              The interval for discovering network interfaces.
+            </summary>
+            <value>
+              Default is 2 minutes.
+            </value>
+            <remarks>
+              When the interval is reached a task is started to discover any
+              new network interfaces. 
+            </remarks>
+            <seealso cref="E:Makaretu.Dns.MulticastService.NetworkInterfaceDiscovered"/>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.GetNetworkInterfaces">
+            <summary>
+              Get the network interfaces that are useable.
+            </summary>
+            <returns>
+              A sequence of <see cref="T:System.Net.NetworkInformation.NetworkInterface"/>.
+            </returns>
+            <remarks>
+              The following filters are applied
+              <list type="bullet">
+              <item><description>interface is enabled</description></item>
+              <item><description>interface is not a loopback</description></item>
+              </list>
+              <para>
+              If no network interface is operational, then the loopback interface(s)
+              are included (127.0.0.1 and/or ::1).
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.GetIPAddresses">
+            <summary>
+              Get the IP addresses of the local machine.
+            </summary>
+            <returns>
+              A sequence of IP addresses of the local machine.
+            </returns>
+            <remarks>
+              The loopback addresses (127.0.0.1 and ::1) are NOT included in the
+              returned sequences.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.GetLinkLocalAddresses">
+            <summary>
+              Get the link local IP addresses of the local machine.
+            </summary>
+            <returns>
+              A sequence of IP addresses.
+            </returns>
+            <remarks>
+              All IPv4 addresses are considered link local.
+            </remarks>
+            <seealso href="https://en.wikipedia.org/wiki/Link-local_address"/>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.Start">
+            <summary>
+              Start the service.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.Stop">
+            <summary>
+              Stop the service.
+            </summary>
+            <remarks>
+              Clears all the event handlers.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.ResolveAsync(Makaretu.Dns.Message,System.Threading.CancellationToken)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.SendQuery(Makaretu.Dns.DomainName,Makaretu.Dns.DnsClass,Makaretu.Dns.DnsType)">
+            <summary>
+              Ask for answers about a name.
+            </summary>
+            <param name="name">
+              A domain name that should end with ".local", e.g. "myservice.local".
+            </param>
+            <param name="klass">
+              The class, defaults to <see cref="F:Makaretu.Dns.DnsClass.IN"/>.
+            </param>
+            <param name="type">
+              The question type, defaults to <see cref="F:Makaretu.Dns.DnsType.ANY"/>.
+            </param>
+            <remarks>
+              Answers to any query are obtained on the <see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/>
+              event.
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">
+              When the service has not started.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.SendUnicastQuery(Makaretu.Dns.DomainName,Makaretu.Dns.DnsClass,Makaretu.Dns.DnsType)">
+            <summary>
+              Ask for answers about a name and accept unicast and/or broadcast response.
+            </summary>
+            <param name="name">
+              A domain name that should end with ".local", e.g. "myservice.local".
+            </param>
+            <param name="klass">
+              The class, defaults to <see cref="F:Makaretu.Dns.DnsClass.IN"/>.
+            </param>
+            <param name="type">
+              The question type, defaults to <see cref="F:Makaretu.Dns.DnsType.ANY"/>.
+            </param>
+            <remarks>
+              Send a "QU" question (unicast).  The most significat bit of the Class is set.
+              Answers to any query are obtained on the <see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/>
+              event.
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">
+              When the service has not started.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.SendQuery(Makaretu.Dns.Message)">
+            <summary>
+              Ask for answers.
+            </summary>
+            <param name="msg">
+              A query message.
+            </param>
+            <remarks>
+              Answers to any query are obtained on the <see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/>
+              event.
+            </remarks>
+            <exception cref="T:System.InvalidOperationException">
+              When the service has not started.
+            </exception>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+              When the serialised <paramref name="msg"/> is too large.
+            </exception>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.SendAnswer(Makaretu.Dns.Message,System.Boolean)">
+            <summary>
+              Send an answer to a query.
+            </summary>
+            <param name="answer">
+              The answer message.
+            </param>
+            <param name="checkDuplicate">
+              If <b>true</b>, then if the same <paramref name="answer"/> was
+              recently sent it will not be sent again.
+            </param>
+            <exception cref="T:System.InvalidOperationException">
+              When the service has not started.
+            </exception>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+              When the serialised <paramref name="answer"/> is too large.
+            </exception>
+            <remarks>
+              <para>
+              The <see cref="P:Makaretu.Dns.Message.AA"/> flag is set to true,
+              the <see cref="P:Makaretu.Dns.Message.Id"/> set to zero and any questions are removed.
+              </para>
+              <para>
+              The <paramref name="answer"/> is <see cref="M:Makaretu.Dns.Message.Truncate(System.Int32)">truncated</see> 
+              if exceeds the maximum packet length.
+              </para>
+              <para>
+              <paramref name="checkDuplicate"/> should always be <b>true</b> except
+              when <see href="https://tools.ietf.org/html/rfc6762#section-8.1">answering a probe</see>.
+              </para>
+              <note type="caution">
+              If possible the <see cref="M:Makaretu.Dns.MulticastService.SendAnswer(Makaretu.Dns.Message,Makaretu.Dns.MessageEventArgs,System.Boolean)"/>
+              method should be used, so that legacy unicast queries are supported.
+              </note>
+            </remarks>
+            <see cref="E:Makaretu.Dns.MulticastService.QueryReceived"/>
+            <seealso cref="M:Makaretu.Dns.Message.CreateResponse"/>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.SendAnswer(Makaretu.Dns.Message,Makaretu.Dns.MessageEventArgs,System.Boolean)">
+            <summary>
+              Send an answer to a query.
+            </summary>
+            <param name="answer">
+              The answer message.
+            </param>
+            <param name="query">
+              The query that is being answered.
+            </param>
+            <param name="checkDuplicate">
+              If <b>true</b>, then if the same <paramref name="answer"/> was
+              recently sent it will not be sent again.
+            </param>
+            <exception cref="T:System.InvalidOperationException">
+              When the service has not started.
+            </exception>
+            <exception cref="T:System.ArgumentOutOfRangeException">
+              When the serialised <paramref name="answer"/> is too large.
+            </exception>
+            <remarks>
+              <para>
+              If the <paramref name="query"/> is a standard multicast query (sent to port 5353), then 
+              <see cref="M:Makaretu.Dns.MulticastService.SendAnswer(Makaretu.Dns.Message,System.Boolean)"/> is called.
+              </para>
+              <para>
+              Otherwise a legacy unicast reponse is sent to sender's end point.
+              The <see cref="P:Makaretu.Dns.Message.AA"/> flag is set to true,
+              the <see cref="P:Makaretu.Dns.Message.Id"/> is set to query's ID,
+              the <see cref="P:Makaretu.Dns.Message.Questions"/> is set to the query's questions,
+              and all resource record TTLs have a max value of 10 seconds.
+              </para>
+              <para>
+              The <paramref name="answer"/> is <see cref="M:Makaretu.Dns.Message.Truncate(System.Int32)">truncated</see> 
+              if exceeds the maximum packet length.
+              </para>
+              <para>
+              <paramref name="checkDuplicate"/> should always be <b>true</b> except
+              when <see href="https://tools.ietf.org/html/rfc6762#section-8.1">answering a probe</see>.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.OnDnsMessage(System.Object,System.Net.Sockets.UdpReceiveResult)">
+            <summary>
+              Called by the MulticastClient when a DNS message is received.	
+            </summary>	
+            <param name="sender">
+              The <see cref="T:Makaretu.Dns.MulticastClient"/> that got the message.
+            </param>
+            <param name="result">	
+              The received message <see cref="T:System.Net.Sockets.UdpReceiveResult"/>.	
+            </param>	
+            <remarks>	
+              Decodes the <paramref name="result"/> and then raises	
+              either the <see cref="E:Makaretu.Dns.MulticastService.QueryReceived"/> or <see cref="E:Makaretu.Dns.MulticastService.AnswerReceived"/> event.	
+              <para>	
+              Multicast DNS messages received with an OPCODE or RCODE other than zero 	
+              are silently ignored.	
+              </para>	
+              <para>
+              If the message cannot be decoded, then the <see cref="E:Makaretu.Dns.MulticastService.MalformedMessage"/>
+              event is raised.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.Dispose(System.Boolean)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.MulticastService.Dispose">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.NetworkInterfaceEventArgs">
+            <summary>
+              The event data for <see cref="E:Makaretu.Dns.MulticastService.NetworkInterfaceDiscovered"/>.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.NetworkInterfaceEventArgs.NetworkInterfaces">
+            <summary>
+              The sequece of detected network interfaces.
+            </summary>
+            <value>
+              A sequence of network interfaces.
+            </value>
+        </member>
+        <member name="T:Makaretu.Dns.RecentMessages">
+            <summary>
+              Maintains a sequence of recent messages.
+            </summary>
+            <remarks>
+              <b>RecentMessages</b> is used to determine if a message has already been
+              processed within the specified <see cref="P:Makaretu.Dns.RecentMessages.Interval"/>.
+            </remarks>
+        </member>
+        <member name="F:Makaretu.Dns.RecentMessages.Messages">
+            <summary>
+              Recent messages.
+            </summary>
+            <value>
+              The key is the Base64 encoding of the MD5 hash of 
+              a message and the value is when the message was seen.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.RecentMessages.Interval">
+            <summary>
+              The time interval used to determine if a message is recent.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.RecentMessages.TryAdd(System.Byte[])">
+            <summary>
+              Try adding a message to the recent message list.
+            </summary>
+            <param name="message">
+              The binary representation of a message.
+            </param>
+            <returns>
+              <b>true</b> if the message, did not already exist; otherwise,
+              <b>false</b> the message exists within the <see cref="P:Makaretu.Dns.RecentMessages.Interval"/>.
+            </returns>
+        </member>
+        <member name="M:Makaretu.Dns.RecentMessages.Prune">
+            <summary>
+              Remove any messages that are stale.
+            </summary>
+            <returns>
+              The number messages that were pruned.
+            </returns>
+            <remarks>
+              Anything older than an <see cref="P:Makaretu.Dns.RecentMessages.Interval"/> ago is removed.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.RecentMessages.GetId(System.Byte[])">
+            <summary>
+              Gets a unique ID for a message.
+            </summary>
+            <param name="message">
+              The binary representation of a message.
+            </param>
+            <returns>
+              The Base64 encoding of the MD5 hash of the <paramref name="message"/>.
+            </returns>
+        </member>
+        <member name="T:Makaretu.Dns.ServiceDiscovery">
+            <summary>
+              DNS based Service Discovery is a way of using standard DNS programming interfaces, servers, 
+              and packet formats to browse the network for services.
+            </summary>
+            <seealso href="https://tools.ietf.org/html/rfc6763">RFC 6763 DNS-Based Service Discovery</seealso>
+        </member>
+        <member name="F:Makaretu.Dns.ServiceDiscovery.ServiceName">
+            <summary>
+              The service discovery service name.
+            </summary>
+            <value>
+              The service name used to enumerate other services.
+            </value>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.ServiceDiscovery"/> class.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.#ctor(Makaretu.Dns.MulticastService)">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.ServiceDiscovery"/> class with
+              the specified <see cref="T:Makaretu.Dns.MulticastService"/>.
+            </summary>
+            <param name="mdns">
+              The underlaying <see cref="T:Makaretu.Dns.MulticastService"/> to use.
+            </param>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceDiscovery.Mdns">
+            <summary>
+              Gets the multicasting service.
+            </summary>
+            <value>
+              Is used to send and recieve multicast <see cref="T:Makaretu.Dns.Message">DNS messages</see>.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceDiscovery.AnswersContainsAdditionalRecords">
+            <summary>
+              Add the additional records into the answers.
+            </summary>
+            <value>
+              Defaults to <b>false</b>.
+            </value>
+            <remarks>
+              Some malformed systems, such as js-ipfs and go-ipfs, only examine
+              the <see cref="P:Makaretu.Dns.Message.Answers"/> and not the <see cref="P:Makaretu.Dns.Message.AdditionalRecords"/>.
+              Setting this to <b>true</b>, will move the additional records
+              into the answers.
+              <para>
+              This never done for DNS-SD answers.
+              </para>
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceDiscovery.NameServer">
+            <summary>
+              Gets the name server.
+            </summary>
+            <value>
+              Is used to answer questions.
+            </value>
+        </member>
+        <member name="E:Makaretu.Dns.ServiceDiscovery.ServiceDiscovered">
+            <summary>
+              Raised when a DNS-SD response is received.
+            </summary>
+            <value>
+              Contains the service name.
+            </value>
+            <remarks>
+              <b>ServiceDiscovery</b> passively monitors the network for any answers
+              to a DNS-SD query. When an anwser is received this event is raised.
+              <para>
+              Use <see cref="M:Makaretu.Dns.ServiceDiscovery.QueryAllServices"/> to initiate a DNS-SD question.
+              </para>
+            </remarks>
+        </member>
+        <member name="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceDiscovered">
+            <summary>
+              Raised when a servive instance is discovered.
+            </summary>
+            <value>
+              Contains the service instance name.
+            </value>
+            <remarks>
+              <b>ServiceDiscovery</b> passively monitors the network for any answers.
+              When an answer containing a PTR to a service instance is received 
+              this event is raised.
+            </remarks>
+        </member>
+        <member name="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceShutdown">
+            <summary>
+              Raised when a servive instance is shutting down.
+            </summary>
+            <value>
+              Contains the service instance name.
+            </value>
+            <remarks>
+              <b>ServiceDiscovery</b> passively monitors the network for any answers.
+              When an answer containing a PTR to a service instance with a
+              TTL of zero is received this event is raised.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.QueryAllServices">
+            <summary>
+               Asks other MDNS services to send their service names.
+            </summary>
+            <remarks>
+              When an answer is received the <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceDiscovered"/> event is raised.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.QueryUnicastAllServices">
+            <summary>
+               Asks other MDNS services to send their service names;
+               accepts unicast and/or broadcast answers.
+            </summary>
+            <remarks>
+              When an answer is received the <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceDiscovered"/> event is raised.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.QueryServiceInstances(Makaretu.Dns.DomainName)">
+            <summary>
+              Asks instances of the specified service to send details.
+            </summary>
+            <param name="service">
+              The service name to query. Typically of the form "_<i>service</i>._tcp".
+            </param>
+            <remarks>
+              When an answer is received the <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceDiscovered"/> event is raised.
+            </remarks>
+            <seealso cref="P:Makaretu.Dns.ServiceProfile.ServiceName"/>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.QueryServiceInstances(Makaretu.Dns.DomainName,System.String)">
+            <summary>
+              Asks instances of the specified service with the subtype to send details.
+            </summary>
+            <param name="service">
+              The service name to query. Typically of the form "_<i>service</i>._tcp".
+            </param>
+            <param name="subtype">
+              The feature that is needed.
+            </param>
+            <remarks>
+              When an answer is received the <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceDiscovered"/> event is raised.
+            </remarks>
+            <seealso cref="P:Makaretu.Dns.ServiceProfile.ServiceName"/>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.QueryUnicastServiceInstances(Makaretu.Dns.DomainName)">
+            <summary>
+              Asks instances of the specified service to send details.
+              accepts unicast and/or broadcast answers.
+            </summary>
+            <param name="service">
+              The service name to query. Typically of the form "_<i>service</i>._tcp".
+            </param>
+            <remarks>
+              When an answer is received the <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceDiscovered"/> event is raised.
+            </remarks>
+            <seealso cref="P:Makaretu.Dns.ServiceProfile.ServiceName"/>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.Advertise(Makaretu.Dns.ServiceProfile)">
+            <summary>
+              Advertise a service profile.
+            </summary>
+            <param name="service">
+              The service profile.
+            </param>
+            <remarks>
+              Any queries for the service or service instance will be answered with
+              information from the profile.
+              <para>
+              Besides adding the profile's resource records to the <see cref="T:Makaretu.Dns.Resolving.Catalog"/> PTR records are
+              created to support DNS-SD and reverse address mapping (DNS address lookup).
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.Announce(Makaretu.Dns.ServiceProfile)">
+            <summary>
+               Sends an unsolicited MDNS response describing the
+               service profile.
+            </summary>
+            <param name="profile">
+              The profile to describe.
+            </param>
+            <remarks>
+              Sends a MDNS response <see cref="T:Makaretu.Dns.Message"/> containing the pointer
+              and resource records of the <paramref name="profile"/>.
+              <para>
+              To provide increased robustness against packet loss,
+              two unsolicited responses are sent one second apart.
+              </para>
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.Unadvertise(Makaretu.Dns.ServiceProfile)">
+            <summary>
+            Sends a goodbye message for the provided
+            profile and removes its pointer from the name sever.
+            </summary>
+            <param name="profile">The profile to send a goodbye message for.</param>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.Unadvertise">
+            <summary>
+            Sends a goodbye message for each anounced service.
+            </summary>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.Dispose(System.Boolean)">
+            <inheritdoc />
+        </member>
+        <member name="M:Makaretu.Dns.ServiceDiscovery.Dispose">
+            <inheritdoc />
+        </member>
+        <member name="T:Makaretu.Dns.ServiceInstanceDiscoveryEventArgs">
+            <summary>
+              The event data for <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceDiscovered"/>.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceInstanceDiscoveryEventArgs.ServiceInstanceName">
+            <summary>
+              The fully qualified name of the service instance.
+            </summary>
+            <value>
+              Typically of the form "<i>instance</i>._<i>service</i>._tcp.local".
+            </value>
+            <seealso cref="P:Makaretu.Dns.ServiceProfile.FullyQualifiedName"/>
+        </member>
+        <member name="T:Makaretu.Dns.ServiceInstanceShutdownEventArgs">
+            <summary>
+              The event data for <see cref="E:Makaretu.Dns.ServiceDiscovery.ServiceInstanceShutdown"/>.
+            </summary>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceInstanceShutdownEventArgs.ServiceInstanceName">
+            <summary>
+              The fully qualified name of the service instance.
+            </summary>
+            <value>
+              Typically of the form "<i>instance</i>._<i>service</i>._tcp.local".
+            </value>
+            <seealso cref="P:Makaretu.Dns.ServiceProfile.FullyQualifiedName"/>
+        </member>
+        <member name="T:Makaretu.Dns.ServiceProfile">
+            <summary>
+              Defines a specific service that can be discovered.
+            </summary>
+            <seealso cref="M:Makaretu.Dns.ServiceDiscovery.Advertise(Makaretu.Dns.ServiceProfile)"/>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceProfile.#ctor">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.ServiceProfile"/> class.
+            </summary>
+            <remarks>
+              All details must be filled in by the caller, especially the <see cref="P:Makaretu.Dns.ServiceProfile.Resources"/>.
+            </remarks>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceProfile.#ctor(Makaretu.Dns.DomainName,Makaretu.Dns.DomainName,System.UInt16,System.Collections.Generic.IEnumerable{System.Net.IPAddress})">
+            <summary>
+              Creates a new instance of the <see cref="T:Makaretu.Dns.ServiceProfile"/> class
+              with the specified details.
+            </summary>
+            <param name="instanceName">
+               A unique identifier for the specific service instance.
+            </param>
+            <param name="serviceName">
+              The <see cref="P:Makaretu.Dns.ServiceProfile.ServiceName">name</see> of the service.
+            </param>
+            <param name="port">
+              The TCP/UDP port of the service.
+            </param>
+            <param name="addresses">
+              The IP addresses of the specific service instance. If <b>null</b> then
+              <see cref="M:Makaretu.Dns.MulticastService.GetIPAddresses"/> is used.
+            </param>
+            <remarks>
+              The SRV, TXT and A/AAAA resoruce records are added to the <see cref="P:Makaretu.Dns.ServiceProfile.Resources"/>.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceProfile.Domain">
+            <summary>
+              The top level domain (TLD) name of the service.
+            </summary>
+            <value>
+              Always "local".
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceProfile.ServiceName">
+            <summary>
+              A unique name for the service.
+            </summary>
+            <value>
+              Typically of the form "_<i>service</i>._tcp".
+            </value>
+            <remarks>
+              It consists of a pair of DNS labels, following the
+              <see href="https://www.ietf.org/rfc/rfc2782.txt">SRV records</see> convention.
+              The first label of the pair is an underscore character (_) followed by 
+              the <see href="https://tools.ietf.org/html/rfc6335">service name</see>. 
+              The second label is either "_tcp" (for application
+              protocols that run over TCP) or "_udp" (for all others). 
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceProfile.InstanceName">
+            <summary>
+              A unique identifier for the service instance.
+            </summary>
+            <value>
+              Some unique value.
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceProfile.QualifiedServiceName">
+            <summary>
+              The service name and domain.
+            </summary>
+            <value>
+              Typically of the form "_<i>service</i>._tcp.local".
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceProfile.HostName">
+            <summary>
+              The fully qualified name of the instance's host.
+            </summary>
+            <remarks>
+              This can be used to query the address records (A and AAAA)
+              of the service instance.
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceProfile.FullyQualifiedName">
+            <summary>
+              The instance name, service name and domain.
+            </summary>
+            <value>
+              <see cref="P:Makaretu.Dns.ServiceProfile.InstanceName"/>.<see cref="P:Makaretu.Dns.ServiceProfile.ServiceName"/>.<see cref="P:Makaretu.Dns.ServiceProfile.Domain"/>
+            </value>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceProfile.Resources">
+            <summary>
+              DNS resource records that are used to locate the service instance.
+            </summary>
+            <value>
+              More infomation about the service.
+            </value>
+            <remarks>
+              All records should have the <see cref="P:Makaretu.Dns.ResourceRecord.Name"/> equal
+              to the <see cref="P:Makaretu.Dns.ServiceProfile.FullyQualifiedName"/> or the <see cref="P:Makaretu.Dns.ServiceProfile.HostName"/>.
+              <para>
+              At a minimum the <see cref="T:Makaretu.Dns.SRVRecord"/> and <see cref="T:Makaretu.Dns.TXTRecord"/>
+              records must be present.
+              Typically <see cref="T:Makaretu.Dns.AddressRecord">address records</see>
+              are also present and are associaed with <see cref="P:Makaretu.Dns.ServiceProfile.HostName"/>.
+              </para>
+            </remarks>
+        </member>
+        <member name="P:Makaretu.Dns.ServiceProfile.Subtypes">
+            <summary>
+              A list of service features implemented by the service instance.
+            </summary>
+            <value>
+              The default is an empty list.
+            </value>
+            <seealso href="https://tools.ietf.org/html/rfc6763#section-7.1"/>
+        </member>
+        <member name="M:Makaretu.Dns.ServiceProfile.AddProperty(System.String,System.String)">
+            <summary>
+              Add a property of the service to the <see cref="T:Makaretu.Dns.TXTRecord"/>.
+            </summary>
+            <param name="key">
+              The name of the property.
+            </param>
+            <param name="value">
+              The value of the property.
+            </param>
+        </member>
+    </members>
+</doc>

+ 7 - 0
Assets/Packages/Makaretu.Dns.Multicast.0.27.0/lib/net461/Makaretu.Dns.Multicast.xml.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ae24bd3b5f059504f99961d0a7d8ced8
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Microsoft.CSharp.4.0.1.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2dac59467d3d3de429f6d05bb2811627
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/Microsoft.CSharp.4.0.1/.signature.p7s


BIN
Assets/Packages/Microsoft.CSharp.4.0.1/Microsoft.CSharp.4.0.1.nupkg


+ 7 - 0
Assets/Packages/Microsoft.CSharp.4.0.1/Microsoft.CSharp.4.0.1.nupkg.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: dc8dfb50089c14d408e9cde1b5666fca
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 31 - 0
Assets/Packages/Microsoft.CSharp.4.0.1/ThirdPartyNotices.txt

@@ -0,0 +1,31 @@
+This Microsoft .NET Library may incorporate components from the projects listed
+below. Microsoft licenses these components under the Microsoft .NET Library
+software license terms. The original copyright notices and the licenses under
+which Microsoft received such components are set forth below for informational
+purposes only. Microsoft reserves all rights not expressly granted herein,
+whether by implication, estoppel or otherwise.
+
+1.	.NET Core (https://github.com/dotnet/core/)
+
+.NET Core
+Copyright (c) .NET Foundation and Contributors
+
+The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 7 - 0
Assets/Packages/Microsoft.CSharp.4.0.1/ThirdPartyNotices.txt.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 74d9bf01af9f8f241b95dcf64f36a0bc
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 128 - 0
Assets/Packages/Microsoft.CSharp.4.0.1/dotnet_library_license.txt

@@ -0,0 +1,128 @@
+
+MICROSOFT SOFTWARE LICENSE TERMS
+
+
+MICROSOFT .NET LIBRARY 
+
+These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft
+
+·         updates,
+
+·         supplements,
+
+·         Internet-based services, and
+
+·         support services
+
+for this software, unless other terms accompany those items. If so, those terms apply.
+
+BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
+
+
+IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW.
+
+1.    INSTALLATION AND USE RIGHTS. 
+
+a.    Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs.
+
+b.    Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only.
+
+2.    ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
+
+a.    DISTRIBUTABLE CODE.  The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below.
+
+i.      Right to Use and Distribute. 
+
+·         You may copy and distribute the object code form of the software.
+
+·         Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.
+
+ii.    Distribution Requirements. For any Distributable Code you distribute, you must
+
+·         add significant primary functionality to it in your programs;
+
+·         require distributors and external end users to agree to terms that protect it at least as much as this agreement;
+
+·         display your valid copyright notice on your programs; and
+
+·         indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs.
+
+iii.   Distribution Restrictions. You may not
+
+·         alter any copyright, trademark or patent notice in the Distributable Code;
+
+·         use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft;
+
+·         include Distributable Code in malicious, deceptive or unlawful programs; or
+
+·         modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that
+
+·         the code be disclosed or distributed in source code form; or
+
+·         others have the right to modify it.
+
+3.    SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
+
+·         work around any technical limitations in the software;
+
+·         reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
+
+·         publish the software for others to copy;
+
+·         rent, lease or lend the software;
+
+·         transfer the software or this agreement to any third party; or
+
+·         use the software for commercial software hosting services.
+
+4.    BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software.
+
+5.    DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.
+
+6.    EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting.
+
+7.    SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it.
+
+8.    ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.
+
+9.    APPLICABLE LAW.
+
+a.    United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.
+
+b.    Outside the United States. If you acquired the software in any other country, the laws of that country apply.
+
+10.  LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.
+
+11.  DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS.
+
+12.  LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
+
+This limitation applies to
+
+·         anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and
+
+·         claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
+
+It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
+
+Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French.
+
+Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français.
+
+EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues.
+
+LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
+
+Cette limitation concerne :
+
+·         tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et
+
+·         les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur.
+
+Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard.
+
+EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas.
+
+ 

+ 7 - 0
Assets/Packages/Microsoft.CSharp.4.0.1/dotnet_library_license.txt.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b22cf59967cceea4cac115afe78da8b4
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Microsoft.CSharp.4.0.1/lib.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ccb400a70c38dbb44a292456e196b472
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Microsoft.CSharp.4.0.1/lib/net45.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5e43b0b4f731bbd4181979685abbf8de
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 0 - 0
Assets/Packages/Microsoft.CSharp.4.0.1/lib/net45/_._


+ 7 - 0
Assets/Packages/Microsoft.CSharp.4.0.1/lib/net45/_._.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d694e879273e94449805cc192a247527
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Packages/Microsoft.NETCore.Platforms.1.1.0.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2641ea99f492f3a4783e807d77fcc810
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/.signature.p7s


BIN
Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/Microsoft.NETCore.Platforms.1.1.0.nupkg


+ 7 - 0
Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/Microsoft.NETCore.Platforms.1.1.0.nupkg.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f41b167b271c74d46870230e07ea34f2
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 31 - 0
Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/ThirdPartyNotices.txt

@@ -0,0 +1,31 @@
+This Microsoft .NET Library may incorporate components from the projects listed
+below. Microsoft licenses these components under the Microsoft .NET Library
+software license terms. The original copyright notices and the licenses under
+which Microsoft received such components are set forth below for informational
+purposes only. Microsoft reserves all rights not expressly granted herein,
+whether by implication, estoppel or otherwise.
+
+1.	.NET Core (https://github.com/dotnet/core/)
+
+.NET Core
+Copyright (c) .NET Foundation and Contributors
+
+The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 7 - 0
Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/ThirdPartyNotices.txt.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 14108eb65b8652c47b990772bdc7f446
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 128 - 0
Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/dotnet_library_license.txt

@@ -0,0 +1,128 @@
+
+MICROSOFT SOFTWARE LICENSE TERMS
+
+
+MICROSOFT .NET LIBRARY 
+
+These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft
+
+·         updates,
+
+·         supplements,
+
+·         Internet-based services, and
+
+·         support services
+
+for this software, unless other terms accompany those items. If so, those terms apply.
+
+BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
+
+
+IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW.
+
+1.    INSTALLATION AND USE RIGHTS. 
+
+a.    Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs.
+
+b.    Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only.
+
+2.    ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
+
+a.    DISTRIBUTABLE CODE.  The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below.
+
+i.      Right to Use and Distribute. 
+
+·         You may copy and distribute the object code form of the software.
+
+·         Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.
+
+ii.    Distribution Requirements. For any Distributable Code you distribute, you must
+
+·         add significant primary functionality to it in your programs;
+
+·         require distributors and external end users to agree to terms that protect it at least as much as this agreement;
+
+·         display your valid copyright notice on your programs; and
+
+·         indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs.
+
+iii.   Distribution Restrictions. You may not
+
+·         alter any copyright, trademark or patent notice in the Distributable Code;
+
+·         use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft;
+
+·         include Distributable Code in malicious, deceptive or unlawful programs; or
+
+·         modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that
+
+·         the code be disclosed or distributed in source code form; or
+
+·         others have the right to modify it.
+
+3.    SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
+
+·         work around any technical limitations in the software;
+
+·         reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
+
+·         publish the software for others to copy;
+
+·         rent, lease or lend the software;
+
+·         transfer the software or this agreement to any third party; or
+
+·         use the software for commercial software hosting services.
+
+4.    BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software.
+
+5.    DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.
+
+6.    EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting.
+
+7.    SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it.
+
+8.    ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.
+
+9.    APPLICABLE LAW.
+
+a.    United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.
+
+b.    Outside the United States. If you acquired the software in any other country, the laws of that country apply.
+
+10.  LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.
+
+11.  DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS.
+
+12.  LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
+
+This limitation applies to
+
+·         anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and
+
+·         claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
+
+It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
+
+Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French.
+
+Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français.
+
+EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues.
+
+LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
+
+Cette limitation concerne :
+
+·         tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et
+
+·         les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur.
+
+Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard.
+
+EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas.
+
+ 

+ 7 - 0
Assets/Packages/Microsoft.NETCore.Platforms.1.1.0/dotnet_library_license.txt.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 95023eb9456cfe24bb80d464d1ce68a6
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Some files were not shown because too many files changed in this diff