<?xml version="1.0"?>
<doc>
    <assembly>
        <name>RT.Util</name>
    </assembly>
    <members>
        <member name="T:RT.Util.Collections.AutoDictionary`2">
            <summary>
                Implements a dictionary with a slightly different indexer, namely one that pretends every key has been
                pre-initialized using an initializer function. See Remarks.</summary>
            <remarks>
                Only the indexer behaviour is changed; in every other way this behaves just like a standard, non-prepopulated
                dictionary. Moreover, the implementation is such that the new behaviour is only effective when used directly
                through the class; accessing the indexer through the <c>IDictionary</c> interface or the <c>Dictionary</c> base
                class will currently behave the same as it would for a standard dictionary.</remarks>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.#ctor(System.Func{`0,`1})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.#ctor(System.Int32,System.Func{`0,`1})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0},System.Func{`0,`1})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1},System.Func{`0,`1})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0},System.Func{`0,`1})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1},System.Collections.Generic.IEqualityComparer{`0},System.Func{`0,`1})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.Add(`0,`1)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.Clear">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.ContainsKey(`0)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.ContainsValue(`1)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.GetEnumerator">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.OnDeserialization(System.Object)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.Remove(`0)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoDictionary`2.TryGetValue(`0,`1@)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="P:RT.Util.Collections.AutoDictionary`2.Item(`0)">
            <summary>
                Gets or sets the element with the specified key. When getting a key that hasn't been set before, the getter
                behaves as if the dictionary has been pre-populated for every possible key using the initializer function (or
                default(TValue) if not provided).</summary>
        </member>
        <member name="P:RT.Util.Collections.AutoDictionary`2.Comparer">
            <summary>Equivalent to the same property in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="P:RT.Util.Collections.AutoDictionary`2.Count">
            <summary>Equivalent to the same property in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="P:RT.Util.Collections.AutoDictionary`2.Keys">
            <summary>Equivalent to the same property in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="P:RT.Util.Collections.AutoDictionary`2.Values">
            <summary>Equivalent to the same property in <see cref="T:System.Collections.Generic.Dictionary`2"/>.</summary>
        </member>
        <member name="T:RT.Util.Collections.AutoList`1">
            <summary>
                Encapsulates a list which dynamically grows as items are written to non-existent indexes. Any gaps are populated
                with default values. The behaviour of this list's indexed getter and setter is indistinguishable from that of an
                infinitely long list pre-populated by invoking the initializer function (assuming it is side-effect free). See
                Remarks.</summary>
            <remarks>
                <para>
                    Only the indexer behaviour is changed; in every other way this behaves just like a standard, non-infinite
                    list. Moreover, the implementation is such that the new behaviour is only effective when used directly through
                    the class; accessing the indexer through the <c>IList</c> interface or the <c>List</c> base class will
                    currently behave the same as it would for a standard list.</para>
                <para>
                    Note that this is not a sparse list; accessing elements at a given index will grow the list to contain all of
                    the items below the index too.</para></remarks>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.#ctor(System.Func{System.Int32,`0})">
            <summary>
                Constructor.</summary>
            <param name="initializer">
                A function which creates a value to be used for non-existent elements upon their creation. If <c>null</c>,
                <c>default(T)</c> is used instead.</param>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.#ctor(System.Int32,System.Func{System.Int32,`0})">
            <summary>
                Constructor.</summary>
            <param name="capacity">
                The number of elements that the new list can initially store.</param>
            <param name="initializer">
                A function which creates a value to be used for non-existent elements upon their creation. If <c>null</c>,
                <c>default(T)</c> is used instead.</param>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Func{System.Int32,`0})">
            <summary>
                Constructor.</summary>
            <param name="collection">
                A collection whose elements are copied to the new list.</param>
            <param name="initializer">
                A function which creates a value to be used for non-existent elements upon their creation. If <c>null</c>,
                <c>default(T)</c> is used instead.</param>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.IndexOf(`0)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Insert(System.Int32,`0)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.RemoveAt(System.Int32)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Add(`0)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Clear">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Contains(`0)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.CopyTo(`0[],System.Int32)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Remove(`0)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.GetEnumerator">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.AsReadOnly">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.BinarySearch(`0)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.ConvertAll``1(System.Converter{`0,``0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Exists(System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Find(System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.FindAll(System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.FindIndex(System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.FindIndex(System.Int32,System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.FindIndex(System.Int32,System.Int32,System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.FindLast(System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.FindLastIndex(System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.FindLastIndex(System.Int32,System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.FindLastIndex(System.Int32,System.Int32,System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.GetRange(System.Int32,System.Int32)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.IndexOf(`0,System.Int32)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.IndexOf(`0,System.Int32,System.Int32)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.InsertRange(System.Int32,System.Collections.Generic.IEnumerable{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.LastIndexOf(`0)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.LastIndexOf(`0,System.Int32)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.LastIndexOf(`0,System.Int32,System.Int32)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.RemoveAll(System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.RemoveRange(System.Int32,System.Int32)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Reverse">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Reverse(System.Int32,System.Int32)">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Sort">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Sort(System.Comparison{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Sort(System.Collections.Generic.IComparer{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.Sort(System.Int32,System.Int32,System.Collections.Generic.IComparer{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.ToArray">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.TrimExcess">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.AutoList`1.TrueForAll(System.Predicate{`0})">
            <summary>Equivalent to the same method in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="P:RT.Util.Collections.AutoList`1.Item(System.Int32)">
            <summary>
                Gets or sets the element at the specified index. The behaviour of both the getter and the setter is
                indistinguishable from that of an infinitely long list pre-populated by invoking the initializer function
                (assuming it is side-effect free).</summary>
        </member>
        <member name="P:RT.Util.Collections.AutoList`1.Count">
            <summary>Equivalent to the same property in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="P:RT.Util.Collections.AutoList`1.IsReadOnly">
            <summary>Equivalent to the same property in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="P:RT.Util.Collections.AutoList`1.Capacity">
            <summary>Equivalent to the same property in <see cref="T:System.Collections.Generic.List`1"/>.</summary>
        </member>
        <member name="T:RT.Util.Collections.Bin128">
            <summary>
                Encapsulates a binary value 128 bits long. See Remarks.</summary>
            <remarks>
                This type is significantly more memory-efficient compared to <c>byte[16]</c> when only one copy of the value needs
                to be stored. Specifically, the byte array uses four extra IntPtrs per instance, which, on a 64-bit platform,
                amounts to a three-fold RAM usage increase. It can also be compared for equality using just two integer
                comparisons in safe code.</remarks>
        </member>
        <member name="F:RT.Util.Collections.Bin128.Zero">
            <summary>Gets a 128-bit binary value consisting of all zeroes.</summary>
        </member>
        <member name="M:RT.Util.Collections.Bin128.#ctor(System.Byte[],System.Int32)">
            <summary>
                Constructor. Initializes this value to contain the same data as the specified byte array.</summary>
            <param name="bytes">
                Byte array containing the data.</param>
            <param name="offset">
                The offset at which the data begins. The length is fixed at 16 bytes.</param>
        </member>
        <member name="M:RT.Util.Collections.Bin128.op_Equality(RT.Util.Collections.Bin128,RT.Util.Collections.Bin128)">
            <summary>Compares the two values and returns true iff they are equal.</summary>
        </member>
        <member name="M:RT.Util.Collections.Bin128.op_Inequality(RT.Util.Collections.Bin128,RT.Util.Collections.Bin128)">
            <summary>Compares the two values and returns true iff they are different.</summary>
        </member>
        <member name="M:RT.Util.Collections.Bin128.Equals(System.Object)">
            <summary>Compares an object to this value and returns true iff it's a Bin128 value that's equal.</summary>
        </member>
        <member name="M:RT.Util.Collections.Bin128.GetHashCode">
            <summary>Gets the hash code for this value.</summary>
        </member>
        <member name="M:RT.Util.Collections.Bin128.ToArray">
            <summary>Returns the binary value as a byte array. This method is not very efficient.</summary>
        </member>
        <member name="M:RT.Util.Collections.Bin128.ToString">
            <summary>Converts the binary value to a hexadecimal string representation.</summary>
        </member>
        <member name="M:RT.Util.Collections.Bin128.Write(System.IO.Stream)">
            <summary>Writes the value to the specified stream as 16 bytes.</summary>
        </member>
        <member name="M:RT.Util.Collections.Bin128.Write(System.IO.BinaryWriter)">
            <summary>Writes the value to the specified binary writer as 16 bytes.</summary>
        </member>
        <member name="M:RT.Util.Collections.Bin128.Read(System.IO.Stream)">
            <summary>Reads a 128-bit binary value from the specified stream.</summary>
        </member>
        <member name="M:RT.Util.Collections.Bin128.Read(System.IO.BinaryReader)">
            <summary>Reads a 128-bit binary value from the specified binary reader.</summary>
        </member>
        <member name="T:RT.Util.Collections.ListSorted`1">
            <summary>
                Implements a list whose items are always stored in a sorted order. Multiple equal items are allowed, and will
                always be added to the end of a run of equal items. Insertion, and removal are O(N); lookups are O(log N); access
                by index is supported.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.#ctor">
            <summary>Creates an empty <see cref="T:RT.Util.Collections.ListSorted`1"/> using a default comparer for the item type.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.#ctor(System.Int32)">
            <summary>
                Creates an empty <see cref="T:RT.Util.Collections.ListSorted`1"/> of the specified capacity and using a default comparer for
                the item type.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.#ctor(System.Collections.Generic.IComparer{`0})">
            <summary>Creates an empty <see cref="T:RT.Util.Collections.ListSorted`1"/> using the specified item comparer.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.#ctor(System.Int32,System.Collections.Generic.IComparer{`0})">
            <summary>
                Creates an empty <see cref="T:RT.Util.Collections.ListSorted`1"/> of the specified capacity and using the specified item
                comparer.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
                Adds all of the specified items into the list. The resulting list will contain all the items in the same order
                as a stable sort would have produced. NOTE: the current implementation is O(N log N) if the collection is
                empty, or O(N*M) otherwise, where N = items currently in the collection and M = items to be added. The latter
                can be improved.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.IndexOf(`0)">
            <summary>
                Returns the index of the FIRST item equal to the specified item, or -1 if the item is not found. The operation
                is O(log N).</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.LastIndexOf(`0)">
            <summary>
                Returns the index of the LAST item equal to the specified item, or -1 if the item is not found. The operation
                is O(log N).</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.Insert(System.Int32,`0)">
            <summary>Not supported in this class, will always throw an exception.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.RemoveAt(System.Int32)">
            <summary>Removes the item at the specified index.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.Add(`0)">
            <summary>
                Adds the specified item to the list. The item is added at the appropriate location to keep the list sorted. If
                multiple equal items are stored, this method is guaranteed to add an item at the end of the equal items run.
                This method is O(N).</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.Clear">
            <summary>Removes all items from the list.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.Contains(`0)">
            <summary>Returns true if the list contains the specified item. This operation is O(logN).</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.CopyTo(`0[],System.Int32)">
            <summary>
                Copies all items of this collection into the specified array, starting at the specified index, in the sorted
                order.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.Remove(`0)">
            <summary>
                Removes the FIRST occurrence of the specified item from the list. Returns true if the item was removed, or
                false if it wasn't found.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.RemoveLast(`0)">
            <summary>
                Removes the LAST occurrence of the specified item from the list. Returns true if the item was removed, or
                false if it wasn't found.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.GetEnumerator">
            <summary>Gets an enumerator which enumerates all items of this collection in sorted order.</summary>
        </member>
        <member name="M:RT.Util.Collections.ListSorted`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>Gets an enumerator which enumerates all items of this collection in sorted order.</summary>
        </member>
        <member name="P:RT.Util.Collections.ListSorted`1.Item(System.Int32)">
            <summary>Gets an item at the specified index. Setting an item is not supported and will always throw an exception.</summary>
        </member>
        <member name="P:RT.Util.Collections.ListSorted`1.Count">
            <summary>Gets the number of items stored in this collection.</summary>
        </member>
        <member name="P:RT.Util.Collections.ListSorted`1.IsReadOnly">
            <summary>Returns false.</summary>
        </member>
        <member name="T:RT.Util.Collections.QueueViewable`1">
            <summary>
                A queue whose queued items can be accessed by index. The item at the head of the queue has index 0 and is the next
                item to be dequeued.</summary>
            <typeparam name="T">
                The type of the elements stored in the queue.</typeparam>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.#ctor(System.Int32)">
            <summary>
                Constructor.</summary>
            <param name="initialCapacity">
                An appropriate initial capacity will help avoid unnecessarily growing the internal buffer.</param>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
                Constructor.</summary>
            <param name="items">
                Items that the new queue should contain. The first item of the enumerable will be at the head of the queue.</param>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.Enqueue(`0)">
            <summary>Adds an item at the tail of the queue.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.Dequeue">
            <summary>Removes and returns the item at the head of the queue.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.CopyTo(`0[],System.Int32)">
            <summary>
                Copies all elements to an array, in the order in which they would be dequeued. The destination array must have
                enough space for all items.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.GetEnumerator">
            <summary>Enumerates all items in the queue in the order in which they would be dequeued.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>Enumerates all items in the queue in the order in which they would be dequeued.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.System#Collections#Generic#ICollection{T}#Add(`0)">
            <summary>Identical to <see cref="M:RT.Util.Collections.QueueViewable`1.Enqueue(`0)"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.Clear">
            <summary>Empties the queue.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.AsReadOnly">
            <summary>
                Returns a read-only wrapper for this collection. Any changes to this collection will be immediately visible
                through the wrapper.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.IndexOf(`0)">
            <summary>Not implemented.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.Contains(`0)">
            <summary>Not implemented.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.Remove(`0)">
            <summary>Always throws a <see cref="T:System.NotSupportedException"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.Insert(System.Int32,`0)">
            <summary>Always throws a <see cref="T:System.NotSupportedException"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.QueueViewable`1.RemoveAt(System.Int32)">
            <summary>Always throws a <see cref="T:System.NotSupportedException"/>.</summary>
        </member>
        <member name="P:RT.Util.Collections.QueueViewable`1.Item(System.Int32)">
            <summary>
                Accesses the Nth queued item. The next item to be dequeued always has the index 0. The existing items can be
                both read and assigned. No new items can be added using this indexer.</summary>
        </member>
        <member name="P:RT.Util.Collections.QueueViewable`1.Capacity">
            <summary>
                Gets the current capacity of the queue (that is, the maximum number of items it can store before the internal
                store needs to be resized).</summary>
        </member>
        <member name="P:RT.Util.Collections.QueueViewable`1.Count">
            <summary>Returns the number of elements in the queue.</summary>
        </member>
        <member name="P:RT.Util.Collections.QueueViewable`1.IsReadOnly">
            <summary>Always returns false.</summary>
        </member>
        <member name="T:RT.Util.Collections.ReadOnlyDictionary`2">
            <summary>
                Wraps an <see cref="T:System.Collections.Generic.IDictionary`2"/> to allow reading values but prevent setting/removing them.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1})">
            <summary>Creates a new read-only wrapper for the specified <see cref="T:System.Collections.Generic.IDictionary`2"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.IsWrapperFor(System.Collections.Generic.IDictionary{`0,`1})">
            <summary>Returns true if <paramref name="dict"/> is the same dictionary object as the one this class wraps.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.Add(`0,`1)">
            <summary>Not supported on a ReadOnlyDictionary.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.ContainsKey(`0)">
            <summary>Returns true if the dictionary contains the specified key.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.Remove(`0)">
            <summary>Not supported on a ReadOnlyDictionary.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.TryGetValue(`0,`1@)">
            <summary>Gets the value associated with the specified key. Returns true if the value exists, false otherwise.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.Add(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>Not supported on a ReadOnlyDictionary.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.Clear">
            <summary>Not supported on a ReadOnlyDictionary.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>Returns true if the dictionary contains the specified key/value pair.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <summary>Copies the key/value pairs of this dictionary into the specified array.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>Not supported on a ReadOnlyDictionary.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.GetEnumerator">
            <summary>Gets an enumerator for the key/value pairs stored in this dictionary.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyDictionary`2.System#Collections#IEnumerable#GetEnumerator">
            <summary>Gets an enumerator for the key/value pairs stored in this dictionary.</summary>
        </member>
        <member name="P:RT.Util.Collections.ReadOnlyDictionary`2.Keys">
            <summary>Gets a read-only collection of keys in this dictionary.</summary>
        </member>
        <member name="P:RT.Util.Collections.ReadOnlyDictionary`2.Values">
            <summary>Gets a read-only collection of values in this dictionary.</summary>
        </member>
        <member name="P:RT.Util.Collections.ReadOnlyDictionary`2.Item(`0)">
            <summary>Gets a value from the dictionary. Setting values is not supported on a ReadOnlyDictionary.</summary>
        </member>
        <member name="P:RT.Util.Collections.ReadOnlyDictionary`2.Count">
            <summary>Gets the number of elements in this read-only collection.</summary>
        </member>
        <member name="P:RT.Util.Collections.ReadOnlyDictionary`2.IsReadOnly">
            <summary>Returns true, as this is a read-only collection.</summary>
        </member>
        <member name="T:RT.Util.Collections.ReadOnlyCollection`1">
            <summary>Wraps an <see cref="T:System.Collections.Generic.ICollection`1"/> to allow reading values but prevent setting/removing them.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyCollection`1.#ctor(System.Collections.Generic.ICollection{`0})">
            <summary>Creates a new read-only wrapper for the specified <see cref="T:System.Collections.Generic.ICollection`1"/>.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyCollection`1.IsWrapperFor(System.Collections.Generic.ICollection{`0})">
            <summary>Returns true if <paramref name="coll"/> is the same collection object as the one this class wraps.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyCollection`1.Add(`0)">
            <summary>Not supported on a ReadOnlyCollection.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyCollection`1.Clear">
            <summary>Not supported on a ReadOnlyCollection.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyCollection`1.Contains(`0)">
            <summary>Returns true if the specified item exists in this collection, false otherwise.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyCollection`1.CopyTo(`0[],System.Int32)">
            <summary>Copies the values stored in this collection into the specified dictionary.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyCollection`1.Remove(`0)">
            <summary>Not supported on a ReadOnlyCollection.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyCollection`1.GetEnumerator">
            <summary>Gets an enumerator for the values stored in this collection.</summary>
        </member>
        <member name="M:RT.Util.Collections.ReadOnlyCollection`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>Gets an enumerator for the values stored in this collection.</summary>
        </member>
        <member name="P:RT.Util.Collections.ReadOnlyCollection`1.Count">
            <summary>Gets the number of values stored in this collection.</summary>
        </member>
        <member name="P:RT.Util.Collections.ReadOnlyCollection`1.IsReadOnly">
            <summary>Returns true, as this is a read-only collection.</summary>
        </member>
        <member name="T:RT.Util.Collections.RecentlyUsedCache`2">
            <summary>
                Implements a key-value store which remembers which keys were used more recently than others, and automatically
                trims the older entries once a threshold is reached. Lookups are O(1) and are comparable in speed to a
                Dictionary`2. So are additions, except when a trim is triggered.</summary>
        </member>
        <member name="M:RT.Util.Collections.RecentlyUsedCache`2.#ctor(System.Int32,System.Int32)">
            <summary>
                Constructor.</summary>
            <param name="trimAt">
                Whenever the cache has this many entries, a trim will be triggered.</param>
            <param name="trimTo">
                The minimum number of most recently used entries to remain in the cache after trimming. The actual number of
                entries will be somewhere between <paramref name="trimTo"/> and 2 * <paramref name="trimTo"/>.</param>
        </member>
        <member name="M:RT.Util.Collections.RecentlyUsedCache`2.Retrieve(`0,`1@)">
            <summary>
                Gets a value associated with the specified key, and records it as recently used.</summary>
            <param name="key">
                The key to retrieve.</param>
            <param name="value">
                Receives the value in case of successful lookup, or <c>default(TValue)</c> if the specified key is not
                currently stored.</param>
            <returns>
                True if the key was found, false otherwise.</returns>
        </member>
        <member name="M:RT.Util.Collections.RecentlyUsedCache`2.Store(`0,`1)">
            <summary>
                Stores the specified key/value pair in the cache and records the key as recently used. Triggers a
                (comparatively slow) trim operation if the total number of entries exceed the threshold specified when the
                cache was instantiated.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.CommandLineParser">
            <summary>
                Implements a command-line parser that can turn the commands and options specified by the user on the command line
                into a strongly-typed instance of a specific class. See remarks for more details.</summary>
            <remarks>
                <para>
                    The following conditions must be met by the class wishing to receive the options and parameters:</para>
                <list type="bullet">
                    <item><description>
                        It must be a reference type (a class) and it must have a parameterless constructor.</description></item>
                    <item><description>
                        <para>
                            Every field in the class must have one of the following custom attributes:</para>
                        <list type="bullet">
                            <item><description>
                                <see cref="T:RT.Util.CommandLine.IsPositionalAttribute"/> (allowed for all supported types except <c>bool</c>) —
                                specifies that the field is a positional parameter; the user specifies this as a single parameter
                                without any extra syntax.</description></item>
                            <item><description>
                                <see cref="T:RT.Util.CommandLine.OptionAttribute"/> (allowed for all supported types except abstract classes) —
                                specifies that the field is a parameter invoked by an option, e.g. <c>-x</c>. (This does not imply
                                that the parameter is necessarily optional.)</description></item>
                            <item><description>
                                <see cref="T:RT.Util.CommandLine.EnumOptionsAttribute"/> (allowed for enum types only) — specifies that the field is a
                                parameter that can be invoked by one of several options, which are specified on the enum values in
                                the enum type.</description></item>
                            <item><description>
                                <see cref="T:RT.Util.CommandLine.IgnoreAttribute"/> — specifies that <see cref="T:RT.Util.CommandLine.CommandLineParser"/> shall completely
                                ignore the field.</description></item></list></description></item>
                    <item><description>
                        <para>
                            Each field may optionally have any of the following custom attributes:</para>
                        <list type="bullet">
                            <item><description>
                                <see cref="T:RT.Util.CommandLine.IsMandatoryAttribute"/> (allowed for all supported types except <c>bool</c>) —
                                specifies that the parameter must be specified by the user. For a <c>string[]</c> field, it means
                                that at least one value must be specified.</description></item>
                            <item><description>
                                <see cref="T:RT.Util.CommandLine.UndocumentedAttribute"/> — specifies that the option or command does not appear in the
                                help screen generated by CommandLineParser.</description></item></list></description></item>
                    <item><description>
                        <para>
                            Each field in the class must be of one of the following types:</para>
                        <list type="bullet">
                            <item><description>
                                <c>string</c>, any integer type, <c>float</c>, <c>double</c>, or any nullable version of these.
                                The field can be positional (<see cref="T:RT.Util.CommandLine.IsPositionalAttribute"/>) or not (<see cref="T:RT.Util.CommandLine.OptionAttribute"/>).</description></item>
                            <item><description>
                                <c>string[]</c>. The field can be positional (<see cref="T:RT.Util.CommandLine.IsPositionalAttribute"/>) or not (<see cref="T:RT.Util.CommandLine.OptionAttribute"/>), but if it is positional, it must be the last field in the class.</description></item>
                            <item><description>
                                <c>bool</c>. The field must have an <see cref="T:RT.Util.CommandLine.OptionAttribute"/> and cannot be positional or
                                mandatory.</description></item>
                            <item><description>
                                An abstract class with the <see cref="T:RT.Util.CommandLine.CommandGroupAttribute"/>. The field must be the last field
                                in the class and must be marked positional (<see cref="T:RT.Util.CommandLine.IsPositionalAttribute"/>). The abstract
                                class must have at least two derived classes, each with a <see cref="T:RT.Util.CommandLine.CommandNameAttribute"/>.</description></item>
                            <item><description>
                                <para>
                                    Any enum type. There are three ways that enum types can be used. To explain these, the
                                    following enum type declaraction is used as an example:</para>
                                <code>
                                    enum OutputFormat { PlainText, Xml }</code>
                                <list type="bullet">
                                    <item><description>
                                        <para>
                                            <see cref="T:RT.Util.CommandLine.IsPositionalAttribute"/> — The user can specify a single parameter (e.g.
                                            <c>plain</c> or <c>xml</c>) to select an enum value. Every value in the enum type must
                                            have a <see cref="T:RT.Util.CommandLine.CommandNameAttribute"/> to specify the name by which that enum value
                                            is selected:</para>
                                        <code>
                                            enum OutputFormat
                                            {
                                                [CommandName("plain")]
                                                PlainText,
                                                [CommandName("xml")]
                                                Xml
                                            }</code></description></item>
                                    <item><description>
                                        <see cref="T:RT.Util.CommandLine.OptionAttribute"/> — The user can select an enum value by specifying an option
                                        followed by a parameter that identifies the enum value (e.g. <c>-x plain</c> or <c>-x
                                        xml</c>). As above, every value in the enum type must have a <see cref="T:RT.Util.CommandLine.CommandNameAttribute"/> to specify the name by which that enum value is selected.</description></item>
                                    <item><description>
                                        <para>
                                            <see cref="T:RT.Util.CommandLine.EnumOptionsAttribute"/> — The user can select an enum value by specifying
                                            just an option (e.g. <c>-p</c> or <c>-x</c>). Every value in the enum type must have
                                            an <see cref="T:RT.Util.CommandLine.OptionAttribute"/> to specify the option by which that enum value is
                                            selected:</para>
                                        <code>
                                            enum OutputFormat
                                            {
                                                [Option("-p", "--plain")]
                                                PlainText,
                                                [Option("-x", "--xml")]
                                                Xml
                                            }</code>
                                        <para>
                                            A parameter on the attribute determines whether the user is allowed to specify only
                                            one enum value or multiple (which will be combined using bitwise or).</para></description></item>
                                    <item><description>
                                        If the field is optional, the enum value that corresponds to the field’s initial (default)
                                        value may omit the <see cref="T:RT.Util.CommandLine.CommandNameAttribute"/> or <see cref="T:RT.Util.CommandLine.OptionAttribute"/>.</description></item></list></description></item></list></description></item>
                    <item><description>
                        <para>
                            Every field must have documentation or be explicitly marked with <see cref="T:RT.Util.CommandLine.UndocumentedAttribute"/>,
                            except for fields that use <see cref="T:RT.Util.CommandLine.EnumOptionsAttribute"/> or <see cref="T:RT.Util.CommandLine.IgnoreAttribute"/>. For
                            every field whose type is an enum type, the values in the enum type must also have documentation or
                            <see cref="T:RT.Util.CommandLine.UndocumentedAttribute"/>, except for the enum value that corresponds to the field’s default
                            value if the field is not mandatory.</para>
                        <para>
                            Documentation is provided in one of the following ways:</para>
                        <list type="bullet">
                            <item><description>
                                Monolingual, translation-agnostic (unlocalisable) applications use the <see cref="T:RT.Util.CommandLine.DocumentationAttribute"/> to specify documentation directly.</description></item>
                            <item><description>
                                <para>
                                    Translatable applications must declare methods with the following signature:</para>
                                <code>
                                    static string FieldNameDoc(Translation)</code>
                                <para>
                                    The first parameter must be of the same type as the object passed in for the
                                    <c>applicationTr</c> parameter of <see cref="M:RT.Util.CommandLine.CommandLineParser.Parse``1(System.String[],RT.Util.Lingo.TranslationBase)"/>. The name of the method is the name of
                                    the field or enum value followed by <c>Doc</c>. The return value is the translated string.</para></description></item></list></description></item>
                    <item><description>
                        <see cref="T:RT.Util.CommandLine.IsPositionalAttribute"/> and <see cref="T:RT.Util.CommandLine.IsMandatoryAttribute"/> can be used together. However,
                        a positional field can only be made mandatory if all the positional fields preceding it are also
                        mandatory.</description></item></list></remarks>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineParser.Parse``1(System.String[],RT.Util.Lingo.TranslationBase)">
            <summary>
                Parses the specified command-line arguments into an instance of the specified type. See the remarks section of
                the documentation for <see cref="T:RT.Util.CommandLine.CommandLineParser"/> for features and limitations.</summary>
            <typeparam name="TArgs">
                The class containing the fields and attributes which define the command-line syntax.</typeparam>
            <param name="args">
                The command-line arguments to be parsed.</param>
            <param name="applicationTr">
                Specifies the application’s translation object which contains the localised strings that document the
                command-line options and commands. This object is passed in to the <c>FieldNameDoc</c> methods described in
                the documentation for <see cref="T:RT.Util.CommandLine.CommandLineParser"/>. This should be <c>null</c> for monoligual applications.</param>
            <returns>
                An instance of the class <typeparamref name="TArgs"/> containing the options and parameters specified by the
                user on the command line.</returns>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineParser.ParseOrWriteUsageToConsole``1(System.String[],RT.Util.Lingo.TranslationBase)">
            <summary>
                Parses the specified command-line arguments into an instance of the specified type. In case of failure, prints
                usage information to the console and returns <c>default(TArgs)</c>. See the remarks section of the
                documentation for <see cref="T:RT.Util.CommandLine.CommandLineParser"/> for features and limitations.</summary>
            <typeparam name="TArgs">
                The class containing the fields and attributes which define the command-line syntax.</typeparam>
            <param name="args">
                The command-line arguments to be parsed.</param>
            <param name="applicationTr">
                Specifies the application’s translation object which contains the localised strings that document the
                command-line options and commands. This object is passed in to the FieldNameDoc() methods described in the
                documentation for <see cref="T:RT.Util.CommandLine.CommandLineParser"/>. This should be null for monoligual applications.</param>
            <returns>
                An instance of the class <typeparamref name="TArgs"/> containing the options and parameters specified by the
                user on the command line.</returns>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineParser.GenerateHelp``1(RT.Util.Lingo.TranslationBase,RT.Util.CommandLine.Translation,System.Nullable{System.Int32},System.Type)">
            <summary>
                Generates the help screen for this command line.</summary>
            <typeparam name="TArgs">
                The class containing the fields and attributes which define the command-line syntax.</typeparam>
            <param name="applicationTr">
                Specifies the application’s translation object which contains the localised strings that document the
                command-line options and commands. This object is passed in to the <c>FieldNameDoc</c> methods described in
                the documentation for <see cref="T:RT.Util.CommandLine.CommandLineParser"/>. This should be <c>null</c> for monoligual applications.</param>
            <param name="commandLineTr">
                The instance containing the translation of <see cref="T:RT.Util.CommandLine.CommandLineParser"/>’s own text, or <c>null</c> for
                English.</param>
            <param name="wrapWidth">
                The character width at which the output should be word-wrapped. The default (<c>null</c>) uses <see cref="M:RT.Util.Consoles.ConsoleUtil.WrapToWidth"/>.</param>
            <param name="subType">
                Optionally, a class that is used as a subcommand within the command-line syntax. Generates help for the
                subcommand.</param>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineParser.PostBuildStep``1(RT.Util.IPostBuildReporter,System.Type)">
            <summary>
                Performs safety checks to ensure that the structure of your command-line syntax defining class is valid
                according to the criteria laid out in the documentation of <see cref="T:RT.Util.CommandLine.CommandLineParser"/>. Run this method as
                a post-build step to ensure reliability of execution. For an example of use, see <see cref="M:RT.Util.Ut.RunPostBuildChecks(System.String,System.Reflection.Assembly[])"/>.</summary>
            <typeparam name="TArgs">
                The class containing the fields and attributes which define the command-line syntax.</typeparam>
            <param name="rep">
                Object to report post-build errors to.</param>
            <param name="applicationTrType">
                The type of the translation object, derived from <see cref="T:RT.Util.Lingo.TranslationBase"/>, which would be passed in for
                the “applicationTr” parameter of <see cref="M:RT.Util.CommandLine.CommandLineParser.Parse``1(System.String[],RT.Util.Lingo.TranslationBase)"/> at normal run-time.</param>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineParser.Colorize(RT.Util.RhoElement)">
            <summary>
                Converts the specified <see cref="T:RT.Util.RhoML"/> parse tree into a console colored string according to
                CommandLineParser-specific rules. This method is used to convert <see cref="T:RT.Util.CommandLine.DocumentationRhoMLAttribute"/>
                documentation into colored text. See Remarks.</summary>
            <remarks>
                A number of named tags have a special meaning. Any tag named after a value of <see cref="T:System.ConsoleColor"/>
                results in that color. Both spellings of gray/grey are supported. The {h}...{} named tag stands for the
                highlight color (white). {nowrap}...{} can be placed around text that must not be broken into multiple lines
                by the word wrapper. The tags {field}, {option}, {command} and {enum} are used to refer to the corresponding
                command line syntax element, and is highlighted the same way the documentation generator would highlight
                references to these entities.</remarks>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineParser.Colorize(RT.Util.EggsNode)">
            <summary>
                Converts the specified <see cref="T:RT.Util.EggsML"/> parse tree into a console colored string using the rules described
                in <see cref="M:RT.Util.EggsNode.ToConsoleColoredStringWordWrap(System.Int32,System.Int32)"/>. This method is used to convert <see cref="T:RT.Util.CommandLine.DocumentationEggsMLAttribute"/> documentation into colored text, as well as any documentation using the
                legacy <see cref="T:RT.Util.CommandLine.DocumentationLiteralAttribute"/>.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.ICommandLineValidatable">
            <summary>
                Contains methods to validate a set of parameters passed by the user on the command-line and parsed by <see cref="T:RT.Util.CommandLine.CommandLineParser"/>. Use this class only in monolingual (unlocalisable) applications. Use <see cref="T:RT.Util.CommandLine.ICommandLineValidatable`1"/> otherwise.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.ICommandLineValidatable.Validate">
            <summary>
                When overridden in a derived class, returns an error message if the contents of the class are invalid,
                otherwise returns null.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.ICommandLineValidatable`1">
            <summary>
                Contains methods to validate a set of parameters passed by the user on the command-line and parsed by <see cref="T:RT.Util.CommandLine.CommandLineParser"/>.</summary>
            <typeparam name="TTranslation">
                A translation-string class containing the error messages that can occur during validation.</typeparam>
        </member>
        <member name="M:RT.Util.CommandLine.ICommandLineValidatable`1.Validate(`0)">
            <summary>
                When implemented in a class, returns an error message if the contents of the class are invalid, otherwise
                returns null.</summary>
            <param name="tr">
                Contains translations for the messages that may occur during validation.</param>
        </member>
        <member name="T:RT.Util.CommandLine.TranslationGroup">
            <summary>Groups the translatable strings in the <see cref="T:RT.Util.CommandLine.Translation"/> class into categories.</summary>
        </member>
        <member name="F:RT.Util.CommandLine.TranslationGroup.CommandLineError">
            <summary>Error messages produced by the command-line parser.</summary>
        </member>
        <member name="F:RT.Util.CommandLine.TranslationGroup.CommandLineHelp">
            <summary>Messages used by the command-line parser to produce help pages.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.Translation">
            <summary>Contains translatable strings pertaining to the command-line parser, including error messages and usage help.</summary>
        </member>
        <member name="T:RT.Util.Lingo.TranslationBase">
            <summary>Abstract base class to represent translations of a piece of software.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationBase.Language">
            <summary>Language of this translation.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TranslationBase.#ctor(RT.Util.Lingo.Language)">
            <summary>Constructor.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.CommandGroupAttribute">
            <summary>Use this on an abstract class to specify that its subclasses represent various commands.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.CommandGroupAttribute.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.CommandNameAttribute">
            <summary>
                Use this on a sub-class of an abstract class or on an enum value to specify the command the user must use to
                invoke that class or enum value.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.CommandNameAttribute.#ctor(System.String[])">
            <summary>
                Constructor.</summary>
            <param name="names">
                The command(s) the user can specify to invoke this class or enum value.</param>
        </member>
        <member name="P:RT.Util.CommandLine.CommandNameAttribute.Names">
            <summary>The command the user can specify to invoke this class.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.IsMandatoryAttribute">
            <summary>Use this to specify that a command-line parameter is mandatory.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.IsMandatoryAttribute.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.IsPositionalAttribute">
            <summary>
                Use this to specify that a command-line parameter is positional, i.e. is not invoked by an option that starts with
                "-".</summary>
        </member>
        <member name="M:RT.Util.CommandLine.IsPositionalAttribute.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.OptionAttribute">
            <summary>
                Use this to specify that a field in a class can be specified on the command line using an option, for example
                <c>-a</c> or <c>--option-name</c>. The option name(s) MUST begin with a dash (<c>-</c>).</summary>
        </member>
        <member name="M:RT.Util.CommandLine.OptionAttribute.#ctor(System.String[])">
            <summary>
                Constructor.</summary>
            <param name="names">
                The name of the option. Specify several names as synonyms if required.</param>
        </member>
        <member name="P:RT.Util.CommandLine.OptionAttribute.Names">
            <summary>All of the names of the option.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.DocumentationAttribute">
            <summary>
                Use this attribute to link a command-line option or command with the help text that describes (documents) it.
                Suitable for single-language applications only. See Remarks.</summary>
            <remarks>
                This attribute specifies the documentation in plain text. All characters are printed exactly as specified. You may
                wish to use <see cref="T:RT.Util.CommandLine.DocumentationRhoMLAttribute"/> to specify documentation with special markup for
                command-line-related concepts, as well as <see cref="T:RT.Util.CommandLine.DocumentationEggsMLAttribute"/> for an alternative markup
                language without command-line specific concepts.</remarks>
        </member>
        <member name="M:RT.Util.CommandLine.DocumentationAttribute.#ctor(System.String)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.DocumentationAttribute.Text">
            <summary>
                Gets the console-colored documentation string. Note that this property may throw if the text couldn't be
                parsed where applicable.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.DocumentationAttribute.OriginalFormat">
            <summary>Gets a string describing the documentation format to the programmer (not seen by the users).</summary>
        </member>
        <member name="P:RT.Util.CommandLine.DocumentationAttribute.OriginalText">
            <summary>Gets the original documentation string exactly as specified in the attribute.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.DocumentationRhoMLAttribute">
            <summary>
                Use this attribute to link a command-line option or command with the help text that describes (documents) it.
                Suitable for single-language applications only. The documentation is to be specified in <see cref="T:RT.Util.RhoML"/>, which
                is interpreted as described in <see cref="M:RT.Util.CommandLine.CommandLineParser.Colorize(RT.Util.RhoElement)"/>. See also <see cref="T:RT.Util.CommandLine.DocumentationAttribute"/>.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.DocumentationRhoMLAttribute.#ctor(System.String)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.DocumentationRhoMLAttribute.OriginalFormat">
            <summary>Gets a string describing the documentation format to the programmer (not seen by the users).</summary>
        </member>
        <member name="P:RT.Util.CommandLine.DocumentationRhoMLAttribute.Text">
            <summary>
                Gets the console-colored documentation string. Note that this property may throw if the text couldn't be
                parsed where applicable.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.DocumentationEggsMLAttribute">
            <summary>
                Use this attribute to link a command-line option or command with the help text that describes (documents) it.
                Suitable for single-language applications only. The documentation is to be specified in <see cref="T:RT.Util.EggsML"/>,
                which is interpreted as described in <see cref="M:RT.Util.CommandLine.CommandLineParser.Colorize(RT.Util.EggsNode)"/>. See also <see cref="T:RT.Util.CommandLine.DocumentationRhoMLAttribute"/> and <see cref="T:RT.Util.CommandLine.DocumentationAttribute"/>.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.DocumentationEggsMLAttribute.#ctor(System.String)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.DocumentationEggsMLAttribute.OriginalFormat">
            <summary>Gets a string describing the documentation format to the programmer (not seen by the users).</summary>
        </member>
        <member name="P:RT.Util.CommandLine.DocumentationEggsMLAttribute.Text">
            <summary>
                Gets the console-colored documentation string. Note that this property may throw if the text couldn't be
                parsed where applicable.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.DocumentationLiteralAttribute">
            <summary>
                This is a legacy attribute. Do not use in new programs. This attribute is equivalent to <see cref="T:RT.Util.CommandLine.DocumentationEggsMLAttribute"/>.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.DocumentationLiteralAttribute.#ctor(System.String)">
            <summary>Constructor.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.UndocumentedAttribute">
            <summary>
                Specifies that a specific command-line option should not be printed in help pages, i.e. the option should
                explicitly be undocumented.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.UndocumentedAttribute.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.EnumBehavior">
            <summary>Describes the behavior of an enum-typed field with the <see cref="T:RT.Util.CommandLine.EnumOptionsAttribute"/>.</summary>
        </member>
        <member name="F:RT.Util.CommandLine.EnumBehavior.SingleValue">
            <summary>Specifies that an enum is considered to represent a single value.</summary>
        </member>
        <member name="F:RT.Util.CommandLine.EnumBehavior.MultipleValues">
            <summary>Specifies that an enum is considered to represent a bitfield containing multiple values.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.EnumOptionsAttribute">
            <summary>
                Specifies that a field of an enum type should be interpreted as multiple possible options, each specified by an
                <see cref="T:RT.Util.CommandLine.OptionAttribute"/> on the enum values in the enum type.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.EnumOptionsAttribute.#ctor(RT.Util.CommandLine.EnumBehavior)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.EnumOptionsAttribute.Behavior">
            <summary>
                Specifies whether the enum is considered to represent a single value or a bitfield containing multiple values.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.IgnoreAttribute">
            <summary>Specifies that the command-line parser should ignore a field.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.IgnoreAttribute.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.CommandLineParseException">
            <summary>Represents any error encountered while parsing a command line. This class is abstract.</summary>
        </member>
        <member name="T:RT.Util.Lingo.TranslatableException`1">
            <summary>
            Provides a means for an application to throw exceptions containing translatable messages without the need to pass a <see cref="T:RT.Util.Lingo.TranslationBase"/>-derived object to all methods that could throw exceptions.
            </summary>
            <typeparam name="TTranslation">The type containing the translatable strings.</typeparam>
        </member>
        <member name="T:RT.Util.RTException">
             <summary>
             Base class for all custom exceptions we define. You don't have to use it,
             but you'll probably want to, as it provides a few crutches for the standard
             Exception class.
             </summary>
             
             <example>
             <para>Copy and paste the following constructors to your class for "default" behaviour:</para>
             
             <code>
             /// &lt;summary&gt;Creates an exception instance with the specified message.&lt;/summary&gt;
             public MyException(string message) : base(message) { }
            
             /// &lt;summary&gt;Creates an exception instance with the specified message and inner exception.&lt;/summary&gt;
             public MyException(string message, Exception innerException) : base(null, innerException) { }
             </code>
             </example>
        </member>
        <member name="F:RT.Util.RTException._message">
            <summary>
            Set this field to change the message stored in this exception.
            </summary>
        </member>
        <member name="M:RT.Util.RTException.#ctor">
            <summary>
            Should only be used by constructors which initialise <see cref="F:RT.Util.RTException._message"/> in
            the constructor body.
            </summary>
        </member>
        <member name="M:RT.Util.RTException.#ctor(System.String)">
            <summary>
            Creates an exception instance with the specified initial message.
            </summary>
        </member>
        <member name="M:RT.Util.RTException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception instance with the specified initial message and
            inner exception.
            </summary>
        </member>
        <member name="P:RT.Util.RTException.Message">
            <summary>
            The base Exception class does not give access to the private
            "message" field to the derived classes. What were they thinking...
            Use this to initialize more complex messages in the constructor.
            </summary>
        </member>
        <member name="M:RT.Util.Lingo.TranslatableException`1.#ctor(System.Func{`0,System.String})">
            <summary>Constructor.</summary>
            <param name="getMessage">A function which returns the exception message given a <typeparamref name="TTranslation"/> object. 
            This would usually be of the form "tr => tr.FieldName" or "tr => tr.FieldName.Fmt(parameters)".</param>
        </member>
        <member name="M:RT.Util.Lingo.TranslatableException`1.#ctor(System.Func{`0,System.String},System.Exception)">
            <summary>Constructor.</summary>
            <param name="getMessage">A function which returns the exception message given a <typeparamref name="TTranslation"/> object. 
            This would usually be of the form "tr => tr.FieldName" or "tr => tr.FieldName.Fmt(parameters)".</param>
            <param name="inner">Inner exception.</param>
        </member>
        <member name="M:RT.Util.Lingo.TranslatableException`1.GetMessage(`0)">
            <summary>Returns the translated exception message.</summary>
            <param name="tr">Translation object containing the translations for all messages.</param>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineParseException.GenerateHelp(RT.Util.CommandLine.Translation,System.Nullable{System.Int32})">
            <summary>
                Generates the help screen to be output to the user on the console.</summary>
            <param name="tr">
                The translation class containing the translated text, or <c>null</c> for English.</param>
            <param name="wrapWidth">
                The character width at which the output should be word-wrapped. The default (<c>null</c>) uses <see cref="M:RT.Util.Consoles.ConsoleUtil.WrapToWidth"/>.</param>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineParseException.GenerateErrorText(RT.Util.CommandLine.Translation,System.Nullable{System.Int32})">
            <summary>
                Generates a printable description of the error represented by this exception, typically used to tell the user
                what they did wrong.</summary>
            <param name="tr">
                The translation class containing the translated text, or <c>null</c> for English.</param>
            <param name="wrapWidth">
                The character width at which the output should be word-wrapped. The default (<c>null</c>) uses <see cref="M:RT.Util.Consoles.ConsoleUtil.WrapToWidth"/>.</param>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineParseException.#ctor(System.Func{RT.Util.CommandLine.Translation,RT.Util.Consoles.ConsoleColoredString},System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineParseException.#ctor(System.Func{RT.Util.CommandLine.Translation,RT.Util.Consoles.ConsoleColoredString},System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString},System.Exception)">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineParseException.WriteUsageInfoToConsole(RT.Util.CommandLine.Translation)">
            <summary>
                Prints usage information, followed by an error message describing to the user what it was that the parser
                didn't understand.</summary>
            <param name="tr">
                Contains translations for the messages used by the command-line parser. Set this to null only if your
                application is definitely monolingual (unlocalisable).</param>
        </member>
        <member name="P:RT.Util.CommandLine.CommandLineParseException.GenerateHelpFunc">
            <summary>
                Generates the help screen to be output to the user on the console. For non-internationalised (single-language)
                applications, pass null for the Translation parameter.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.CommandLineParseException.GetColoredMessage">
            <summary>Contains the error message that describes the cause of this exception.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.CommandLineHelpRequestedException">
            <summary>Indicates that the user supplied one of the standard options we recognize as a help request.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineHelpRequestedException.#ctor(System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineHelpRequestedException.WriteUsageInfoToConsole(RT.Util.CommandLine.Translation)">
            <summary>
                Prints usage information.</summary>
            <param name="tr">
                Contains translations for the messages used by the command-line parser. Set this to null only if your
                application is definitely monolingual (unlocalisable).</param>
        </member>
        <member name="T:RT.Util.CommandLine.CommandLineValidationException">
            <summary>
                Specifies that the arguments specified by the user on the command-line do not pass the custom validation checks.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.CommandLineValidationException.#ctor(RT.Util.Consoles.ConsoleColoredString,System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString})">
            <summary>Constructor.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.UnrecognizedCommandOrOptionException">
            <summary>
                Specifies that the command-line parser encountered a command or option that was not recognised (there was no <see cref="T:RT.Util.CommandLine.OptionAttribute"/> or <see cref="T:RT.Util.CommandLine.CommandNameAttribute"/> attribute with a matching option or command name).</summary>
        </member>
        <member name="M:RT.Util.CommandLine.UnrecognizedCommandOrOptionException.#ctor(System.String,System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.UnrecognizedCommandOrOptionException.#ctor(System.String,System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString},System.Exception)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.UnrecognizedCommandOrOptionException.CommandOrOptionName">
            <summary>The unrecognized command name or option name.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.IncompatibleCommandOrOptionException">
            <summary>
                Specifies that the command-line parser encountered a command or option that is not allowed in conjunction with a
                previously-encountered command or option.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.IncompatibleCommandOrOptionException.#ctor(System.String,System.String,System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.IncompatibleCommandOrOptionException.#ctor(System.String,System.String,System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString},System.Exception)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.IncompatibleCommandOrOptionException.EarlierCommandOrOption">
            <summary>
                The earlier option or command, which by itself is valid, but conflicts with the <see cref="P:RT.Util.CommandLine.IncompatibleCommandOrOptionException.LaterCommandOrOption"/>.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.IncompatibleCommandOrOptionException.LaterCommandOrOption">
            <summary>The later option or command, which conflicts with the <see cref="P:RT.Util.CommandLine.IncompatibleCommandOrOptionException.EarlierCommandOrOption"/>.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.IncompleteOptionException">
            <summary>
                Specifies that the command-line parser encountered the end of the command line when it expected an argument to an
                option.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.IncompleteOptionException.#ctor(System.String,System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.IncompleteOptionException.#ctor(System.String,System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString},System.Exception)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.IncompleteOptionException.OptionName">
            <summary>The name of the option that was missing an argument.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.UnexpectedArgumentException">
            <summary>
                Specifies that the command-line parser encountered additional command-line arguments when it expected the end of
                the command line.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.UnexpectedArgumentException.#ctor(System.String[],System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.UnexpectedArgumentException.#ctor(System.String[],System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString},System.Exception)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.UnexpectedArgumentException.UnexpectedParameters">
            <summary>Contains the first unexpected argument and all of the subsequent arguments.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.InvalidNumericParameterException">
            <summary>
                Specifies that a parameter that expected a numerical value was passed a string by the user that doesn’t parse as a
                number.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.InvalidNumericParameterException.#ctor(System.String,System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.InvalidNumericParameterException.#ctor(System.String,System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString},System.Exception)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.InvalidNumericParameterException.FieldName">
            <summary>Contains the name of the field pertaining to the parameter that was passed an invalid value.</summary>
        </member>
        <member name="T:RT.Util.CommandLine.MissingParameterException">
            <summary>
                Specifies that the command-line parser encountered the end of the command line when it expected additional
                mandatory options.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.MissingParameterException.#ctor(System.Reflection.FieldInfo,System.Reflection.FieldInfo,System.Boolean,System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.CommandLine.MissingParameterException.#ctor(System.Reflection.FieldInfo,System.Reflection.FieldInfo,System.Boolean,System.Func{RT.Util.CommandLine.Translation,System.Int32,RT.Util.Consoles.ConsoleColoredString},System.Exception)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.MissingParameterException.Field">
            <summary>Contains the field pertaining to the parameter that was missing.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.MissingParameterException.BeforeField">
            <summary>Contains an optional reference to a field which the missing parameter must precede.</summary>
        </member>
        <member name="P:RT.Util.CommandLine.MissingParameterException.IsOption">
            <summary>
                Specifies whether the missing parameter was a missing option (true) or a missing positional parameter (false).</summary>
        </member>
        <member name="T:RT.Util.Consoles.ColoredConsoleOut">
            <summary>Implements a <see cref="T:System.IO.TextWriter"/> which outputs text to the console in a predetermined <see cref="T:System.ConsoleColor"/>.</summary>
            <remarks>Every time a string is output to the console, the current console foreground colour is remembered and returned to its previous value after the output.</remarks>
        </member>
        <member name="M:RT.Util.Consoles.ColoredConsoleOut.#ctor(System.ConsoleColor)">
            <summary>Constructor.</summary>
            <param name="color">Specifies the colour in which to output text to the console.</param>
        </member>
        <member name="M:RT.Util.Consoles.ColoredConsoleOut.Write(System.Char)">
            <summary>Writes the specified character to the console.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ColoredConsoleOut.Write(System.String)">
            <summary>Writes the specified string to the console.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ColoredConsoleOut.WriteLine">
            <summary>Outputs a newline to the console.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ColoredConsoleOut.WriteLine(System.String)">
            <summary>Outputs the specified text plus a newline to the console.</summary>
        </member>
        <member name="P:RT.Util.Consoles.ColoredConsoleOut.Encoding">
            <summary><see cref="T:System.IO.TextWriter"/> requires this to be overridden. This returns <see cref="P:System.Text.Encoding.UTF8"/>.</summary>
        </member>
        <member name="T:RT.Util.Consoles.ConsoleColoredString">
            <summary>
                Encapsulates a string in which each character can have an associated <see cref="T:System.ConsoleColor"/>.</summary>
            <remarks>
                Use <see cref="M:RT.Util.Consoles.ConsoleUtil.Write(RT.Util.Consoles.ConsoleColoredString,System.Boolean)"/> and <see cref="M:RT.Util.Consoles.ConsoleUtil.WriteLine(RT.Util.Consoles.ConsoleColoredString,System.Boolean)"/> to output the string to the console.</remarks>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.op_Implicit(System.String)~RT.Util.Consoles.ConsoleColoredString">
            <summary>
                Provides implicit conversion from <see cref="T:System.String"/> to <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> by assuming a
                default color of <see cref="F:System.ConsoleColor.Gray"/>.</summary>
            <param name="input">
                The string to convert.</param>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.op_Explicit(RT.Util.Consoles.ConsoleColoredString)~System.String">
            <summary>
                Provides explicit conversion from <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> to <see cref="T:System.String"/> by discarding all
                color information.</summary>
            <param name="input">
                The string to convert.</param>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.#ctor(System.String,System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
                Constructs a <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> with the specified text and the specified color.</summary>
            <param name="input">
                The string containing the text to initialise this <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> to.</param>
            <param name="foreground">
                The foreground color to assign to the whole string.</param>
            <param name="background">
                The background color to assign to the whole string.</param>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.#ctor(System.String,System.Nullable{System.ConsoleColor}[],System.Nullable{System.ConsoleColor}[])">
            <summary>
                Constructs a <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> with the specified text and the specified colors for each
                character.</summary>
            <param name="input">
                The string containing the text to initialise this <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> to. The length of this
                string must match the number of elements in <paramref name="foregroundColors"/>.</param>
            <param name="foregroundColors">
                The foreground colors to assign to each character in the string. The length of this array must match the
                number of characters in <paramref name="input"/>.</param>
            <param name="backgroundColors">
                The background colors to assign to each character in the string. The length of this array must match the
                number of characters in <paramref name="input"/>. If null, black is used.</param>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.#ctor(RT.Util.Consoles.ConsoleColoredString[])">
            <summary>
                Constructs a <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> by concatenating the specified <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>s.</summary>
            <param name="strings">
                Input strings to concatenate.</param>
            <remarks>
                The color of each character in the input strings is preserved.</remarks>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.#ctor(System.Collections.Generic.ICollection{RT.Util.Consoles.ConsoleColoredString})">
            <summary>
                Constructs a <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> by concatenating the specified <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>s.</summary>
            <param name="strings">
                Input strings to concatenate.</param>
            <remarks>
                The color of each character in the input strings is preserved.</remarks>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.ToString">
            <summary>Returns the raw text of this <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> by discarding all the color information.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.op_Addition(RT.Util.Consoles.ConsoleColoredString,RT.Util.Consoles.ConsoleColoredString)">
            <summary>
                Concatenates two <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>s.</summary>
            <param name="string1">
                First input string to concatenate.</param>
            <param name="string2">
                Second input string to concatenate.</param>
            <remarks>
                The color of each character in the input strings is preserved.</remarks>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.op_Addition(RT.Util.Consoles.ConsoleColoredString,System.String)">
            <summary>
                Concatenates a string onto a <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>.</summary>
            <param name="string1">
                First input string to concatenate.</param>
            <param name="string2">
                Second input string to concatenate.</param>
            <remarks>
                The color of each character in the first input string is preserved. The second input string is given the color
                <see cref="F:System.ConsoleColor.Gray"/>.</remarks>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.op_Addition(System.String,RT.Util.Consoles.ConsoleColoredString)">
            <summary>
                Concatenates a <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> onto a string.</summary>
            <param name="string1">
                First input string to concatenate.</param>
            <param name="string2">
                Second input string to concatenate.</param>
            <remarks>
                The color of each character in the second input string is preserved. The first input string is given the color
                <see cref="F:System.ConsoleColor.Gray"/>.</remarks>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.FromEggsNode(RT.Util.EggsNode)">
            <summary>
                Constructs a <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> from an EggsML parse tree.</summary>
            <param name="node">
                The root node of the EggsML parse tree.</param>
            <returns>
                The <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> constructed from the EggsML parse tree.</returns>
            <remarks>
                <para>
                    The following EggsML tags map to the following console colors:</para>
                <list type="bullet">
                    <item><description>
                        <c>~</c> = black, or dark gray if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>/</c> = dark blue, or blue if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>$</c> = dark green, or green if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>&amp;</c> = dark cyan, or cyan if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>_</c> = dark red, or red if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>%</c> = dark magenta, or magenta if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>^</c> = dark yellow, or yellow if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>=</c> = dark gray (independent of <c>*</c> tag)</description></item></list>
                <para>
                    Text which is not inside any of the above color tags defaults to light gray, or white if inside a <c>*</c>
                    tag.</para></remarks>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.CharAt(System.Int32)">
            <summary>
                Returns the character at the specified index.</summary>
            <param name="index">
                A character position in the current <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>.</param>
            <returns>
                The character at the specified index.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.IndexOf(System.Char)">
            <summary>Equivalent to <see cref="M:System.String.IndexOf(System.Char)"/>.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.IndexOf(System.String)">
            <summary>Equivalent to <see cref="M:System.String.IndexOf(System.String)"/>.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.IndexOf(System.Char,System.Int32)">
            <summary>Equivalent to <see cref="M:System.String.IndexOf(System.Char,System.Int32)"/>.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.IndexOf(System.String,System.Int32)">
            <summary>Equivalent to <see cref="M:System.String.IndexOf(System.String,System.Int32)"/>.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.IndexOf(System.String,System.StringComparison)">
            <summary>Equivalent to <see cref="M:System.String.IndexOf(System.String,System.StringComparison)"/>.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.IndexOf(System.Char,System.Int32,System.Int32)">
            <summary>Equivalent to <see cref="M:System.String.IndexOf(System.Char,System.Int32,System.Int32)"/>.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.IndexOf(System.String,System.Int32,System.Int32)">
            <summary>Equivalent to <see cref="M:System.String.IndexOf(System.String,System.Int32,System.Int32)"/>.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.IndexOf(System.String,System.Int32,System.StringComparison)">
            <summary>Equivalent to <see cref="M:System.String.IndexOf(System.String,System.Int32,System.StringComparison)"/>.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.IndexOf(System.String,System.Int32,System.Int32,System.StringComparison)">
            <summary>Equivalent to <see cref="M:System.String.IndexOf(System.String,System.Int32,System.Int32,System.StringComparison)"/>.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Insert(System.Int32,RT.Util.Consoles.ConsoleColoredString)">
            <summary>
                Returns a new string in which a specified string is inserted at a specified index position in this instance.</summary>
            <param name="startIndex">
                The zero-based index position of the insertion.</param>
            <param name="value">
                The string to insert.</param>
            <returns>
                A new string that is equivalent to this instance, but with <paramref name="value"/> inserted at position
                <paramref name="startIndex"/>.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Split(System.String[],System.Nullable{System.Int32},System.StringSplitOptions)">
            <summary>
                Returns a string array that contains the substrings in this <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> that are
                delimited by elements of a specified string array. Parameters specify the maximum number of substrings to
                return and whether to return empty array elements.</summary>
            <param name="separator">
                An array of strings that delimit the substrings in this <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>, an empty array
                that contains no delimiters, or null.</param>
            <param name="count">
                The maximum number of substrings to return, or null to return all.</param>
            <param name="options">
                Specify <see cref="F:System.StringSplitOptions.RemoveEmptyEntries"/> to omit empty array elements from the array
                returned, or <see cref="F:System.StringSplitOptions.None"/> to include empty array elements in the array
                returned.</param>
            <returns>
                A collection whose elements contain the substrings in this <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> that are
                delimited by one or more strings in <paramref name="separator"/>.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Substring(System.Int32)">
            <summary>
                Retrieves a substring from this instance. The substring starts at a specified character position.</summary>
            <param name="startIndex">
                The zero-based starting character position of a substring in this instance.</param>
            <returns>
                A <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> object equivalent to the substring that begins at <paramref name="startIndex"/> in this instance.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
                <paramref name="startIndex"/> is less than zero or greater than the length of this instance.</exception>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Substring(System.Int32,System.Int32)">
            <summary>
                Retrieves a substring from this instance. The substring starts at a specified character position and has a
                specified length.</summary>
            <param name="startIndex">
                The zero-based starting character position of a substring in this instance.</param>
            <param name="length">
                The number of characters in the substring.</param>
            <returns>
                A <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> equivalent to the substring of length length that begins at <paramref name="startIndex"/> in this instance.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.writeToConsole(System.Boolean)">
            <summary>Outputs the current <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> to the console.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Format(RT.Util.Consoles.ConsoleColoredString,System.Object[])">
            <summary>
                Replaces each format item in a specified string with the string representation of a corresponding object in a
                specified array.</summary>
            <param name="format">
                A composite format string.</param>
            <param name="args">
                An object array that contains zero or more objects to format.</param>
            <returns>
                A copy of <paramref name="format"/> in which the format items have been replaced by the string representation
                of the corresponding objects in <paramref name="args"/>.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Format(RT.Util.Consoles.ConsoleColoredString,System.IFormatProvider,System.Object[])">
            <summary>
                Replaces the format item in a specified string with the string representation of a corresponding object in a
                specified array. A specified parameter supplies culture-specific formatting information.</summary>
            <param name="provider">
                An object that supplies culture-specific formatting information.</param>
            <param name="format">
                A composite format string.</param>
            <param name="args">
                An object array that contains zero or more objects to format.</param>
            <returns>
                A copy of <paramref name="format"/> in which the format items have been replaced by the string representation
                of the corresponding objects in <paramref name="args"/>.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Fmt(System.Object[])">
            <summary>Equivalent to <see cref="M:RT.Util.Consoles.ConsoleColoredString.Format(RT.Util.Consoles.ConsoleColoredString,System.Object[])"/>.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Fmt(System.IFormatProvider,System.Object[])">
            <summary>Equivalent to <see cref="M:RT.Util.Consoles.ConsoleColoredString.Format(RT.Util.Consoles.ConsoleColoredString,System.IFormatProvider,System.Object[])"/>.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.FmtEnumerable(System.Object[])">
            <summary>
                Formats the specified objects into this format string. The result is an enumerable collection which enumerates
                parts of the format string interspersed with the arguments as appropriate.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.FmtEnumerable(System.IFormatProvider,System.Object[])">
            <summary>
                Formats the specified objects into this format string. The result is an enumerable collection which enumerates
                parts of the format string interspersed with the arguments as appropriate.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.GetColors">
            <summary>
                Returns an array describing the foreground color of every character in the current string.</summary>
            <returns>
                A copy of the internal color array. Modifying the returned array is safe.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.GetBackgroundColors">
            <summary>
                Returns an array describing the background color of every character in the current string.</summary>
            <returns>
                A copy of the internal color array. Modifying the returned array is safe.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Color(System.Nullable{System.ConsoleColor})">
            <summary>
                Changes the foreground colors (but not the background colors) of every character in the current string to the
                specified console color.</summary>
            <param name="foreground">
                The foreground color to set the string to, or <c>null</c> to use the console’s default foreground color.</param>
            <returns>
                The current string but with the foreground colors changed.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Color(System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
                Changes the colors of every character in the current string to the specified set of console colors.</summary>
            <param name="foreground">
                The foreground color to set the string to, or <c>null</c> to use the console’s default foreground color.</param>
            <param name="background">
                The background color to set the string to, or <c>null</c> to use the console’s default background color.</param>
            <returns>
                The current string but with all the colors changed.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.ColorBackground(System.Nullable{System.ConsoleColor})">
            <summary>
                Changes the background colors (but not the foreground colors) of every character in the current string to the
                specified console color.</summary>
            <param name="background">
                The background color to set the string to, or <c>null</c> to use the console’s default background color.</param>
            <returns>
                A potentially colorful string.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.ColorSubstring(System.Int32,System.Int32,System.Nullable{System.ConsoleColor})">
            <summary>
                Colors the specified range within the current string in a specified foreground color.</summary>
            <param name="index">
                The index at which to start coloring.</param>
            <param name="length">
                The number of characters to color.</param>
            <param name="foreground">
                The foreground color to assign to the range of characters, or <c>null</c> to use the console’s default
                foreground color.</param>
            <returns>
                A potentially colorful string.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.ColorSubstring(System.Int32,System.Int32,System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
                Colors the specified range within the current string in the specified colors.</summary>
            <param name="index">
                The index at which to start coloring.</param>
            <param name="length">
                The number of characters to color.</param>
            <param name="foreground">
                The foreground color to assign to the range of characters, or <c>null</c> to use the console’s default
                foreground color.</param>
            <param name="background">
                The background color to assign to the range of characters, or <c>null</c> to use the console’s default
                background color.</param>
            <returns>
                A potentially colorful string.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.ColorSubstring(System.Int32,System.Nullable{System.ConsoleColor})">
            <summary>
                Colors a range of characters beginning at a specified index within the current string in a specified
                foreground color.</summary>
            <param name="index">
                The index at which to start coloring.</param>
            <param name="foreground">
                The foreground color to assign to the characters starting from the character at <paramref name="index"/>, or
                <c>null</c> to use the console’s default foreground color.</param>
            <returns>
                A potentially colorful string.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.ColorSubstring(System.Int32,System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
                Colors a range of characters beginning at a specified index within the current string in the specified colors.</summary>
            <param name="index">
                The index at which to start coloring.</param>
            <param name="foreground">
                The foreground color to assign to the characters starting from the character at <paramref name="index"/>, or
                <c>null</c> to use the console’s default foreground color.</param>
            <param name="background">
                The background color to assign to the characters starting from the character at <paramref name="index"/>, or
                <c>null</c> to use the console’s default background color.</param>
            <returns>
                A potentially colorful string.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.ColorSubstringBackground(System.Int32,System.Int32,System.Nullable{System.ConsoleColor})">
            <summary>
                Colors the specified range within the current string in a specified background color.</summary>
            <param name="index">
                The index at which to start coloring.</param>
            <param name="length">
                The number of characters to color.</param>
            <param name="background">
                The background color to assign to the range of characters, or <c>null</c> to use the console’s default
                background color.</param>
            <returns>
                A potentially colorful string.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.ColorSubstringBackground(System.Int32,System.Nullable{System.ConsoleColor})">
            <summary>
                Colors a range of characters beginning at a specified index within the current string in a specified
                background color.</summary>
            <param name="index">
                The index at which to start coloring.</param>
            <param name="background">
                The background color to assign to the characters starting from the character at <paramref name="index"/>, or
                <c>null</c> to use the console’s default background color.</param>
            <returns>
                A potentially colorful string.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Replace(System.Char,System.Char)">
            <summary>
                Returns a new <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> in which every occurrence of <paramref name="oldChar"/> is
                replaced with <paramref name="newChar"/> while each character’s color remains unchanged.</summary>
            <param name="oldChar">
                The character to search for.</param>
            <param name="newChar">
                The character to replace every occurrence of <paramref name="oldChar"/> with.</param>
            <returns>
                The new string after replacements.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.Replace(System.String,RT.Util.Consoles.ConsoleColoredString,System.StringComparison)">
            <summary>
                Returns a new <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> in which every occurrence of the text in <paramref name="oldValue"/> is replaced with a new colored string.</summary>
            <param name="oldValue">
                The substring to search for.</param>
            <param name="newValue">
                The new colored string to replace every occurrence with.</param>
            <param name="comparison">
                A string comparison to use.</param>
            <returns>
                The new string after replacements.</returns>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredString.ReplaceText(System.String,System.String,System.StringComparison)">
            <summary>
                Returns a new <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> in which every occurrence of the text in <paramref name="oldValue"/> is replaced with the text in <paramref name="newValue"/> colored by the color of the first
                character in each match.</summary>
            <param name="oldValue">
                The substring to search for.</param>
            <param name="newValue">
                The new string to replace every occurrence with.</param>
            <param name="comparison">
                A string comparison to use.</param>
            <returns>
                The new string after replacements.</returns>
        </member>
        <member name="P:RT.Util.Consoles.ConsoleColoredString.Empty">
            <summary>Represents an empty colored string. This field is read-only.</summary>
        </member>
        <member name="P:RT.Util.Consoles.ConsoleColoredString.NewLine">
            <summary>
                Represents the environment's newline, colored in the default color (<see cref="F:System.ConsoleColor.Gray"/>). This
                field is read-only.</summary>
        </member>
        <member name="P:RT.Util.Consoles.ConsoleColoredString.Length">
            <summary>Returns the number of characters in this <see cref="T:RT.Util.Consoles.ConsoleColoredString"/></summary>
        </member>
        <member name="P:RT.Util.Consoles.ConsoleColoredString.Item(System.Int32)">
            <summary>
                Gets the character and color at a specified character position in the current colored string.</summary>
            <param name="index">
                A character position in the current colored string.</param>
            <returns>
                A Unicode character with console colors.</returns>
            <exception cref="T:System.IndexOutOfRangeException">
                <paramref name="index"/> is greater than or equal to the length of this string or less than zero.</exception>
        </member>
        <member name="T:RT.Util.Consoles.ConsoleColoredChar">
            <summary>Contains a character and a console foreground and background color.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleColoredChar.#ctor(System.Char,System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
                Constructor.</summary>
            <param name="character">
                The character.</param>
            <param name="foreground">
                The foreground color.</param>
            <param name="background">
                The background color.</param>
        </member>
        <member name="P:RT.Util.Consoles.ConsoleColoredChar.Character">
            <summary>Gets the character.</summary>
        </member>
        <member name="P:RT.Util.Consoles.ConsoleColoredChar.Color">
            <summary>Gets the foreground color. <c>null</c> indicates to use the console’s default foreground color.</summary>
        </member>
        <member name="P:RT.Util.Consoles.ConsoleColoredChar.BackgroundColor">
            <summary>Gets the background color. <c>null</c> indicates to use the console’s default background color.</summary>
        </member>
        <member name="T:RT.Util.Consoles.ConsoleUtil">
            <summary>Console-related utility functions.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleUtil.StdOutState">
            <summary>
                Determines the state of the standard output stream. The first call determines the state and caches it;
                subsequent calls return the cached value.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleUtil.StdErrState">
            <summary>
                Determines the state of the standard error stream. The first call determines the state and caches it;
                subsequent calls return the cached value.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleUtil.WrapToWidth">
            <summary>
                Returns the maximum line width that console applications should use to correctly word-wrap their output. If
                the output is redirected to a file, this will return an arbitrary but sensible value, otherwise the value
                reflects the width of the console buffer.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleUtil.WriteParagraphs(System.String,System.Int32)">
            <summary>
                Outputs the specified message to the console window, treating newlines as paragraph breaks. All paragraphs are
                word-wrapped to fit in the console buffer, or to a sensible width if redirected to a file. Each paragraph is
                indented by the number of spaces at the start of the corresponding line.</summary>
            <param name="message">
                The message to output.</param>
            <param name="hangingIndent">
                Specifies a number of spaces by which the message is indented in all but the first line of each paragraph.</param>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleUtil.WriteParagraphs(RT.Util.EggsNode,System.Int32)">
            <summary>
                Outputs the specified coloured message, marked up using EggsML, to the console window, treating newlines as
                paragraph breaks. All paragraphs are word-wrapped to fit in the console buffer, or to a sensible width if
                redirected to a file. Each paragraph is indented by the number of spaces at the start of the corresponding
                line.</summary>
            <param name="message">
                The message to output.</param>
            <param name="hangingIndent">
                Specifies a number of spaces by which the message is indented in all but the first line of each paragraph.</param>
            <remarks>
                See <see cref="M:RT.Util.EggsNode.ToConsoleColoredStringWordWrap(System.Int32,System.Int32)"/> for the colour syntax.</remarks>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleUtil.WriteParagraphs(RT.Util.Consoles.ConsoleColoredString,System.Int32)">
            <summary>
                Outputs the specified message to the console window, treating newlines as paragraph breaks. All paragraphs are
                word-wrapped to fit in the console buffer, or to a sensible width if redirected to a file. Each paragraph is
                indented by the number of spaces at the start of the corresponding line.</summary>
            <param name="message">
                The message to output.</param>
            <param name="hangingIndent">
                Specifies a number of spaces by which the message is indented in all but the first line of each paragraph.</param>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleUtil.Write(RT.Util.Consoles.ConsoleColoredString,System.Boolean)">
            <summary>Writes the specified <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> to the console.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleUtil.WriteLine(RT.Util.Consoles.ConsoleColoredString,System.Boolean)">
            <summary>Writes the specified <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> followed by a newline to the console.</summary>
        </member>
        <member name="M:RT.Util.Consoles.ConsoleUtil.WriteStackTrace(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
                Writes the specified or current stack trace to the console in pretty colors.</summary>
            <param name="stackTraceLines">
                The stack trace. Each string in this collection is expected to be one line of the stack trace. If <c>null</c>,
                defaults to the current stack trace.</param>
        </member>
        <member name="T:RT.Util.Consoles.ConsoleUtil.ConsoleState">
            <summary>Represents the state of a console output stream.</summary>
        </member>
        <member name="F:RT.Util.Consoles.ConsoleUtil.ConsoleState.Unavailable">
            <summary>This output stream is not available - eg when the program is not a console program.</summary>
        </member>
        <member name="F:RT.Util.Consoles.ConsoleUtil.ConsoleState.Console">
            <summary>This output stream is printed on the console.</summary>
        </member>
        <member name="F:RT.Util.Consoles.ConsoleUtil.ConsoleState.Redirected">
            <summary>This output stream has been redirected - perhaps to a file or a pipe.</summary>
        </member>
        <member name="T:RT.Util.Controls.TextBoxEx">
            <summary>
                Provides a textbox with extra functionality (see remarks).</summary>
            <remarks>
                <para>Extra functionality currently supported:</para>
                <list type="bullet">
                    <item><description>Ctrl+A selects all text.</description></item>
                </list></remarks>
        </member>
        <member name="M:RT.Util.Controls.TextBoxEx.OnKeyDown(System.Windows.Forms.KeyEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="T:RT.Util.Controls.DoubleBufferedPanel">
            <summary>
            Provides a double-buffered drawing surface with an off-screen buffer.
            All painting is done into the buffer, which is then blitted onto the
            screen as required. Repainting of the off-screen buffer is only done
            on size changes or explicit calls to <see cref="M:RT.Util.Controls.DoubleBufferedPanel.Refresh"/>.
            </summary>
        </member>
        <member name="F:RT.Util.Controls.DoubleBufferedPanel.Buffer">
            <summary>
            Holds the off-screen image. Initialised only when the first refresh occurs.
            </summary>
        </member>
        <member name="M:RT.Util.Controls.DoubleBufferedPanel.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Controls.DoubleBufferedPanel.Refresh">
            <summary>
            Forces an update of the off-screen buffer, by invoking the
            <see cref="E:RT.Util.Controls.DoubleBufferedPanel.PaintBuffer"/> event. Then forces a normal refresh
            of the underlying panel, which causes the off-screen buffer to
            be repainted over the whole panel.
            </summary>
        </member>
        <member name="E:RT.Util.Controls.DoubleBufferedPanel.PaintBuffer">
            <summary>
            Occurs when the off-screen buffer needs to be painted.
            </summary>
        </member>
        <member name="E:RT.Util.Controls.DoubleBufferedPanel._previousPaintBuffer">
            <summary>
            Is used for detecting that the paint buffer must be repainted due to the
            paint event handler changing.
            </summary>
        </member>
        <member name="P:RT.Util.Controls.DoubleBufferedPanel.RefreshOnResize">
            <summary>
            Gets or sets a value indicating whether the panel should automatically refresh
            its contents (i.e. call the PaintBuffer event) every time it is resized.
            </summary>
        </member>
        <member name="P:RT.Util.Controls.DoubleBufferedPanel.TabStop">
            <summary>Gets or sets a value indicating whether the user can give the focus to this control using the TAB key.
            This property’s value automatically changes every time Text changes; it is set to true if there is a link in the text, false otherwise.
            To achieve deviant behaviour, set TabStop immediately after setting Text.</summary>
        </member>
        <member name="T:RT.Util.Controls.HotkeyEdit">
            <summary>
            This control enables the user to specify a hotkey combination by pressing it on
            the keyboard. For exmaple, if the user presses Ctrl + Alt + A while this control
            is focussed, the control would display "Ctrl+Alt+A". The combination can be read
            out by the program in a convenient format.
            </summary>
        </member>
        <member name="M:RT.Util.Controls.HotkeyEdit.#ctor">
            <summary>
            Constructs a new instance.
            </summary>
        </member>
        <member name="M:RT.Util.Controls.HotkeyEdit.OnKeyDown(System.Windows.Forms.KeyEventArgs)">
            <summary>Captures key presses and updates the control's state accordingly.</summary>
        </member>
        <member name="M:RT.Util.Controls.HotkeyEdit.OnKeyUp(System.Windows.Forms.KeyEventArgs)">
            <summary>Captures key presses and updates the control's state accordingly.</summary>
        </member>
        <member name="M:RT.Util.Controls.HotkeyEdit.OnKeyPress(System.Windows.Forms.KeyPressEventArgs)">
            <summary>Captures key presses and updates the control's state accordingly.</summary>
        </member>
        <member name="P:RT.Util.Controls.HotkeyEdit.OneKeyOnly">
            <summary>
            If true, the control does not accept key combinations, such as "Ctrl + A",
            however it does accept special keys such as "Ctrl".
            </summary>
        </member>
        <member name="P:RT.Util.Controls.HotkeyEdit.ShortcutNone">
            <summary>
            Returns true if the control does not hold a shortcut combination
            (for example, because the user didn't press anything).
            </summary>
        </member>
        <member name="P:RT.Util.Controls.HotkeyEdit.ShortcutCtrl">
            <summary>
            Returns true if the shortcut combination includes Ctrl.
            </summary>
        </member>
        <member name="P:RT.Util.Controls.HotkeyEdit.ShortcutAlt">
            <summary>
            Returns true if the shortcut combination includes Alt.
            </summary>
        </member>
        <member name="P:RT.Util.Controls.HotkeyEdit.ShortcutShift">
            <summary>
            Returns true if the shortcut combination includes Shift.
            </summary>
        </member>
        <member name="P:RT.Util.Controls.HotkeyEdit.ShortcutKey">
            <summary>
            Returns the main shortcut key.
            </summary>
        </member>
        <member name="T:RT.Util.Controls.LabelEx">
            <summary>
            Implements a label control that supports basic formatting of the displayed text.
            Text alignment and right-to-left text are not supported.
            </summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnFontChanged(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnEnabledChanged(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnSizeChanged(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnTextChanged(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.GetPreferredSize(System.Drawing.Size)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnPaint(System.Windows.Forms.PaintEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnChangeUICues(System.Windows.Forms.UICuesEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.ProcessMnemonic(System.Char)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnMnemonic">
            <summary>This method is called when the control responds to a mnemonic being pressed.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnMouseMove(System.Windows.Forms.MouseEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnMouseLeave(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnMouseDown(System.Windows.Forms.MouseEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnMouseUp(System.Windows.Forms.MouseEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnGotFocus(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnLostFocus(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnKeyDown(System.Windows.Forms.KeyEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.ProcessDialogKey(System.Windows.Forms.Keys)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnKeyUp(System.Windows.Forms.KeyEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnParentChanged(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.OnSystemColorsChanged(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.LabelEx.PerformClick">
            <summary>Pretends as if the user pressed Enter. Has no effect if there is no link that has keyboard focus.</summary>
        </member>
        <member name="E:RT.Util.Controls.LabelEx.LinkActivated">
            <summary>Occurs when a link within the label is activated (via mouse click, Space or Enter).</summary>
        </member>
        <member name="E:RT.Util.Controls.LabelEx.LinkGotFocus">
            <summary>Occurs when a link within the label gets focussed by the keyboard.</summary>
        </member>
        <member name="E:RT.Util.Controls.LabelEx.LinkLostFocus">
            <summary>Occurs when a link within the label loses the keyboard focus.</summary>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.Text">
            <summary>Text displayed in the label. See remarks for EggsML supported. Setting this property also changes
            the value of the <see cref="P:RT.Util.Controls.LabelEx.TabStop"/> property depending on whether the text contains any links.
            To achieve deviant behaviour, set TabStop immediately after setting Text.</summary>
            <remarks>
            <list type="bullet">
                <item><description><c>*</c> = bold.</description></item>
                <item><description><c>/</c> = italics.</description></item>
                <item><description><c>_</c> = underline.</description></item>
                <item><description><c>+</c> = marks a section of text as nowrap.</description></item>
                <item><description><c>&lt;XYZ&gt;{ ... }</c> = make the text enclosed in curlies a link. XYZ can be any string and will be passed in for the <see cref="E:RT.Util.Controls.LabelEx.LinkActivated"/> event.</description></item>
                <item><description><c>&lt;XYZ&gt;= ... =</c> = colour the text enclosed in equals sign in the colour designated by XYZ (e.g. “Red”).</description></item>
                <item><description><c>[ ... ]</c> = adds a bullet point to the beginning of a paragraph. (Enclose the entire paragraph without its trailing newline, otherwise behaviour is weird.)</description></item>
            </list>
            </remarks>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.AutoSize">
            <summary>Set to true to make the label size itself to fit all the text.</summary>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.WordWrap">
            <summary>Enable/disable wrapping long lines on word boundaries.</summary>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.ParagraphSpacing">
            <summary>Specifies the line spacing between paragraph as a multiple of the line height.</summary>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.HangingIndent">
            <summary>Specifies an amount by which all but the first line of each paragraph are indented.</summary>
            <seealso cref="P:RT.Util.Controls.LabelEx.HangingIndentUnit"/>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.HangingIndentUnit">
            <summary>Specifies the units in which <see cref="P:RT.Util.Controls.LabelEx.HangingIndent"/> is measured.</summary>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.LinkColor">
            <summary>Color of text in a link (can be overridden using a <c>{ ... }</c> tag).</summary>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.LinkActiveColor">
            <summary>Color of text when a link is in the “active” state, i.e. when the mouse button or Space is held down.</summary>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.TabStop">
            <summary>Gets or sets a value indicating whether the user can give the focus to this control using the TAB key.
            This property’s value automatically changes every time Text changes; it is set to true if there is a link in the text, false otherwise.
            To achieve deviant behaviour, set TabStop immediately after setting Text.</summary>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.TextAlign">
            <summary>Gets or sets the alignment of text in the label. The default is TopLeft.</summary>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.ParseError">
            <summary>Contains information about a parse error that describes in what way the current value of
            <see cref="P:RT.Util.Controls.LabelEx.Text"/> is invalid EggsML, or null if it is valid.</summary>
        </member>
        <member name="P:RT.Util.Controls.LabelEx.Bullet">
            <summary>Gets or sets a string to use as the bullet point for bulleted lists ([...] in the mark-up).</summary>
        </member>
        <member name="T:RT.Util.Controls.LabelEx.IndentUnit">
            <summary>Contains values that specify the unit in which the value of the <see cref="P:RT.Util.Controls.LabelEx.HangingIndent"/> property is measured.</summary>
        </member>
        <member name="F:RT.Util.Controls.LabelEx.IndentUnit.Spaces">
            <summary>The indent is a multiple of the size of a space character.</summary>
        </member>
        <member name="F:RT.Util.Controls.LabelEx.IndentUnit.Pixels">
            <summary>The indent is measured in pixels.</summary>
        </member>
        <member name="T:RT.Util.Controls.LinkEventArgs">
            <summary>Provides data for the <see cref="E:RT.Util.Controls.LabelEx.LinkActivated"/> event.</summary>
        </member>
        <member name="M:RT.Util.Controls.LinkEventArgs.#ctor(System.String,System.Collections.Generic.IEnumerable{System.Drawing.Rectangle})">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.Controls.LinkEventArgs.LinkID">
            <summary>Gets the user-specified Link ID associated with the activated link.</summary>
        </member>
        <member name="P:RT.Util.Controls.LinkEventArgs.LinkLocation">
            <summary>Gets the location of the link as a series of rectangles relative to the control’s client co-ordinates.</summary>
        </member>
        <member name="T:RT.Util.Controls.LinkEventHandler">
            <summary>Represents the method that will handle the <see cref="E:RT.Util.Controls.LabelEx.LinkActivated"/> event.</summary>
            <param name="sender">The source of the event.</param>
            <param name="e">A <see cref="T:RT.Util.Controls.LinkEventArgs"/> that contains the event data.</param>
        </member>
        <member name="T:RT.Util.Controls.ListBoxEx">
            <summary>Provides a ListBox with added functionality. See remarks.</summary>
            <remarks>
            <para>The extra methods <see cref="M:RT.Util.Controls.ListBoxEx.RefreshItem(System.Int32)"/> and <see cref="M:RT.Util.Controls.ListBoxEx.RefreshItems"/> just call base methods which are inexplicably protected.</para>
            <para>When setting <c>SelectionMode</c> to <c>SelectionMode.MultiExtended</c>, this listbox supports Ctrl+Arrow keys and Ctrl+Space properly, unlike the standard ListBox where these don’t work.</para>
            </remarks>
        </member>
        <member name="M:RT.Util.Controls.ListBoxEx.RefreshItems">
            <summary>Refreshes all ListBox items and retrieves new strings for them.</summary>
        </member>
        <member name="M:RT.Util.Controls.ListBoxEx.RefreshItem(System.Int32)">
            <summary>Refreshes the item contained at the specified index.</summary>
            <param name="index">The zero-based index of the element to refresh.</param>
        </member>
        <member name="M:RT.Util.Controls.ListBoxEx.OnKeyDown(System.Windows.Forms.KeyEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.ListBoxEx.OnKeyPress(System.Windows.Forms.KeyPressEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="P:RT.Util.Controls.ListBoxEx.OutlineIndex">
            <summary>Gets or sets the zero-based index of the list item that has the dotted outline.</summary>
            <remarks>
            <para>The list item may be selected or not.</para>
            <para>Changing this property does not fire a SelectedIndexChanged event.</para>
            </remarks>
        </member>
        <member name="T:RT.Util.Controls.MenuRadioGroup`1">
            <summary>
            Keeps track of a group of menu items (specifically, <see cref="T:RT.Util.Controls.MenuRadioItem`1"/>)
            which are intended to act like a radio-button group, and where each menu item is associated with
            a specific value, usually from an enum type.
            </summary>
            <typeparam name="T">The type of the value associated with each menu item.</typeparam>
        </member>
        <member name="M:RT.Util.Controls.MenuRadioGroup`1.SetValue(`0)">
            <summary>Causes the menu item with the specified value to become the selected one.
            If no menu item in the group is associated with the specified value, nothing happens.
            If more than one menu item in the group is associated with the same value, the
            behaviour is undefined.</summary>
            <param name="value">The value whose associated menu item is to be selected.</param>
        </member>
        <member name="M:RT.Util.Controls.MenuRadioGroup`1.AddMember(RT.Util.Controls.MenuRadioItem{`0})">
            <summary>Adds a menu item to the group.</summary>
            <param name="member">Menu item to be added to the group.</param>
        </member>
        <member name="M:RT.Util.Controls.MenuRadioGroup`1.GetItemFromValue(`0)">
            <summary>Returns the menu item associated with the specified value, or null
            if no menu item in the group is associated with the specified value.</summary>
            <param name="value">The value for which to find the menu item.</param>
        </member>
        <member name="P:RT.Util.Controls.MenuRadioGroup`1.Members">
            <summary>Returns an array of all the menu items contained in this group.</summary>
        </member>
        <member name="P:RT.Util.Controls.MenuRadioGroup`1.Value">
            <summary>Returns the value associated with the currently-selected menu item.</summary>
        </member>
        <member name="E:RT.Util.Controls.MenuRadioGroup`1.ValueChanged">
            <summary>Triggers whenever a different menu item becomes the selected one.</summary>
        </member>
        <member name="T:RT.Util.Controls.MenuRadioItem`1">
            <summary>
            Encapsulates a menu item that is associated with a value from a specified type, usually an enum.
            These menu items are intended to be grouped using a <see cref="T:RT.Util.Controls.MenuRadioGroup`1"/>.
            </summary>
            <typeparam name="T">The type of the value associated with this menu item.</typeparam>
        </member>
        <member name="M:RT.Util.Controls.MenuRadioItem`1.#ctor">
            <summary>Initialises a <see cref="T:RT.Util.Controls.MenuRadioItem`1"/> instance.</summary>
        </member>
        <member name="P:RT.Util.Controls.MenuRadioItem`1.Value">
            <summary>Returns the value associated with this menu item.</summary>
        </member>
        <member name="P:RT.Util.Controls.MenuRadioItem`1.ParentGroup">
            <summary>Returns the group to which this menu item belongs,
            or moves it to a different group.</summary>
        </member>
        <member name="T:RT.Util.Controls.NativeToolbarTheme">
            <summary>Defines values for several standard native toolbar themes.</summary>
        </member>
        <member name="F:RT.Util.Controls.NativeToolbarTheme.Toolbar">
            <summary>Standard toolbar theme - same as the native menu.</summary>
        </member>
        <member name="F:RT.Util.Controls.NativeToolbarTheme.MediaToolbar">
            <summary>A fancy colored theme (black on Win7).</summary>
        </member>
        <member name="F:RT.Util.Controls.NativeToolbarTheme.CommunicationsToolbar">
            <summary>A fancy colored theme (blue on Win7).</summary>
        </member>
        <member name="F:RT.Util.Controls.NativeToolbarTheme.BrowserTabBar">
            <summary>A fancy colored theme.</summary>
        </member>
        <member name="F:RT.Util.Controls.NativeToolbarTheme.HelpBar">
            <summary>A fancy colored theme (light on Win7).</summary>
        </member>
        <member name="T:RT.Util.Controls.NativeToolStripRenderer">
            <summary>Renders a toolstrip using the UxTheme API via VisualStyleRenderer and a specific style.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.GetThemeMargins(System.IntPtr,System.IntPtr,System.Int32,System.Int32,System.Int32,System.IntPtr,RT.Util.Controls.NativeToolStripRenderer.MARGINS@)">
            <summary>It shouldn't be necessary to P/Invoke like this, however VisualStyleRenderer.GetMargins misses out a parameter in its own P/Invoke.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.Initialize(System.Windows.Forms.ToolStrip)">
            <summary>Gives parented ToolStrips a transparent background.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.InitializePanel(System.Windows.Forms.ToolStripPanel)">
            <summary>
            Using just ToolStripManager.Renderer without setting the Renderer individually per ToolStrip means
            that the ToolStrip is not passed to the Initialize method. ToolStripPanels, however, are. So we can 
            simply initialize it here too, and this should guarantee that the ToolStrip is initialized at least 
            once. Hopefully it isn't any more complicated than this.
            </summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.OnRenderToolStripBorder(System.Windows.Forms.ToolStripRenderEventArgs)">
            <summary>Override - see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.OnRenderMenuItemBackground(System.Windows.Forms.ToolStripItemRenderEventArgs)">
            <summary>Override - see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.OnRenderToolStripPanelBackground(System.Windows.Forms.ToolStripPanelRenderEventArgs)">
            <summary>Override - see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.OnRenderToolStripBackground(System.Windows.Forms.ToolStripRenderEventArgs)">
            <summary>Render the background of an actual menu bar, dropdown menu or toolbar.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.OnRenderSplitButtonBackground(System.Windows.Forms.ToolStripItemRenderEventArgs)">
            <summary>
            The only purpose of this override is to change the arrow colour.
            It's OK to just draw over the default arrow since we also pass down arrow drawing to the system renderer.
            </summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.OnRenderItemText(System.Windows.Forms.ToolStripItemTextRenderEventArgs)">
            <summary>Override - see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.OnRenderImageMargin(System.Windows.Forms.ToolStripRenderEventArgs)">
            <summary>Override - see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.OnRenderSeparator(System.Windows.Forms.ToolStripSeparatorRenderEventArgs)">
            <summary>Override - see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.OnRenderItemCheck(System.Windows.Forms.ToolStripItemImageRenderEventArgs)">
            <summary>Override - see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.OnRenderArrow(System.Windows.Forms.ToolStripArrowRenderEventArgs)">
            <summary>Override - see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.NativeToolStripRenderer.OnRenderOverflowButtonBackground(System.Windows.Forms.ToolStripItemRenderEventArgs)">
            <summary>Override - see base.</summary>
        </member>
        <member name="P:RT.Util.Controls.NativeToolStripRenderer.Theme">
            <summary>Gets/sets the type of theme to use.</summary>
        </member>
        <member name="P:RT.Util.Controls.NativeToolStripRenderer.IsSupported">
            <summary>Gets a value indicating whether a native theme can be used.</summary>
        </member>
        <member name="T:RT.Util.Controls.NiceClosePanel">
            <summary>Provides a narrow panel that somewhat resembles a
            tooltip window's title bar with a close button.</summary>
        </member>
        <member name="M:RT.Util.Controls.NiceClosePanel.#ctor">
            <summary>Initialises a new <see cref="T:RT.Util.Controls.NiceClosePanel"/> instance.</summary>
        </member>
        <member name="E:RT.Util.Controls.NiceClosePanel.CloseClicked">
            <summary>Triggers when the close button is clicked.</summary>
        </member>
        <member name="T:RT.Util.Controls.ScrollableLabelEx">
            <summary>Provides a <see cref="T:RT.Util.Controls.LabelEx"/> wrapped in a ScrollableControl that behaves properly.</summary>
        </member>
        <member name="M:RT.Util.Controls.ScrollableLabelEx.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Controls.ScrollableLabelEx.ScrollTo(System.Int32)">
            <summary>Scrolls the label to the specified y co-ordinate.</summary>
            <param name="y">Position to scroll the label to (0 for top).</param>
        </member>
        <member name="M:RT.Util.Controls.ScrollableLabelEx.ScrollToControl(System.Windows.Forms.Control)">
            <summary>Override; see base.</summary>
        </member>
        <member name="P:RT.Util.Controls.ScrollableLabelEx.AutoScroll">
            <summary>Override; see base.</summary>
        </member>
        <member name="P:RT.Util.Controls.ScrollableLabelEx.Label">
            <summary>Gets the inner label.</summary>
        </member>
        <member name="T:RT.Util.Controls.Separator">
            <summary>
            This control is a label with a horizontal line running to the right of the label.
            The purpose is to visually separate blocks of controls, similar to GroupBox but
            without completely surrounding the controls in a box.
            </summary>
        </member>
        <member name="M:RT.Util.Controls.Separator.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.Controls.Separator.Text">
            <summary>
            Gets/sets the text displayed in the control. Set to an empty string in order
            to get a horizontal line separator.
            </summary>
        </member>
        <member name="T:RT.Util.Controls.SplitContainerEx">
            <summary>
            SplitContainerEx provides such "advanced" features as painting the bloody splitter.
            </summary>
        </member>
        <member name="M:RT.Util.Controls.SplitContainerEx.#ctor">
            <summary>
            Initialises a <see cref="T:RT.Util.Controls.SplitContainerEx"/> instance.
            </summary>
        </member>
        <member name="M:RT.Util.Controls.SplitContainerEx.OnPaint(System.Windows.Forms.PaintEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.SplitContainerEx.SetSettings(RT.Util.Controls.SplitContainerEx.Settings)">
            <summary>
            Stores a reference to the specified settings class, or null to disable the saving of settings.
            Loads the settings from the specified instance and applies them to the control.
            Must be called in form's Load event or later to have an effect!
            </summary>
        </member>
        <member name="M:RT.Util.Controls.SplitContainerEx.OnResize(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.SplitContainerEx.OnKeyDown(System.Windows.Forms.KeyEventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="E:RT.Util.Controls.SplitContainerEx.SplitterMoved">
            <summary>Occurs when the splitter control is moved.</summary>
        </member>
        <member name="P:RT.Util.Controls.SplitContainerEx.PaintSplitter">
            <summary>
            Specifies whether the splitter should be painted.
            </summary>
        </member>
        <member name="T:RT.Util.Controls.SplitContainerEx.Settings">
            <summary>Holds the settings of the <see cref="T:RT.Util.Controls.SplitContainerEx"/>.</summary>
        </member>
        <member name="F:RT.Util.Controls.SplitContainerEx.Settings.PositionPercent">
            <summary>Holds the position of the splitter, or null if not stored yet.</summary>
        </member>
        <member name="T:RT.Util.Controls.TextBoxAutoHeight">
            <summary>
            Encapsulates a textbox which, when in multi-line and wordwrap mode, will automatically set its height to be precisely as necessary to accommodate the contained text.
            </summary>
        </member>
        <member name="M:RT.Util.Controls.TextBoxAutoHeight.SetBoundsCore(System.Int32,System.Int32,System.Int32,System.Int32,System.Windows.Forms.BoundsSpecified)">
            <summary>Sets the specified bounds of the System.Windows.Forms.TextBoxBase control.</summary>
        </member>
        <member name="M:RT.Util.Controls.TextBoxAutoHeight.WndProc(System.Windows.Forms.Message@)">
            <summary>Overrides the base class's WndProc message to capture mouse-wheel messages and pass them on to the GUI parent instead.</summary>
            <param name="m">A Windows Message object.</param>
        </member>
        <member name="M:RT.Util.Controls.TextBoxAutoHeight.OnTextChanged(System.EventArgs)">
            <summary></summary>
            <param name="e"></param>
        </member>
        <member name="M:RT.Util.Controls.TextBoxAutoHeight.OnSizeChanged(System.EventArgs)">
            <summary>Raises the <see cref="E:System.Windows.Forms.Control.SizeChanged"/> event.</summary>
            <param name="e"></param>
        </member>
        <member name="M:RT.Util.Controls.TextBoxAutoHeight.OnMarginChanged(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Controls.TextBoxAutoHeight.OnPaddingChanged(System.EventArgs)">
            <summary>Override; see base.</summary>
        </member>
        <member name="P:RT.Util.Controls.TextBoxAutoHeight.Text">
            <summary>Gets or sets the current text in the <see cref="T:RT.Util.Controls.TextBoxAutoHeight"/>.</summary>
        </member>
        <member name="P:RT.Util.Controls.TextBoxAutoHeight.Font">
            <summary>Gets or sets the font of the text displayed by the control.</summary>
        </member>
        <member name="T:RT.Util.CustomCallStack">
            <summary>
                Provides static functionality to execute work on an unlimited call stack, which is not limited to 1 MB as the standard
                call stack is.</summary>
        </member>
        <member name="M:RT.Util.CustomCallStack.Run``1(RT.Util.WorkNode{``0})">
            <summary>
                Runs the specified work on a custom call stack, which is not limited to 1 MB as the standard call stack is. See
                remarks for details.</summary>
            <typeparam name="T">
                Type of result to compute.</typeparam>
            <param name="node">
                Work to be executed.</param>
            <returns>
                The result of the computation.</returns>
            <remarks>
                <para>
                    <see cref="M:RT.Util.CustomCallStack.Run``1(RT.Util.WorkNode{``0})"/> expects a delegate that is structured in such a way that it:</para>
                <list type="bullet">
                    <item><description>
                        always knows at what state in the computation it is each time it is called;</description></item>
                    <item><description>
                        returns a <see cref="T:RT.Util.WorkStep`1.Call"/> each time it requires some other value to be computed, and then
                        expects that resulting value to come in through the parameter next time it is called;</description></item>
                    <item><description>
                        returns a <see cref="T:RT.Util.WorkStep`1.Return"/> when it is done. At this point the delegate is not called
                        again.</description></item>
                    <item><description>
                        The delegate may return <c>null</c> to indicate the same as a <see cref="T:RT.Util.WorkStep`1.Return"/> containing
                        a <c>default(T)</c> value.</description></item></list>
                <para>
                    CustomCallStack works as follows:</para>
                <list type="bullet">
                    <item><description>
                        The first time the specified delegate is called, its parameter receives
                        <c>default(T)</c>.</description></item>
                    <item><description>
                        If the value returned by the delegate is a <see cref="T:RT.Util.WorkStep`1.Return"/>, the work is done and the
                        result is returned.</description></item>
                    <item><description>
                        If the value returned is a <see cref="T:RT.Util.WorkStep`1.Call"/>, this is treated similarly to a method call. The
                        old delegate is pushed on a stack and the new delegate is executed according to the same rules until it
                        returns a <see cref="T:RT.Util.WorkStep`1.Return"/>. Once it does so, the original delegate is popped from the
                        stack and then called with the result passed into its parameter.</description></item></list>
                <para>
                    There are deliberately no safeguards in this algorithm; it will allow you to grow the stack indefinitely and
                    not generate an equivalent to the <see cref="T:System.StackOverflowException"/>. This means that if your delegates
                    always return a <see cref="T:RT.Util.WorkStep`1.Call"/>, they will consume memory rampantly and never
                    finish.</para></remarks>
        </member>
        <member name="T:RT.Util.WorkStep`1">
            <summary>
                Describes the result of a call to a <see cref="T:RT.Util.WorkNode`1"/>.</summary>
            <typeparam name="T">
                Type of result to compute.</typeparam>
            <remarks>
                This type is closed: Every value is either <c>null</c> or an instance of <see cref="T:RT.Util.WorkStep`1.Return"/> or <see cref="T:RT.Util.WorkStep`1.Call"/>. The value <c>null</c> is treated as being equivalent to a <see cref="T:RT.Util.WorkStep`1.Return"/>
                containing a <c>default(T)</c>.</remarks>
        </member>
        <member name="M:RT.Util.WorkStep`1.op_Implicit(`0)~RT.Util.WorkStep{`0}">
            <summary>Implicitly converts from a result value to a <see cref="T:RT.Util.WorkStep`1.Return"/>.</summary>
        </member>
        <member name="M:RT.Util.WorkStep`1.op_Implicit(RT.Util.WorkNode{`0})~RT.Util.WorkStep{`0}">
            <summary>Implicitly converts from another work delegate to a <see cref="T:RT.Util.WorkStep`1.Call"/>.</summary>
        </member>
        <member name="T:RT.Util.WorkStep`1.Return">
            <summary>Indicates that the current delegate has finished its work and returned a result.</summary>
        </member>
        <member name="M:RT.Util.WorkStep`1.Return.#ctor(`0)">
            <summary>
                Constructs a <see cref="T:RT.Util.WorkStep`1.Return"/> value.</summary>
            <param name="result">
                Specifies the result returned by the computation.</param>
            <remarks>
                For convenience, the type <see cref="T:RT.Util.WorkStep`1"/> declares an implicit operator equivalent to this
                constructor.</remarks>
        </member>
        <member name="P:RT.Util.WorkStep`1.Return.Result">
            <summary>The result returned by the computation.</summary>
        </member>
        <member name="T:RT.Util.WorkStep`1.Call">
            <summary>Indicates that the current delegate requires another value to be computed before it can continue.</summary>
        </member>
        <member name="M:RT.Util.WorkStep`1.Call.#ctor(RT.Util.WorkNode{`0})">
            <summary>
                Constructs a <see cref="T:RT.Util.WorkStep`1.Call"/> value.</summary>
            <param name="work">
                Specifies the additional work required.</param>
            <remarks>
                For convenience, the type <see cref="T:RT.Util.WorkStep`1"/> declares an implicit operator equivalent to this
                constructor.</remarks>
        </member>
        <member name="P:RT.Util.WorkStep`1.Call.Callee">
            <summary>Specifies the additional work required.</summary>
        </member>
        <member name="T:RT.Util.WorkNode`1">
            <summary>
                Provides a delegate to specify work to be executed on an unlimited call stack. See <see cref="M:RT.Util.CustomCallStack.Run``1(RT.Util.WorkNode{``0})"/> for details.</summary>
            <typeparam name="T">
                Type of result to compute.</typeparam>
            <param name="previousSubresult">
                The result of the work step last returned by this same delegate.</param>
            <returns>
                The next step of computation (which is either a <see cref="T:RT.Util.WorkStep`1.Return"/> or a <see cref="T:RT.Util.WorkStep`1.Call"/>).</returns>
        </member>
        <member name="T:RT.Util.CuteML">
            <summary>
                Implements a parser for the minimalist text mark-up language CuteML.</summary>
            <remarks>
                <para>
                    The “rules” of CuteML are, in summary:</para>
                <list type="bullet">
                    <item><description>
                        A CuteML tag starts with <c>[</c> and ends with <c>]</c>.</description></item>
                    <item><description>
                        The character following the <c>[</c> is the tag name. This can be any character except for <c>&lt;</c>. For
                        example, the following is legal CuteML: <c>this is [*bold] text.</c></description></item>
                    <item><description>
                        Optional attribute data may be inserted between the <c>[</c> and the tag name enclosed in <c>&lt;...&gt;</c>.
                        For example, the following is legal CuteML: <c>this is [&lt;red&gt;:red] text.</c> This attribute data may not
                        contain the characters <c>[</c>, <c>]</c> or <c>&lt;</c>.</description></item>
                    <item><description>
                        The special tags <c>[(]</c> and <c>[)]</c> can be used to insert an opening and closing literal square
                        bracket, respectively.</description></item>
                    <item><description>
                        The special tag <c>[ ...]</c> (i.e., the tag name is the space character) can be used to insert a matching
                        literal square bracket. In other words, <c>[ xyz]</c> is equivalent to
                        <c>[(]xyz[)]</c>.</description></item></list></remarks>
        </member>
        <member name="M:RT.Util.CuteML.ParseCuteML(System.String)">
            <summary>
                Parses the specified CuteML input.</summary>
            <param name="input">
                The CuteML text to parse.</param>
            <returns>
                The resulting parse-tree.</returns>
            <remarks>
                <list type="bullet">
                    <item><description>
                        Tags are parsed into instances of <see cref="T:RT.Util.CuteTag"/>.</description></item>
                    <item><description>
                        The top-level nodes are contained in an instance of <see cref="T:RT.Util.CuteTag"/> whose <see cref="P:RT.Util.CuteTag.Tag"/>
                        property is set to null.</description></item>
                    <item><description>
                        All the literal text is parsed into instances of <see cref="T:RT.Util.CuteText"/>. All continuous text is
                        consolidated, so there are no two consecutive <see cref="T:RT.Util.CuteText"/> instances in any list of
                        children.</description></item></list></remarks>
            <exception cref="T:RT.Util.CuteMLParseException">
                Invalid syntax was encountered. The exception object contains the string index at which the error was
                detected.</exception>
            <exception cref="T:System.ArgumentNullException">
                <paramref name="input"/> was null.</exception>
        </member>
        <member name="M:RT.Util.CuteML.EscapeCuteML(System.String)">
            <summary>
                Escapes the input string such that it can be used in CuteML syntax. The result will have its <c>[</c> and <c>]</c>
                replaced with <c>[(]</c> and <c>[)]</c>.</summary>
        </member>
        <member name="M:RT.Util.CuteML.WordWrap``1(RT.Util.CuteNode,``0,System.Int32,RT.Util.CuteML.CuteMeasure{``0},RT.Util.CuteML.CuteRender{``0},RT.Util.CuteML.CuteNextLine{``0},RT.Util.CuteML.CuteNextState{``0})">
            <summary>
                Word-wraps a given piece of CuteML, assuming that it is linearly flowing text. Newline (<c>\n</c>) characters can
                be used to split the text into multiple paragraphs. The special <c>[+...]</c> tag marks text that may not be
                broken by wrapping (effectively turning all spaces into non-breaking spaces).</summary>
            <typeparam name="TState">
                The type of the text state that a tag can change, e.g. font or color.</typeparam>
            <param name="node">
                The root node of the CuteML tree to word-wrap.</param>
            <param name="initialState">
                The initial text state.</param>
            <param name="wrapWidth">
                The maximum width at which to word-wrap. This width can be measured in any unit, as long as <paramref
                name="measure"/> uses the same unit.</param>
            <param name="measure">
                A delegate that measures the width of any piece of text.</param>
            <param name="render">
                A delegate that is called whenever a piece of text is ready to be rendered.</param>
            <param name="advanceToNextLine">
                A delegate that is called to advance to the next line.</param>
            <param name="nextState">
                A delegate that determines how each CuteML tag character modifies the state (font, color etc.).</param>
            <returns>
                The maximum width of the text.</returns>
        </member>
        <member name="T:RT.Util.CuteML.CuteRender`1">
            <summary>
                Provides a delegate for <see cref="M:RT.Util.CuteML.WordWrap``1(RT.Util.CuteNode,``0,System.Int32,RT.Util.CuteML.CuteMeasure{``0},RT.Util.CuteML.CuteRender{``0},RT.Util.CuteML.CuteNextLine{``0},RT.Util.CuteML.CuteNextState{``0})"/> which renders a piece of text.</summary>
            <typeparam name="TState">
                The type of the text state, e.g. font or color.</typeparam>
            <param name="state">
                The state (font, color, etc.) the string is in.</param>
            <param name="text">
                The string to render.</param>
            <param name="width">
                The measured width of the string.</param>
        </member>
        <member name="T:RT.Util.CuteML.CuteMeasure`1">
            <summary>
                Provides a delegate for <see cref="M:RT.Util.CuteML.WordWrap``1(RT.Util.CuteNode,``0,System.Int32,RT.Util.CuteML.CuteMeasure{``0},RT.Util.CuteML.CuteRender{``0},RT.Util.CuteML.CuteNextLine{``0},RT.Util.CuteML.CuteNextState{``0})"/> which measures the width of a string.</summary>
            <typeparam name="TState">
                The type of the text state, e.g. font or color.</typeparam>
            <param name="state">
                The state (font, color etc.) of the text.</param>
            <param name="text">
                The text whose width to measure.</param>
            <returns>
                The width of the text in any arbitrary unit, as long as the “width” parameter in the call to <see cref="M:RT.Util.CuteML.WordWrap``1(RT.Util.CuteNode,``0,System.Int32,RT.Util.CuteML.CuteMeasure{``0},RT.Util.CuteML.CuteRender{``0},RT.Util.CuteML.CuteNextLine{``0},RT.Util.CuteML.CuteNextState{``0})"/> is in the same unit.</returns>
        </member>
        <member name="T:RT.Util.CuteML.CuteNextLine`1">
            <summary>
                Provides a delegate for <see cref="M:RT.Util.CuteML.WordWrap``1(RT.Util.CuteNode,``0,System.Int32,RT.Util.CuteML.CuteMeasure{``0},RT.Util.CuteML.CuteRender{``0},RT.Util.CuteML.CuteNextLine{``0},RT.Util.CuteML.CuteNextState{``0})"/> which advances to the next line.</summary>
            <typeparam name="TState">
                The type of the text state, e.g. font or color.</typeparam>
            <param name="state">
                The state (font, color etc.) of the text.</param>
            <param name="newParagraph">
                ‘true’ if a new paragraph begins, ‘false’ if a word is being wrapped within a paragraph.</param>
            <param name="indent">
                If <paramref name="newParagraph"/> is false, the indentation of the current paragraph as measured only by its
                leading spaces; otherwise, zero.</param>
            <returns>
                The indentation for the next line. Use this to implement, for example, hanging indents.</returns>
        </member>
        <member name="T:RT.Util.CuteML.CuteNextState`1">
            <summary>
                Provides a delegate for <see cref="M:RT.Util.CuteML.WordWrap``1(RT.Util.CuteNode,``0,System.Int32,RT.Util.CuteML.CuteMeasure{``0},RT.Util.CuteML.CuteRender{``0},RT.Util.CuteML.CuteNextLine{``0},RT.Util.CuteML.CuteNextState{``0})"/> which determines how the text state (font, color
                etc.) changes for a given CuteML tag character. This delegate is called for all tags except for <c>[+...]</c>,
                which is automatically processed to mean “nowrap”.</summary>
            <typeparam name="TState">
                The type of the text state, e.g. font or color.</typeparam>
            <param name="oldState">
                The previous state (for the parent tag).</param>
            <param name="cuteTag">
                The CuteML tag character.</param>
            <param name="parameter">
                The contents of the tag attribute, which can be used to parameterize tags.</param>
            <returns>
                The next state (return the old state for all tags that should not have a meaning) and an integer indicating the
                amount by which opening this tag has advanced the text position.</returns>
        </member>
        <member name="T:RT.Util.CuteNode">
            <summary>Contains a node in the CuteML parse tree.</summary>
        </member>
        <member name="M:RT.Util.CuteNode.ToXml">
            <summary>Returns the CuteML parse tree as XML.</summary>
        </member>
        <member name="M:RT.Util.CuteNode.#ctor(System.Int32)">
            <summary>
                Constructor.</summary>
            <param name="index">
                The index within the original string where this node starts.</param>
        </member>
        <member name="M:RT.Util.CuteNode.ToString(System.Boolean)">
            <summary>Gets the text of this node and/or sub-nodes concatenated into one string.</summary>
        </member>
        <member name="M:RT.Util.CuteNode.ToConsoleColoredStrings(System.Int32,System.Int32)">
            <summary>
                Generates a sequence of <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>s from a CuteML parse tree by word-wrapping the output
                at a specified character width.</summary>
            <param name="wrapWidth">
                The number of characters at which to word-wrap the output.</param>
            <param name="hangingIndent">
                The number of spaces to add to each line except the first of each paragraph, thus creating a hanging
                indentation.</param>
            <returns>
                The sequence of <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>s generated from the CuteML parse tree.</returns>
            <remarks>
                <para>
                    The following CuteML tags are processed:</para>
                <list type="bullet">
                    <item><description>
                        <c>[&lt;color&gt;:...]</c> = use the specified console color, for example
                        <c>[&lt;darkred&gt;:...]</c>.</description></item>
                    <item><description>
                        <c>[*blah]</c> = Brightens the current color, for example turning dark-red into red or light-gray into
                        white.</description></item>
                    <item><description>
                        <c>[-blah]</c> = Darkens the current color, for example turning red into dark-red or white into
                        light-gray.</description></item>
                    <item><description>
                        <c>[.blah]</c> = Creates a bullet point. Surround a whole paragraph with this to add the bullet point and
                        indent the paragraph. Use this to create bulleted lists. The default bullet point character is <c>*</c>;
                        you can use an attribute to specify another one, for example <c>[&lt;-&gt;.blah]</c>.</description></item>
                    <item><description>
                        <c>[+blah]</c> = Suppresses word-wrapping within a certain stretch of text. In other words, the contents
                        of a <c>[+...]</c> tag are treated as if they were a single word. Use this in preference to U+00A0
                        (no-break space) as it is more explicit and more future-compatible in case hyphenation is ever implemented
                        here.</description></item></list>
                <para>
                    Text which is not inside a color tag defaults to light gray.</para></remarks>
        </member>
        <member name="P:RT.Util.CuteNode.Index">
            <summary>The index in the original string where this node starts.</summary>
        </member>
        <member name="P:RT.Util.CuteNode.HasText">
            <summary>Determines whether this node contains any textual content.</summary>
        </member>
        <member name="P:RT.Util.CuteNode.Parent">
            <summary>Gets a reference to the parent node of this node. The root node is the only one for which this property is null.</summary>
        </member>
        <member name="T:RT.Util.CuteTag">
            <summary>Represents a node in the CuteML parse tree that corresponds to a CuteML tag or the top-level node.</summary>
        </member>
        <member name="M:RT.Util.CuteTag.Add(RT.Util.CuteNode)">
            <summary>
                Adds a new child node to this tag’s children.</summary>
            <param name="child">
                The child node to add.</param>
        </member>
        <member name="M:RT.Util.CuteTag.AddRange(System.Collections.Generic.IEnumerable{RT.Util.CuteNode})">
            <summary>
                Adds the specified child nodes to this tag’s children.</summary>
            <param name="children">
                The child nodes to add.</param>
        </member>
        <member name="M:RT.Util.CuteTag.RemoveFirst">
            <summary>Removes the first child node.</summary>
        </member>
        <member name="M:RT.Util.CuteTag.RemoveLast">
            <summary>Removes the last child node.</summary>
        </member>
        <member name="F:RT.Util.CuteTag._children">
            <summary>The underlying collection containing the children of this node.</summary>
        </member>
        <member name="M:RT.Util.CuteTag.#ctor(System.Nullable{System.Char},System.String,System.Int32)">
            <summary>
                Constructs a new CuteML parse-tree node that represents a CuteML tag.</summary>
            <param name="tag">
                The character that constitutes the tag name (e.g. <c>*</c>).</param>
            <param name="attribute">
                The attribute string provided with the tag, or null if none.</param>
            <param name="index">
                The index in the original string where this tag was opened.</param>
        </member>
        <member name="M:RT.Util.CuteTag.ToXml">
            <summary>Returns an XML representation of this CuteML node.</summary>
        </member>
        <member name="M:RT.Util.CuteTag.ToString">
            <summary>Converts the CuteML parse tree back into CuteML mark-up.</summary>
        </member>
        <member name="P:RT.Util.CuteTag.Children">
            <summary>The children of this node.</summary>
        </member>
        <member name="P:RT.Util.CuteTag.Attribute">
            <summary>The attribute data associated with the tag, or null if no attribute data was specified.</summary>
        </member>
        <member name="P:RT.Util.CuteTag.HasText">
            <summary>Determines whether this node contains any textual content.</summary>
        </member>
        <member name="P:RT.Util.CuteTag.Tag">
            <summary>The character that constitutes the tag name (e.g. <c>*</c>), or null if this is the top-level node.</summary>
        </member>
        <member name="T:RT.Util.CuteText">
            <summary>Represents a node in the CuteML parse tree that corresponds to a piece of text.</summary>
        </member>
        <member name="M:RT.Util.CuteText.#ctor(System.String,System.Int32)">
            <summary>
                Constructs a new CuteML text node.</summary>
            <param name="text">
                The text for this node to contain.</param>
            <param name="index">
                The index in the original string where this text starts.</param>
        </member>
        <member name="M:RT.Util.CuteText.ToXml">
            <summary>Returns an XML representation of this EggsML node.</summary>
        </member>
        <member name="M:RT.Util.CuteText.ToString">
            <summary>Returns the contained text in CuteML-escaped form.</summary>
        </member>
        <member name="P:RT.Util.CuteText.Text">
            <summary>The text contained in this node.</summary>
        </member>
        <member name="P:RT.Util.CuteText.HasText">
            <summary>Determines whether this node contains any textual content.</summary>
        </member>
        <member name="T:RT.Util.CuteMLParseException">
            <summary>Represents a parse error encountered by the <see cref="T:RT.Util.CuteML"/> parser.</summary>
        </member>
        <member name="M:RT.Util.CuteMLParseException.#ctor(System.String,System.Int32,System.Int32,System.Nullable{System.Int32},System.Exception)">
            <summary>
                Constructor.</summary>
            <param name="message">
                Message.</param>
            <param name="index">
                The character index into the original string where the error occurred.</param>
            <param name="length">
                The length of the text in the original string where the error occurred.</param>
            <param name="firstIndex">
                The character index of an earlier position in the original string where the error started (e.g. the start of a tag
                that is missing its end tag).</param>
            <param name="inner">
                An inner exception to pass to the base Exception class.</param>
        </member>
        <member name="P:RT.Util.CuteMLParseException.Index">
            <summary>The character index into the original string where the error occurred.</summary>
        </member>
        <member name="P:RT.Util.CuteMLParseException.Length">
            <summary>The length of the text in the original string where the error occurred.</summary>
        </member>
        <member name="P:RT.Util.CuteMLParseException.FirstIndex">
            <summary>
                The character index of an earlier position in the original string where the error started (e.g. the start of a tag
                that is missing its end tag).</summary>
        </member>
        <member name="T:RT.Util.CustomComparer`1">
            <summary>
                Encapsulates an IComparer&lt;T&gt; that uses a comparison function provided as a delegate.</summary>
            <typeparam name="T">
                The type of elements to be compared.</typeparam>
        </member>
        <member name="M:RT.Util.CustomComparer`1.Compare(`0,`0)">
            <summary>
                Compares two elements.</summary>
            <remarks>
                This method implements <see cref="M:System.Collections.Generic.IComparer`1.Compare(`0,`0)"/>.</remarks>
        </member>
        <member name="M:RT.Util.CustomComparer`1.#ctor(System.Comparison{`0})">
            <summary>
                Constructor.</summary>
            <param name="comparison">
                Provides the comparison function for this comparer.</param>
        </member>
        <member name="M:RT.Util.CustomComparer`1.By``1(System.Func{`0,``0},System.Collections.Generic.IComparer{``0})">
            <summary>
                Creates and returns a CustomComparer which compares items by comparing the results of a selector function.</summary>
            <param name="selector">
                Function selecting the actual value to be compared.</param>
            <param name="comparer">
                Comparer to use for comparing the results of the selector function. If null, the default comparer is used;
                this comparer will use the IComparable interface if implemented.</param>
        </member>
        <member name="M:RT.Util.CustomComparer`1.By``1(System.Func{`0,``0},System.Comparison{``0})">
            <summary>
                Creates and returns a CustomComparer which compares items by comparing the results of a selector function.</summary>
            <param name="selector">
                Function selecting the actual value to be compared.</param>
            <param name="comparison">
                Comparison to use for comparing the results of the selector function.</param>
        </member>
        <member name="M:RT.Util.CustomComparer`1.By(System.Func{`0,System.String},System.Boolean)">
            <summary>
                Creates and returns a CustomComparer which compares items by comparing the results of a selector function.</summary>
            <param name="selector">
                Function selecting the string value to be compared.</param>
            <param name="ignoreCase">
                If false, an invariant culture string comparison is used. Otherwise, an ordinal no-case comparison (suitable
                for filenames etc).</param>
        </member>
        <member name="M:RT.Util.CustomComparer`1.ThenBy``1(System.Func{`0,``0},System.Collections.Generic.IComparer{``0})">
            <summary>
                Creates and returns a CustomComparer which uses the current comparer first, and if the current comparer says
                the items are equal, further compares items by comparing the results of a selector function.</summary>
            <param name="selector">
                Function selecting the actual value to be compared.</param>
            <param name="comparer">
                Comparer to use for comparing the results of the selector function. If null, the default comparer is used;
                this comparer will use the IComparable interface if implemented.</param>
        </member>
        <member name="M:RT.Util.CustomComparer`1.ThenBy``1(System.Func{`0,``0},System.Comparison{``0})">
            <summary>
                Creates and returns a CustomComparer which uses the current comparer first, and if the current comparer says
                the items are equal, further compares items by comparing the results of a selector function.</summary>
            <param name="selector">
                Function selecting the actual value to be compared.</param>
            <param name="comparison">
                Comparison to use for comparing the results of the selector function.</param>
        </member>
        <member name="M:RT.Util.CustomComparer`1.ThenBy(System.Func{`0,System.String},System.Boolean)">
            <summary>
                Creates and returns a CustomComparer which uses the current comparer first, and if the current comparer says
                the items are equal, further compares items by comparing the results of a string selector function.</summary>
            <param name="selector">
                Function selecting the actual value to be compared.</param>
            <param name="ignoreCase">
                If false, an invariant culture string comparison is used. Otherwise, an ordinal no-case comparison (suitable
                for filenames etc).</param>
        </member>
        <member name="T:RT.Util.CustomEqualityComparer`1">
            <summary>
                Encapsulates an IEqualityComparer&lt;T&gt; that uses an equality comparison function provided as a delegate.</summary>
            <typeparam name="T">
                The type of elements to be compared for equality.</typeparam>
        </member>
        <member name="M:RT.Util.CustomEqualityComparer`1.Equals(`0,`0)">
            <summary>
                Compares two elements for equality.</summary>
            <remarks>
                This method implements <see cref="M:System.Collections.Generic.IEqualityComparer`1.Equals(`0,`0)"/>.</remarks>
        </member>
        <member name="M:RT.Util.CustomEqualityComparer`1.GetHashCode(`0)">
            <summary>
                Returns a hash code for an element.</summary>
            <remarks>
                This method implements <see cref="M:System.Collections.Generic.IEqualityComparer`1.GetHashCode(`0)"/>.</remarks>
        </member>
        <member name="M:RT.Util.CustomEqualityComparer`1.#ctor(System.Func{`0,`0,System.Boolean},System.Func{`0,System.Int32})">
            <summary>
                Constructor.</summary>
            <param name="comparison">
                Provides the comparison function for this equality comparer.</param>
            <param name="getHashCode">
                Provides the hash function for this equality comparer.</param>
        </member>
        <member name="M:RT.Util.CustomEqualityComparer`1.By``1(System.Func{`0,``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
                Creates and returns an equality comparer that compares the equality of objects by comparing the equality of
                the result of a selector function.</summary>
            <param name="selector">
                Function selecting the actual value to be compared.</param>
            <param name="comparer">
                Comparer to use for comparing the results of the selector function.</param>
        </member>
        <member name="M:RT.Util.CustomEqualityComparer`1.By``1(System.Func{`0,``0},System.Func{``0,``0,System.Boolean},System.Func{``0,System.Int32})">
            <summary>
                Creates and returns an equality comparer that compares the equality of objects by comparing the equality of
                the result of a selector function.</summary>
            <param name="selector">
                Function selecting the actual value to be compared.</param>
            <param name="comparison">
                Function used to compare values for equality. If null, will use IEquatable if implemented, or the object's
                Equals override.</param>
            <param name="getHashCode">
                Function used to compute hash codes. If null, will use IEquatable if implemented, or the object's GetHashCode
                override.</param>
        </member>
        <member name="M:RT.Util.CustomEqualityComparer`1.By(System.Func{`0,System.String},System.Boolean)">
            <summary>
                Creates and returns an equality comparer that compares the equality of objects by comparing the equality of
                the result of a string selector function.</summary>
            <param name="selector">
                Function selecting the actual string value to be compared.</param>
            <param name="ignoreCase">
                If false, an invariant culture string comparison is used. Otherwise, an ordinal no-case comparison (suitable
                for filenames etc).</param>
        </member>
        <member name="T:RT.Util.ExtensionMethods.TextReaderWriterExtensions">
            <summary>
                Provides extension methods on the <see cref="T:System.IO.TextReader"/>, <see cref="T:System.IO.TextWriter"/>
                and any related types.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.TextReaderWriterExtensions.ReadLines(System.IO.TextReader)">
            <summary>
                Enumerates all (remaining) lines from this text reader, reading lines only when needed, and
                hence compatible with potentially blocking or infinite streams.</summary>
        </member>
        <member name="T:RT.Util.HClient">
            <summary>Provides very simple and easy-to-use methods to run an HTTP request and receive the response.</summary>
        </member>
        <member name="F:RT.Util.HClient.DefaultRootUrl">
            <summary>Specifies the default root URL. See <see cref="F:RT.Util.HClient.RootUrl"/> for more information.</summary>
        </member>
        <member name="F:RT.Util.HClient.DefaultLog">
            <summary>Specifies the default logger. See <see cref="F:RT.Util.HClient.Log"/> for more information.</summary>
        </member>
        <member name="F:RT.Util.HClient.Cookies">
            <summary>Contains the cookies to be sent to the server and received from the server.</summary>
        </member>
        <member name="F:RT.Util.HClient.Log">
            <summary>Specifies a logger that logs all outgoing requests and responses.</summary>
        </member>
        <member name="F:RT.Util.HClient.RootUrl">
            <summary>
                Specifies the root URL. If the request URL begins with <c>http://</c> or <c>https://</c>, this is ignored.
                Otherwise the URL is prepended with this.</summary>
        </member>
        <member name="M:RT.Util.HClient.#ctor">
            <summary>Constructor. Initializes the request to look like it came from a recent version of Firefox.</summary>
        </member>
        <member name="M:RT.Util.HClient.Get(System.String,RT.Util.HArg[])">
            <summary>
                Performs a GET request to the specified URL and with the specified query parameters.</summary>
            <param name="url">
                The URL of the request. If the URL does not begin with <c>http://</c> or <c>https://</c>, it is automatically
                prepended with <see cref="F:RT.Util.HClient.RootUrl"/>.</param>
            <param name="args">
                Query parameters to add to the end of the URL in the usual <c>?k1=v1&amp;k2=v2&amp;...</c> format.</param>
            <returns>
                The response received from the server.</returns>
        </member>
        <member name="M:RT.Util.HClient.Post(System.String,System.Byte[],System.String)">
            <summary>
                Performs a POST request with the body of the request specified as raw data.</summary>
            <param name="url">
                The URL of the request. If the URL does not begin with <c>http://</c> or <c>https://</c>, it is automatically
                prepended with <see cref="F:RT.Util.HClient.RootUrl"/>.</param>
            <param name="bytes">
                The body of the request, as raw data.</param>
            <param name="contentType">
                The value of the <c>Content-Type</c> header.</param>
            <returns>
                The response received from the server.</returns>
        </member>
        <member name="M:RT.Util.HClient.Post(System.String,RT.Util.HArg[])">
            <summary>
                Performs a POST request with the body consisting of a series of key-value arguments.</summary>
            <param name="url">
                The URL of the request. If the URL does not begin with <c>http://</c> or <c>https://</c>, it is automatically
                prepended with <see cref="F:RT.Util.HClient.RootUrl"/>.</param>
            <param name="args">
                The arguments to pass with the POST request.</param>
            <returns>
                The response received from the server.</returns>
            <remarks>
                This method automatically calls either <see cref="M:RT.Util.HClient.PostFormdata(System.String,RT.Util.HArg[])"/> or <see cref="M:RT.Util.HClient.PostUrlencoded(System.String,RT.Util.HArg[])"/> depending on
                whether the provided arguments contain any file uploads or not.</remarks>
        </member>
        <member name="M:RT.Util.HClient.PostUrlencoded(System.String,RT.Util.HArg[])">
            <summary>
                Performs a POST request with the body consisting of a series of key-value arguments, encoded in the
                <c>application/x-www-form-urlencoded</c> format.</summary>
            <param name="url">
                The URL of the request. If the URL does not begin with <c>http://</c> or <c>https://</c>, it is automatically
                prepended with <see cref="F:RT.Util.HClient.RootUrl"/>.</param>
            <param name="args">
                The arguments to pass with the POST request.</param>
            <returns>
                The response received from the server.</returns>
            <remarks>
                Choose this format for requests that need to be small and do not contain any file uploads.</remarks>
            <seealso cref="M:RT.Util.HClient.Post(System.String,RT.Util.HArg[])"/>
        </member>
        <member name="M:RT.Util.HClient.PostFormdata(System.String,RT.Util.HArg[])">
            <summary>
                Performs a POST request with the body consisting of a series of key-value arguments, encoded in the
                <c>multipart/form-data</c> format.</summary>
            <param name="url">
                The URL of the request. If the URL does not begin with <c>http://</c> or <c>https://</c>, it is automatically
                prepended with <see cref="F:RT.Util.HClient.RootUrl"/>.</param>
            <param name="args">
                The arguments to pass with the POST request.</param>
            <returns>
                The response received from the server.</returns>
            <remarks>
                Choose this format for requests that need to contain file uploads.</remarks>
            <seealso cref="M:RT.Util.HClient.Post(System.String,RT.Util.HArg[])"/>
        </member>
        <member name="P:RT.Util.HClient.AllowAutoRedirect">
            <summary>Specifies whether the receipt of a redirect should automatically generate a new request for the new URL.</summary>
        </member>
        <member name="P:RT.Util.HClient.Accept">
            <summary>Specifies the value of the <c>Accept</c> header for outgoing requests.</summary>
        </member>
        <member name="P:RT.Util.HClient.AcceptLanguage">
            <summary>Specifies the value of the <c>AcceptLanguage</c> header for outgoing requests.</summary>
        </member>
        <member name="P:RT.Util.HClient.AcceptEncoding">
            <summary>
                Specifies which compression methods are supported. This affects the Accept-Encoding header and automatically
                decompresses the response if necessary.</summary>
        </member>
        <member name="P:RT.Util.HClient.Referer">
            <summary>Specifies the value of the <c>Referer</c> header for outgoing requests.</summary>
        </member>
        <member name="P:RT.Util.HClient.Timeout">
            <summary>Specifies the value of the timeout to send requests or receive responses.</summary>
        </member>
        <member name="P:RT.Util.HClient.UserAgent">
            <summary>Specifies the value of the <c>UserAgent</c> header for outgoing requests.</summary>
        </member>
        <member name="T:RT.Util.HArg">
            <summary>Encapsulates an argument passed into an HTTP request sent by <see cref="T:RT.Util.HClient"/>.</summary>
        </member>
        <member name="M:RT.Util.HArg.#ctor(System.String,System.String)">
            <summary>
                Constructor for a key-value argument (not a file upload).</summary>
            <param name="name">
                Name of the argument.</param>
            <param name="value">
                Value of the argument.</param>
            <seealso cref="M:RT.Util.HArg.#ctor(System.String,RT.Util.Json.JsonValue)"/>
            <seealso cref="M:RT.Util.HArg.#ctor(System.String,System.String,System.String,System.Byte[])"/>
        </member>
        <member name="M:RT.Util.HArg.#ctor(System.String,RT.Util.Json.JsonValue)">
            <summary>
                Constructor for a key-value argument (not a file upload).</summary>
            <param name="name">
                Name of the argument.</param>
            <param name="value">
                Value of the argument. This value is encoded as JSON syntax.</param>
            <seealso cref="M:RT.Util.HArg.#ctor(System.String,System.String)"/>
            <seealso cref="M:RT.Util.HArg.#ctor(System.String,System.String,System.String,System.Byte[])"/>
        </member>
        <member name="M:RT.Util.HArg.#ctor(System.String,System.String,System.String,System.Byte[])">
            <summary>
                Constructor for a file upload.</summary>
            <param name="name">
                Name of the argument.</param>
            <param name="fileName">
                Name of the file to upload.</param>
            <param name="fileContentType">
                MIME content-type of the file to upload.</param>
            <param name="fileContent">
                Raw file content.</param>
            <seealso cref="M:RT.Util.HArg.#ctor(System.String,System.String)"/>
            <seealso cref="M:RT.Util.HArg.#ctor(System.String,RT.Util.Json.JsonValue)"/>
        </member>
        <member name="P:RT.Util.HArg.Name">
            <summary>The name of the argument.</summary>
        </member>
        <member name="P:RT.Util.HArg.Value">
            <summary>
                The value of the argument, or <c>null</c> if this is a file upload.</summary>
            <remarks>
                If this is non-<c>null</c>, all of <see cref="P:RT.Util.HArg.FileName"/>, <see cref="P:RT.Util.HArg.FileContentType"/> and <see cref="P:RT.Util.HArg.FileContent"/> must be <c>null</c>.</remarks>
        </member>
        <member name="P:RT.Util.HArg.FileName">
            <summary>
                The name of the file to upload.</summary>
            <remarks>
                If this is non-<c>null</c>, <see cref="P:RT.Util.HArg.FileContentType"/> and <see cref="P:RT.Util.HArg.FileContent"/> must be
                non-<c>null</c> too, and <see cref="P:RT.Util.HArg.Value"/> must be <c>null</c>.</remarks>
        </member>
        <member name="P:RT.Util.HArg.FileContentType">
            <summary>
                The name of the file to upload.</summary>
            <remarks>
                If this is non-<c>null</c>, <see cref="P:RT.Util.HArg.FileName"/> and <see cref="P:RT.Util.HArg.FileContent"/> must be non-<c>null</c> too,
                and <see cref="P:RT.Util.HArg.Value"/> must be <c>null</c>.</remarks>
        </member>
        <member name="P:RT.Util.HArg.FileContent">
            <summary>
                The name of the file to upload.</summary>
            <remarks>
                If this is non-<c>null</c>, <see cref="P:RT.Util.HArg.FileName"/> and <see cref="P:RT.Util.HArg.FileContentType"/> must be non-<c>null</c>
                too, and <see cref="P:RT.Util.HArg.Value"/> must be <c>null</c>.</remarks>
        </member>
        <member name="P:RT.Util.HArg.ValidForUrlEncoded">
            <summary>Determines whether this argument can be used in a call to <see cref="M:RT.Util.HClient.PostUrlencoded(System.String,RT.Util.HArg[])"/>.</summary>
        </member>
        <member name="P:RT.Util.HArg.Valid">
            <summary>
                Determines whether this argument is valid.</summary>
            <remarks>
                <para>
                    To be valid, this argument must satisfy the following conditions:</para>
                <list type="bullet">
                    <item><description>
                        <see cref="P:RT.Util.HArg.Name"/> cannot be <c>null</c>;</description></item>
                    <item><description>
                        <para>
                            either:</para>
                        <list type="bullet">
                            <item><description>
                                <see cref="P:RT.Util.HArg.Value"/> is non-<c>null</c>, while <see cref="P:RT.Util.HArg.FileName"/>, <see cref="P:RT.Util.HArg.FileContentType"/> and <see cref="P:RT.Util.HArg.FileContent"/> are <c>null</c>, or</description></item>
                            <item><description>
                                <see cref="P:RT.Util.HArg.Value"/> is <c>null</c>, while <see cref="P:RT.Util.HArg.FileName"/>, <see cref="P:RT.Util.HArg.FileContentType"/> and <see cref="P:RT.Util.HArg.FileContent"/> are non-<c>null</c>.</description></item></list></description></item></list></remarks>
        </member>
        <member name="T:RT.Util.HResponse">
            <summary>
                Encapsulates the response received by an HTTP server after a call to <see cref="M:RT.Util.HClient.Get(System.String,RT.Util.HArg[])"/>, <see cref="M:RT.Util.HClient.Post(System.String,RT.Util.HArg[])"/> or related methods.</summary>
        </member>
        <member name="M:RT.Util.HResponse.#ctor(System.Net.HttpWebResponse)">
            <summary>
                Constructs a new instance of <see cref="T:RT.Util.HResponse"/> by reading all data from the response stream of the
                specified <see cref="T:System.Net.HttpWebResponse"/> object and closing it.</summary>
            <param name="response">
                Object to copy data from.</param>
        </member>
        <member name="M:RT.Util.HResponse.Expect(System.Net.HttpStatusCode)">
            <summary>
                Throws an exception if the status code of the response is not the specified expected status code.</summary>
            <param name="status">
                The status code that is expected.</param>
            <returns>
                Itself.</returns>
        </member>
        <member name="P:RT.Util.HResponse.Data">
            <summary>The raw content of the response.</summary>
        </member>
        <member name="P:RT.Util.HResponse.DataString">
            <summary>The content of the response, converted to a <c>string</c> from UTF-8.</summary>
        </member>
        <member name="P:RT.Util.HResponse.DataJson">
            <summary>The content of the response, parsed as JSON.</summary>
        </member>
        <member name="P:RT.Util.HResponse.StatusCode">
            <summary>The status code of the response.</summary>
        </member>
        <member name="P:RT.Util.HResponse.Location">
            <summary>Specifies the location this response is redirecting to or was redirected to.</summary>
        </member>
        <member name="T:RT.Util.IL.ILReader">
            <summary>Decodes the IL inside a specified method.</summary>
        </member>
        <member name="M:RT.Util.IL.ILReader.ReadIL(System.Reflection.MethodBase,System.Type)">
            <summary>Decodes the IL inside the specified method.</summary>
            <param name="method">The method whose IL to decode. This may be a constructor, too.</param>
            <param name="genericContext">The type in which the method is declared, to provide context to resolve members that involve generics.</param>
            <returns>The sequence of <see cref="T:RT.Util.IL.Instruction"/> instances describing the instructions in the method.</returns>
        </member>
        <member name="T:RT.Util.IL.Instruction">
            <summary>Describes an IL instruction in a method.</summary>
        </member>
        <member name="M:RT.Util.IL.Instruction.#ctor(System.Int32,System.Reflection.Emit.OpCode,System.Object)">
            <summary>Constructs an instance representing an IL instruction.</summary>
            <param name="startOffset">The byte offset at which this instruction starts.</param>
            <param name="opCode">The opcode of the instruction.</param>
            <param name="operand">The operand.</param>
        </member>
        <member name="M:RT.Util.IL.Instruction.ToString">
            <summary>Returns a string representation of this object.</summary>
        </member>
        <member name="P:RT.Util.IL.Instruction.StartOffset">
            <summary>The byte offset at which this instruction starts.</summary>
        </member>
        <member name="P:RT.Util.IL.Instruction.OpCode">
            <summary>The opcode of the instruction.</summary>
        </member>
        <member name="P:RT.Util.IL.Instruction.Operand">
            <summary>The operand. Depending on the <see cref="P:RT.Util.IL.Instruction.OpCode"/>, this may be a <see cref="T:System.Reflection.FieldInfo"/>, <see cref="T:System.Reflection.MethodBase"/>, <see cref="T:System.Type"/>, byte, short, int, long, string, float, double, or null.
            In the case of the switch instruction, it is an int[].</summary>
        </member>
        <member name="T:RT.Util.Drawing.BytesBitmap">
            <summary>
            Wrapper around a Bitmap that allows access to its raw byte data.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.BytesBitmap.GetBitmapCopy">
            <summary>
            Use this to create a new Bitmap that is a copy of the image stored in this
            BytesBitmap. This can be passed around safely, unlike the wrapped bitmap
            returned by <see cref="P:RT.Util.Drawing.BytesBitmap.Bitmap"/>.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.BytesBitmap.#ctor(System.Int32,System.Int32,System.Drawing.Imaging.PixelFormat)">
            <summary>
            Creates a new, blank BytesBitmap with the specified width, height, and pixel format.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.BytesBitmap.Dispose">
            <summary>Disposes the underlying resources.</summary>
        </member>
        <member name="P:RT.Util.Drawing.BytesBitmap.Bits">
            <summary>
            Gets an array that contains the bitmap bit buffer.
            </summary>
        </member>
        <member name="P:RT.Util.Drawing.BytesBitmap.Bitmap">
            <summary>
            Gets the underlying Bitmap that this BytesBitmap wraps. USAGE WARNING:
            DO NOT use this if the BytesBitmap wrapping it may have gone out of context
            and disposed of. This will cause intermittent issues - when the BytesBitmap
            gets GC'd. Use <see cref="M:RT.Util.Drawing.BytesBitmap.GetBitmapCopy"/> instead.
            </summary>
        </member>
        <member name="P:RT.Util.Drawing.BytesBitmap.Stride">
            <summary>
            Gets the stride (the number of bytes to go one pixel down) of the bitmap.
            </summary>
        </member>
        <member name="P:RT.Util.Drawing.BytesBitmap.PixelFormatSize">
            <summary>
            Gets the number of bits needed to store a pixel.
            </summary>
        </member>
        <member name="P:RT.Util.Drawing.BytesBitmap.BitPtr">
            <summary>
            Gets a safe pointer to the buffer containing the bitmap bits.
            </summary>
        </member>
        <member name="P:RT.Util.Drawing.BytesBitmap.Disposed">
            <summary>Specifies whether the underlying resources for this <see cref="T:RT.Util.Drawing.BytesBitmap"/> have already been disposed.</summary>
        </member>
        <member name="T:RT.Util.Drawing.SharedPinnedByteArray">
            <summary>
            This class represents a byte array which is pinned to avoid relocation
            by the GC and implements reference counting.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.SharedPinnedByteArray.AddressOf(System.Int32)">
            <summary>
            Returns an unmanaged address of the specified byte in the byte array.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.SharedPinnedByteArray.#ctor(System.Int32)">
            <summary>
            Creates a new pinned array of the specified size, that can be accessed through <see cref="P:RT.Util.Drawing.SharedPinnedByteArray.Bytes"/>.
            One reference is automatically added; call <see cref="M:RT.Util.Drawing.SharedPinnedByteArray.ReleaseReference"/> when finished using this array.
            </summary>
            <param name="length">The number of bytes that the pinned array should contain</param>
        </member>
        <member name="M:RT.Util.Drawing.SharedPinnedByteArray.AddReference">
            <summary>
            Adds a reference to this array. One reference is counted when the array is created. It is deleted when
            all references are released using <see cref="M:RT.Util.Drawing.SharedPinnedByteArray.ReleaseReference"/>.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.SharedPinnedByteArray.ReleaseReference">
            <summary>
            Releases a reference to this array. When there are none left, the array is unpinned and can get garbage-collected.
            </summary>
        </member>
        <member name="P:RT.Util.Drawing.SharedPinnedByteArray.Bytes">
            <summary>
            Gets the allocated byte array. This can be modified as desired.
            </summary>
        </member>
        <member name="P:RT.Util.Drawing.SharedPinnedByteArray.Address">
            <summary>
            Gets an unmanaged address of the first (index 0) byte of the byte array.
            </summary>
        </member>
        <member name="P:RT.Util.Drawing.SharedPinnedByteArray.Length">
            <summary>Gets the length of the byte array.</summary>
        </member>
        <member name="T:RT.Util.Drawing.CoordinateAxesDirection">
            <summary>Encodes axes direction mode for <see cref="T:RT.Util.Drawing.Canvas"/>.</summary>
        </member>
        <member name="F:RT.Util.Drawing.CoordinateAxesDirection.RightDown">
            <summary>X axis grows towards the right and Y axis grows downwards (normal computer screen coordinate direction)</summary>
        </member>
        <member name="F:RT.Util.Drawing.CoordinateAxesDirection.RightUp">
            <summary>X axis grows towards the right and Y axis grows upwards.</summary>
        </member>
        <member name="T:RT.Util.Drawing.TextAnchor">
            <summary>Specifies text alignment for <see cref="T:RT.Util.Drawing.Canvas"/>.</summary>
        </member>
        <member name="T:RT.Util.Drawing.Canvas">
            <summary>
            <para>Wraps a <see cref="T:System.Drawing.Graphics"/> to provide a hopefully more convenient interface.
            The major bits of functionality are:</para>
            <list type="bullet">
            <item><description>all coordinates in doubles or <see cref="N:RT.Util.Geometry"/> structs;</description></item>
            <item><description>support for the Y axis growing upwards;</description></item>
            <item><description>functions targeted at drawing a 2d world onto a viewport of a specified size.</description></item>
            </list>
            <para>Common terms and abbreviations:</para>
            <list type="table">
            <item><term>Screen</term><description>Rectangular area that will be the final destination of the drawing.</description></item>
            <item><term>Viewport</term><description>The region, defined in terms of the world coordinates, that is viewable on the screen.</description></item>
            <item><term>World coordinates</term><description>Coordinates of the underlying "world" being represented.</description></item>
            <item><term>Screen coordinates</term><description>Coordinates on the screen, can be used to directly draw on the underlying Graphics.</description></item>
            <item><term>WX, WY, WW, WH</term><description>World X, Y, Width, Height, respectively</description></item>
            <item><term>SX, SY, SW, SH</term><description>Screen X, Y, Width, Height, respectively</description></item>
            </list>
            </summary>
        </member>
        <member name="F:RT.Util.Drawing.Canvas.Graphics">
            <summary>
            The underlying Graphics. All the actual drawing is done onto this instance.
            </summary>
        </member>
        <member name="F:RT.Util.Drawing.Canvas.CoordinateAxesDirection">
            <summary>
            Selects a coordinate axes mode.
            </summary>
        </member>
        <member name="F:RT.Util.Drawing.Canvas.ScreenSize">
            <summary>
            Stores the screen size. "Screen" here refers to the final surface that this Canvas is destined for.
            The screen size is used for "set viewport" methods which do not take a screen location: they assume
            the relevant screen edge is meant instead.
            </summary>
        </member>
        <member name="F:RT.Util.Drawing.Canvas.DefaultFont">
            <summary>
            The font to be used by text drawing functions if no font is specified.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.#ctor">
            <summary>
            Creates an instance without initializing any of the required fields.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.#ctor(System.Drawing.Graphics)">
            <summary>
            Creates an instance using the specified Graphics as the underlying drawing surface.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.#ctor(System.Drawing.Graphics,System.Drawing.Size)">
            <summary>
            Creates an instance using the specified graphics and screenSize. See <see cref="F:RT.Util.Drawing.Canvas.ScreenSize"/>
            for more info.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.ResetViewport">
            <summary>
            Resets the scaling and offset so that world coordinates correspond to screen pixels.
            Maintains the offsets so that all visible pixels have positive coordinates and one of
            the corners is 0,0.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.SetViewport(System.Double,System.Double,System.Double)">
            <summary>
            Sets the viewport so that the specified world coordinate is in the centre of the
            viewable screen, using the specified scaling factor.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.SetViewport(System.Double,System.Double,System.Double,System.Double,System.Boolean)">
            <summary>
            Sets the scaling and offset so that the world coordinate "leftWX" corresponds to the leftmost
            coordinate on the screen, world "topWY" to the topmost screen coordinate, etc. If "maintainAspect"
            is "true", ensures that X and Y scaling is the same, by making one of the axes show more than implied by
            the arguments passed in.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.MoveViewport(System.Single,System.Single,System.Double,System.Double)">
            <summary>
            Adjusts the offsets so that the world coordinate wx,wy is at the
            screen coordinate sx,sy. Does not modify the scaling.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.SX(System.Double)">
            <summary>
            Converts world X coordinate into screen X. Screen X is zero at the leftmost pixel
            and Screen.Width at the rightmost pixel.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.SY(System.Double)">
            <summary>
            Converts world Y coordinate into screen Y. Screen Y is zero at the topmost pixel
            and Screen.Height at the bottommost pixel.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.SW(System.Double)">
            <summary>
            Converts world width into screen width. Screen width is measured in pixels.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.SH(System.Double)">
            <summary>
            Converts world height into screen height. Screen height is measured in pixels.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.sa(System.Double)">
            <summary>
            For internal use only. Converts world angle into screen angle as understood by
            GDI routines.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.sTop(System.Double,System.Double)">
            <summary>
            For internal use only.
            Given two world coordinates, one known to be smaller than the other one,
            returns the one that would be higher on the screen, converted to screen coordinates.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.WX(System.Single)">
            <summary>
            Converts screen X coordinate into world X. Screen X is zero at the leftmost pixel
            and Screen.Width at the rightmost pixel.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.WY(System.Single)">
            <summary>
            Converts screen Y coordinate into world Y. Screen Y is zero at the topmost pixel
            and Screen.Height at the bottommost pixel.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.WW(System.Single)">
            <summary>
            Converts screen width into world width. Screen width is measured in pixels.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.WH(System.Single)">
            <summary>
            Converts screen height into world height. Screen height is measured in pixels.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.Clear(System.Drawing.Color)">
            <summary>
            Fills the entire "screen" with the specified color.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawLine(System.Drawing.Pen,RT.Util.Geometry.EdgeD)">
            <summary>
            Draws a straight line using the specified pen.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawLine(System.Drawing.Pen,RT.Util.Geometry.PointD,RT.Util.Geometry.PointD)">
            <summary>
            Draws a straight line using the specified pen.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawLine(System.Drawing.Pen,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Draws a straight line using the specified pen.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawRectangle(System.Drawing.Pen,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Draws a rectangle using the specified pen. "xMin" and "yMin" specify the corner
            that has the smallest coordinates, so the resulting rectangle will be on coordinates
            xMin, yMin, xMin+width, yMin+height.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawRectangle(System.Drawing.Pen,RT.Util.Geometry.BoundingBoxD@)">
            <summary>
            Draws a rectangle using the specified pen. The bounding box defines the coordinates.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.FillRectangle(System.Drawing.Brush,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Fills a rectangle using the specified brush. "xMin" and "yMin" specify the corner
            that has the smallest coordinates, so the resulting rectangle will be on coordinates
            xMin, yMin, xMin+width, yMin+height.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.FillRectangle(System.Drawing.Brush,RT.Util.Geometry.BoundingBoxD@)">
            <summary>
            Fills a rectangle using the specified brush. The bounding box defines the coordinates.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawCircle(System.Drawing.Pen,RT.Util.Geometry.PointD,System.Double)">
            <summary>
            Draws a circle using the specified pen.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawCircle(System.Drawing.Pen,System.Double,System.Double,System.Double)">
            <summary>
            Draws a circle using the specified pen.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.FillCircle(System.Drawing.Brush,RT.Util.Geometry.PointD,System.Double)">
            <summary>
            Fills a circle using the specified pen.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.FillCircle(System.Drawing.Brush,System.Double,System.Double,System.Double)">
            <summary>
            Fills a circle using the specified pen.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawArc(System.Drawing.Pen,RT.Util.Geometry.PointD,System.Double,System.Double,System.Double)">
            <summary>
            Draws an arc using the specified pen.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawPie(System.Drawing.Pen,RT.Util.Geometry.PointD,System.Double,System.Double,System.Double)">
            <summary>
            Draws a "pie" using the specified pen. A pie is a circular arc whose endpoints are
            connected to the centre with straight lines.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawPie(System.Drawing.Pen,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Draws a "pie" using the specified pen. A pie is a circular arc whose endpoints are
            connected to the centre with straight lines.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawText(System.String,System.Drawing.Brush,System.Drawing.Font,System.Double,System.Double)">
            <summary>
            Draws text using the specified font and brush. The text's bounding box is centered on
            the specified point.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawText(System.String,System.Drawing.Brush,System.Drawing.Font,RT.Util.Geometry.PointD)">
            <summary>
            Draws text using the specified font and brush. The text's bounding box is centered on
            the specified point.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawText(System.String,System.Drawing.Brush,System.Double,System.Double)">
            <summary>
            Draws text using the default font and the specified brush. The text's bounding box is centered on
            the specified point.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.DrawPath(System.Drawing.Pen,System.Drawing.Drawing2D.GraphicsPath)">
            <summary>
            Draws a GraphicsPath using the specified pen.
            </summary>
        </member>
        <member name="M:RT.Util.Drawing.Canvas.FillPath(System.Drawing.Brush,System.Drawing.Drawing2D.GraphicsPath)">
            <summary>
            Fills a GraphicsPath using the specified brush.
            </summary>
        </member>
        <member name="T:RT.Util.Drawing.GraphicsTransformer">
            <summary>Provides a way to temporarily modify the Transform of a System.Drawing.Graphics object by enclosing the affected code in a “using” scope.</summary>
            <example>
            <para>The following example demonstrates how GraphicsTransformer can be used to render graphics translated.</para>
            <code>
                var g = Graphics.FromImage(...);
                using (new GraphicsTransformer(g).Translate(15, 10))
                {
                    // As this is inside the scope of the GraphicsTransformer, the rectangle is translated 15 pixels to the right and 10 down.
                    g.DrawRectangle(20, 20, 100, 100);
                }
                
                // As this statement is outside the scope of the GraphicsTransformer, the rectangle is not translated.
                // The net effect is that two rectangles are rendered even though both calls use the same co-ordinates.
                g.DrawRectangle(20, 20, 100, 100);
            </code>
            </example>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsTransformer.#ctor(System.Drawing.Graphics)">
            <summary>Instantiates a new <see cref="T:RT.Util.Drawing.GraphicsTransformer"/> instance. Use this in a “using” statement.</summary>
            <param name="g">The Graphics object whose Transform to modify.</param>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsTransformer.Translate(System.Single,System.Single)">
            <summary>Translates the graphics by the specified amount.</summary>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsTransformer.Translate(System.Double,System.Double)">
            <summary>Translates the graphics by the specified amount.</summary>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsTransformer.Scale(System.Single,System.Single)">
            <summary>Scales the graphics by the specified factors.</summary>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsTransformer.Scale(System.Double,System.Double)">
            <summary>Scales the graphics by the specified factors.</summary>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsTransformer.Rotate(System.Single)">
            <summary>Rotates the graphics by the specified angle in degrees.</summary>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsTransformer.RotateAt(System.Single,System.Drawing.PointF)">
            <summary>Rotates the graphics clockwise by the specified angle in degrees about the specified center point.</summary>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsTransformer.RotateAt(System.Single,System.Single,System.Single)">
            <summary>Rotates the graphics clockwise by the specified angle in degrees about the specified center point.</summary>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsTransformer.Dispose">
            <summary>Returns the Transform of the Graphics object back to its original value.</summary>
        </member>
        <member name="T:RT.Util.Drawing.GraphicsUtil">
            <summary>Contains static methods for various graphics-related operations.</summary>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.ColorBlend(System.Drawing.Color,System.Drawing.Color,System.Double)">
            <summary>
                Blends the specified colors together.</summary>
            <param name="color">
                Color to blend onto the background color.</param>
            <param name="backColor">
                Color to blend the other color onto.</param>
            <param name="amount">
                How much of <paramref name="color"/> to keep, “on top of” <paramref name="backColor"/>.</param>
            <returns>
                The blended colors.</returns>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.FromHsv(System.Double,System.Double,System.Double)">
            <summary>Converts hue, saturation and value into an RGB color object.</summary>
            <param name="hue">The hue (0–360).</param>
            <param name="saturation">The saturation (0–1).</param>
            <param name="value">The value/luminance/brightness (0–1).</param>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.DrawImageAlpha(System.Drawing.Graphics,System.Drawing.Image,System.Drawing.Rectangle,System.Single)">
            <summary>
                Draws the specified <paramref name="image"/> into the destination rectangle <paramref name="destRect"/> of the
                <paramref name="graphics"/> object using the specified <paramref name="opacity"/>.</summary>
            <param name="graphics">
                Graphics object to alpha-blend the image onto.</param>
            <param name="image">
                Image to draw.</param>
            <param name="destRect">
                Destination rectangle within the target Graphics canvas.</param>
            <param name="opacity">
                Opacity level to use when drawing the image. 0 means nothing changes. 1 means the image is drawn normally. 0.5
                means a 50% blend between source and destination.</param>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.DrawRoundedRectangle(System.Drawing.Graphics,System.Drawing.Pen,System.Drawing.RectangleF,System.Single,System.Boolean)">
            <summary>
                Draws a rounded rectangle.</summary>
            <param name="g">
                Graphics object to draw on.</param>
            <param name="pen">
                Pen to use when drawing the rounded rectangle.</param>
            <param name="rectangle">
                Position of the rectangle.</param>
            <param name="radius">
                Radius of the rounding of each corner of the rectangle.</param>
            <param name="tolerant">
                If true, the radius is reduced if it is too large to fit into the specified size. Otherwise, an exception is
                thrown.</param>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.DrawRoundedRectangle(System.Drawing.Graphics,System.Drawing.Pen,System.Single,System.Single,System.Single,System.Single,System.Single,System.Boolean)">
            <summary>
                Draws a rounded rectangle.</summary>
            <param name="g">
                Graphics object to draw on.</param>
            <param name="pen">
                Pen to use when drawing the rounded rectangle.</param>
            <param name="x">
                Left edge of the rounded rectangle.</param>
            <param name="y">
                Top edge of the rounded rectangle.</param>
            <param name="width">
                Width of the rounded rectangle.</param>
            <param name="height">
                Height of the rounded rectangle.</param>
            <param name="radius">
                Radius of the rounding of each corner of the rectangle.</param>
            <param name="tolerant">
                If true, the radius is reduced if it is too large to fit into the specified size. Otherwise, an exception is
                thrown.</param>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.RoundedRectangle(System.Drawing.RectangleF,System.Single,System.Boolean)">
            <summary>
                Returns a <see cref="T:System.Drawing.Drawing2D.GraphicsPath"/> object that represents a rounded rectangle.</summary>
            <param name="rectangle">
                Position of the rectangle.</param>
            <param name="radius">
                Radius of the rounding of each corner of the rectangle.</param>
            <param name="tolerant">
                If true, the radius is reduced if it is too large to fit into the specified size. Otherwise, an exception is
                thrown.</param>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.RoundedRectangle(System.Single,System.Single,System.Single,System.Single,System.Single,System.Boolean)">
            <summary>
                Returns a <see cref="T:System.Drawing.Drawing2D.GraphicsPath"/> object that represents a rounded rectangle.</summary>
            <param name="x">
                Left edge of the rounded rectangle.</param>
            <param name="y">
                Top edge of the rounded rectangle.</param>
            <param name="width">
                Width of the rounded rectangle.</param>
            <param name="height">
                Height of the rounded rectangle.</param>
            <param name="radius">
                Radius of the rounding of each corner of the rectangle.</param>
            <param name="tolerant">
                If true, the radius is reduced if it is too large to fit into the specified size. Otherwise, an exception is
                thrown.</param>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.GetMaximumFontSize(System.Drawing.Graphics,System.Drawing.SizeF,System.Drawing.FontFamily,System.String,System.Drawing.FontStyle,System.Boolean)">
            <summary>
                Determines the largest font size at which the specified text fits into the specified maximum size in the specified
                font.</summary>
            <param name="graphics">
                Specifies the <see cref="T:System.Drawing.Graphics"/> object to use when measuring the font size.</param>
            <param name="maximumSize">
                Maximum size (in pixels) the text should have.</param>
            <param name="fontFamily">
                The font to measure.</param>
            <param name="text">
                The text whose size mustn't exceed <paramref name="maximumSize"/>.</param>
            <param name="style">
                Font style to apply.</param>
            <param name="allowWordWrapping">
                True if the text is allowed to word-wrap within the specified bounds.</param>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.GetMaximumFontSize(System.Drawing.Graphics,System.Drawing.FontFamily,System.String,System.Drawing.FontStyle,System.Boolean,System.Nullable{System.Single},System.Nullable{System.Single})">
            <summary>
                Determines the largest font size at which the specified text fits into the specified maximum size in the specified
                font.</summary>
            <param name="graphics">
                Specifies the <see cref="T:System.Drawing.Graphics"/> object to use when measuring the font size.</param>
            <param name="fontFamily">
                The font to measure.</param>
            <param name="text">
                The text whose size mustn't exceed <paramref name="maxWidth"/> and <paramref name="maxHeight"/>.</param>
            <param name="style">
                Font style to apply.</param>
            <param name="allowWordWrapping">
                True if the text is allowed to word-wrap within the specified bounds.</param>
            <param name="maxWidth">
                Maximum width the text may have, or null if only the maximum height should apply. If <paramref name="allowWordWrapping"/> is true, this cannot be null.</param>
            <param name="maxHeight">
                Maximum width the text may have, or null if only the maximum width should apply. If <paramref name="maxWidth"/> is
                null, this cannot be null.</param>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.SetHighQuality(System.Drawing.Graphics)">
            <summary>
                Sets the interpolation mode, smoothing mode, text rendering hint and compositing quality for the specified
                Graphics object to high quality.</summary>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.FitIntoMaintainAspectRatio(System.Drawing.Size,System.Drawing.Rectangle)">
            <summary>
                Returns a rectangle that has the same aspect ratio as <paramref name="fitWhat"/> but fits into <paramref
                name="fitInto"/>.</summary>
            <param name="fitWhat">
                Specifies the aspect ratio of the desired rectangle.</param>
            <param name="fitInto">
                The rectangle into which to fit the result rectangle.</param>
            <returns>
                The result rectangle which fits into <paramref name="fitInto"/>.</returns>
        </member>
        <member name="M:RT.Util.Drawing.GraphicsUtil.DrawBitmap(System.Int32,System.Int32,System.Action{System.Drawing.Graphics},System.Boolean)">
            <summary>
                Creates a new bitmap by executing the specified drawing command(s) on a blank new 32-bit bitmap.</summary>
            <param name="width">
                Width of the bitmap.</param>
            <param name="height">
                Height of the bitmap.</param>
            <param name="draw">
                Command(s) to execute on the new bitmap.</param>
            <param name="keepLowQuality">
                If false (the default), <see cref="M:RT.Util.Drawing.GraphicsUtil.SetHighQuality(System.Drawing.Graphics)"/> is called on the graphics object automatically.</param>
        </member>
        <member name="T:RT.Util.EggsML">
            <summary>
                Implements a parser for the minimalist text mark-up language EggsML.</summary>
            <remarks>
                <para>
                    The “rules” of EggsML are, in summary:</para>
                <list type="bullet">
                    <item><description>
                        In EggsML, the following non-alphanumeric characters are “special” (have meaning): <c>~ @ # $ % ^ &amp; * _ =
                        + / \ | [ ] { } &lt; &gt; ` "</c></description></item>
                    <item><description>
                        All other characters are always literal.</description></item>
                    <item><description>
                        All the special characters can be escaped by doubling them.</description></item>
                    <item><description>
                        The characters <c>~ @ # $ % ^ &amp; * _ = + / \ | [ { &lt;</c> can be used to open a
                        “tag”.</description></item>
                    <item><description>
                        Tags that start with <c>[ { &lt;</c> are closed with <c>] } &gt;</c>. All other tags are closed with the same
                        character.</description></item>
                    <item><description>
                        Tags can be nested arbitrarily. In order to start a nested tag of the same character as its immediate parent,
                        triple the tag character. For example, <c>*one ***two* three*</c> contains an asterisk tag nested inside
                        another asterisk tag, while <c>*one *two* three*</c> would be parsed as two asterisk tags, one containing “one
                        ” and the other containing “ three”.</description></item>
                    <item><description>
                        The backtick character (<c>`</c>) can be used to “unjoin” multiple copies of the same character. For example,
                        <c>**</c> is a literal asterisk, but <c>*`*</c> is an empty tag containing no text.</description></item>
                    <item><description>
                        The double-quote character (<c>"</c>) can be used to escape long strings of special characters, e.g.
                        URLs.</description></item></list></remarks>
        </member>
        <member name="M:RT.Util.EggsML.Parse(System.String)">
            <summary>
                Parses the specified EggsML input.</summary>
            <param name="input">
                The EggsML text to parse.</param>
            <returns>
                The resulting parse-tree.</returns>
            <remarks>
                <list type="bullet">
                    <item><description>
                        Tags are parsed into instances of <see cref="T:RT.Util.EggsTag"/>.</description></item>
                    <item><description>
                        The top-level nodes are contained in an instance of <see cref="T:RT.Util.EggsTag"/> whose <see cref="P:RT.Util.EggsTag.Tag"/>
                        property is set to null.</description></item>
                    <item><description>
                        All the literal text is parsed into instances of <see cref="T:RT.Util.EggsText"/>. All continuous text is
                        consolidated, so there are no two consecutive EggsText instances in any list of
                        children.</description></item></list></remarks>
            <exception cref="T:RT.Util.EggsMLParseException">
                Invalid syntax was encountered. The exception object contains the string index at which the error was
                detected.</exception>
            <exception cref="T:System.ArgumentNullException">
                <paramref name="input"/> was null.</exception>
        </member>
        <member name="M:RT.Util.EggsML.Escape(System.String)">
            <summary>
                Escapes the input string such that it can be used in EggsML syntax. The result will either have no special
                characters in it or be entirely enclosed in double-quotes.</summary>
        </member>
        <member name="M:RT.Util.EggsML.WordWrap``1(RT.Util.EggsNode,``0,System.Int32,RT.Util.EggsML.EggMeasure{``0},RT.Util.EggsML.EggRender{``0},RT.Util.EggsML.EggNextLine{``0},RT.Util.EggsML.EggNextState{``0})">
            <summary>
                Word-wraps a given piece of EggsML, assuming that it is linearly flowing text. Newline (<c>\n</c>) characters can
                be used to split the text into multiple paragraphs. See remarks for the special meaning of <c>+...+</c> and
                <c>&lt;...&gt;</c>.</summary>
            <typeparam name="TState">
                The type of the text state that an EggsML can change, e.g. font or color.</typeparam>
            <param name="node">
                The root node of the EggsML tree to word-wrap.</param>
            <param name="initialState">
                The initial text state.</param>
            <param name="wrapWidth">
                The maximum width at which to word-wrap. This width can be measured in any unit, as long as <paramref
                name="measure"/> uses the same unit.</param>
            <param name="measure">
                A delegate that measures the width of any piece of text.</param>
            <param name="render">
                A delegate that is called whenever a piece of text is ready to be rendered.</param>
            <param name="advanceToNextLine">
                A delegate that is called to advance to the next line.</param>
            <param name="nextState">
                A delegate that determines how each EggsML tag character modifies the state (font, color etc.).</param>
            <returns>
                The maximum width of the text.</returns>
            <remarks>
                <list type="bullet">
                    <item><description>
                        The <c>+...+</c> tag marks text that may not be broken by wrapping (effectively turning all spaces into
                        non-breaking spaces).</description></item>
                    <item><description>
                        The <c>&lt;...&gt;</c> tag marks a parameter to an immediately following tag. For example, if the input
                        EggsML contains <c>&lt;X&gt;{Foo}</c>, the text “X” will be passed as the parameter to <paramref
                        name="nextState"/> when the <c>{</c> tag is processed.</description></item></list></remarks>
        </member>
        <member name="P:RT.Util.EggsML.SpecialCharacters">
            <summary>Returns an array containing all characters that have a special meaning in EggsML.</summary>
        </member>
        <member name="T:RT.Util.EggsML.EggRender`1">
            <summary>
                Provides a delegate for <see cref="M:RT.Util.EggsML.WordWrap``1(RT.Util.EggsNode,``0,System.Int32,RT.Util.EggsML.EggMeasure{``0},RT.Util.EggsML.EggRender{``0},RT.Util.EggsML.EggNextLine{``0},RT.Util.EggsML.EggNextState{``0})"/> which renders a piece of text.</summary>
            <typeparam name="TState">
                The type of the text state, e.g. font or color.</typeparam>
            <param name="state">
                The state (font, color, etc.) the string is in.</param>
            <param name="text">
                The string to render.</param>
            <param name="width">
                The measured width of the string.</param>
        </member>
        <member name="T:RT.Util.EggsML.EggMeasure`1">
            <summary>
                Provides a delegate for <see cref="M:RT.Util.EggsML.WordWrap``1(RT.Util.EggsNode,``0,System.Int32,RT.Util.EggsML.EggMeasure{``0},RT.Util.EggsML.EggRender{``0},RT.Util.EggsML.EggNextLine{``0},RT.Util.EggsML.EggNextState{``0})"/> which measures the width of a string.</summary>
            <typeparam name="TState">
                The type of the text state, e.g. font or color.</typeparam>
            <param name="state">
                The state (font, color etc.) of the text.</param>
            <param name="text">
                The text whose width to measure.</param>
            <returns>
                The width of the text in any arbitrary unit, as long as the “width” parameter in the call to <see cref="M:RT.Util.EggsML.WordWrap``1(RT.Util.EggsNode,``0,System.Int32,RT.Util.EggsML.EggMeasure{``0},RT.Util.EggsML.EggRender{``0},RT.Util.EggsML.EggNextLine{``0},RT.Util.EggsML.EggNextState{``0})"/> is in the same unit.</returns>
        </member>
        <member name="T:RT.Util.EggsML.EggNextLine`1">
            <summary>
                Provides a delegate for <see cref="M:RT.Util.EggsML.WordWrap``1(RT.Util.EggsNode,``0,System.Int32,RT.Util.EggsML.EggMeasure{``0},RT.Util.EggsML.EggRender{``0},RT.Util.EggsML.EggNextLine{``0},RT.Util.EggsML.EggNextState{``0})"/> which advances to the next line.</summary>
            <typeparam name="TState">
                The type of the text state, e.g. font or color.</typeparam>
            <param name="state">
                The state (font, color etc.) of the text.</param>
            <param name="newParagraph">
                ‘true’ if a new paragraph begins, ‘false’ if a word is being wrapped within a paragraph.</param>
            <param name="indent">
                If <paramref name="newParagraph"/> is false, the indentation of the current paragraph as measured only by its
                leading spaces; otherwise, zero.</param>
            <returns>
                The indentation for the next line. Use this to implement, for example, hanging indents.</returns>
        </member>
        <member name="T:RT.Util.EggsML.EggNextState`1">
            <summary>
                Provides a delegate for <see cref="M:RT.Util.EggsML.WordWrap``1(RT.Util.EggsNode,``0,System.Int32,RT.Util.EggsML.EggMeasure{``0},RT.Util.EggsML.EggRender{``0},RT.Util.EggsML.EggNextLine{``0},RT.Util.EggsML.EggNextState{``0})"/> which determines how the text state (font, color
                etc.) changes for a given EggsML tag character. This delegate is called for all tags except for <c>+...+</c> and
                <c>&lt;...&gt;</c>.</summary>
            <typeparam name="TState">
                The type of the text state, e.g. font or color.</typeparam>
            <param name="oldState">
                The previous state (for the parent tag).</param>
            <param name="eggTag">
                The EggsML tag character.</param>
            <param name="parameter">
                The contents of the immediately preceding <c>&lt;...&gt;</c> tag (if any), which can be used to parameterize other
                tags.</param>
            <returns>
                The next state (return the old state for all tags that should not have a meaning) and an integer indicating the
                amount by which opening this tag has advanced the text position.</returns>
        </member>
        <member name="T:RT.Util.EggsNode">
            <summary>Contains a node in the <see cref="T:RT.Util.EggsML"/> parse tree.</summary>
        </member>
        <member name="M:RT.Util.EggsNode.ToXml">
            <summary>Returns the EggsML parse tree as XML.</summary>
        </member>
        <member name="M:RT.Util.EggsNode.#ctor(System.Int32)">
            <summary>
                Constructor.</summary>
            <param name="index">
                The index within the original string where this node starts.</param>
        </member>
        <member name="M:RT.Util.EggsNode.stringify(System.Collections.Generic.List{RT.Util.EggsNode},System.Nullable{System.Char})">
            <summary>
                Turns a list of child nodes into EggsML mark-up.</summary>
            <param name="children">
                List of children to turn into mark-up.</param>
            <param name="tag">
                If non-null, assumes we are directly inside a tag with the specified character, causing necessary escaping to be
                performed.</param>
            <returns>
                EggsML mark-up representing the same tree structure as this node.</returns>
        </member>
        <member name="M:RT.Util.EggsNode.ToString(System.Boolean)">
            <summary>Gets the text of this node and/or sub-nodes concatenated into one string.</summary>
        </member>
        <member name="M:RT.Util.EggsNode.ToConsoleColoredStringWordWrap(System.Int32,System.Int32)">
            <summary>
                Generates a sequence of <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>s from an EggsML parse tree by word-wrapping the output
                at a specified character width.</summary>
            <param name="wrapWidth">
                The number of characters at which to word-wrap the output.</param>
            <param name="hangingIndent">
                The number of spaces to add to each line except the first of each paragraph, thus creating a hanging
                indentation.</param>
            <returns>
                The sequence of <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>s generated from the EggsML parse tree.</returns>
            <remarks>
                <para>
                    The following EggsML tags map to the following console colors:</para>
                <list type="bullet">
                    <item><description>
                        <c>~</c> = black, or dark gray if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>/</c> = dark blue, or blue if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>$</c> = dark green, or green if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>&amp;</c> = dark cyan, or cyan if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>_</c> = dark red, or red if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>%</c> = dark magenta, or magenta if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>^</c> = dark yellow, or yellow if inside a <c>*</c> tag</description></item>
                    <item><description>
                        <c>=</c> = dark gray (independent of <c>*</c> tag)</description></item></list>
                <para>
                    Text which is not inside any of the above color tags defaults to light gray, or white if inside a <c>*</c>
                    tag.</para>
                <para>
                    Additionally, the <c>+</c> tag can be used to suppress word-wrapping within a certain stretch of text. In
                    other words, the contents of a <c>+</c> tag are treated as if they were a single word. Use this in preference
                    to U+00A0 (no-break space) as it is more explicit and more future-compatible in case hyphenation is ever
                    implemented here.</para></remarks>
        </member>
        <member name="P:RT.Util.EggsNode.Index">
            <summary>The index in the original string where this node starts.</summary>
        </member>
        <member name="P:RT.Util.EggsNode.HasText">
            <summary>Determines whether this node contains any textual content.</summary>
        </member>
        <member name="P:RT.Util.EggsNode.Parent">
            <summary>Gets a reference to the parent node of this node. The root node is the only one for which this property is null.</summary>
        </member>
        <member name="T:RT.Util.EggsTag">
            <summary>Represents a node in the <see cref="T:RT.Util.EggsML"/> parse tree that corresponds to an EggsML tag or the top-level node.</summary>
        </member>
        <member name="M:RT.Util.EggsTag.Add(RT.Util.EggsNode)">
            <summary>
                Adds a new child node to this tag’s children.</summary>
            <param name="child">
                The child node to add.</param>
        </member>
        <member name="F:RT.Util.EggsTag._children">
            <summary>The underlying collection containing the children of this node.</summary>
        </member>
        <member name="M:RT.Util.EggsTag.#ctor(System.Nullable{System.Char},System.Int32)">
            <summary>
                Constructs a new EggsML parse-tree node that represents an EggsML tag.</summary>
            <param name="tag">
                The character used to open the tag (e.g. '[').</param>
            <param name="index">
                The index in the original string where this tag was opened.</param>
        </member>
        <member name="M:RT.Util.EggsTag.ToString">
            <summary>
                Reconstructs the original EggsML that is represented by this node.</summary>
            <remarks>
                This does not necessarily return the same EggsML that was originally parsed. For example, redundant uses of the
                <c>`</c> character are removed.</remarks>
        </member>
        <member name="M:RT.Util.EggsTag.ToXml">
            <summary>Returns an XML representation of this EggsML node.</summary>
        </member>
        <member name="P:RT.Util.EggsTag.Children">
            <summary>The children of this node.</summary>
        </member>
        <member name="P:RT.Util.EggsTag.HasText">
            <summary>Determines whether this node contains any textual content.</summary>
        </member>
        <member name="P:RT.Util.EggsTag.Tag">
            <summary>The character used to open the tag (e.g. “[”), or null if this is the top-level node.</summary>
        </member>
        <member name="T:RT.Util.EggsText">
            <summary>Represents a node in the <see cref="T:RT.Util.EggsML"/> parse tree that corresponds to a piece of text.</summary>
        </member>
        <member name="M:RT.Util.EggsText.#ctor(System.String,System.Int32)">
            <summary>
                Constructs a new EggsML text node.</summary>
            <param name="text">
                The text for this node to contain.</param>
            <param name="index">
                The index in the original string where this text starts.</param>
        </member>
        <member name="M:RT.Util.EggsText.ToString">
            <summary>
                Reconstructs the original EggsML that is represented by this node.</summary>
            <remarks>
                This does not necessarily return the same EggsML that was originally parsed. For example, redundant uses of the
                <c>`</c> character are removed.</remarks>
        </member>
        <member name="M:RT.Util.EggsText.ToXml">
            <summary>Returns an XML representation of this EggsML node.</summary>
        </member>
        <member name="P:RT.Util.EggsText.Text">
            <summary>The text contained in this node.</summary>
        </member>
        <member name="P:RT.Util.EggsText.HasText">
            <summary>Determines whether this node contains any textual content.</summary>
        </member>
        <member name="T:RT.Util.EggsMLParseException">
            <summary>Represents a parse error encountered by the <see cref="T:RT.Util.EggsML"/> parser.</summary>
        </member>
        <member name="M:RT.Util.EggsMLParseException.#ctor(System.String,System.Int32,System.Int32,System.Nullable{System.Int32},System.Exception)">
            <summary>
                Constructor.</summary>
            <param name="message">
                Message.</param>
            <param name="index">
                The character index into the original string where the error occurred.</param>
            <param name="length">
                The length of the text in the original string where the error occurred.</param>
            <param name="firstIndex">
                The character index of an earlier position in the original string where the error started (e.g. the start of a tag
                that is missing its end tag).</param>
            <param name="inner">
                An inner exception to pass to the base Exception class.</param>
        </member>
        <member name="P:RT.Util.EggsMLParseException.Index">
            <summary>The character index into the original string where the error occurred.</summary>
        </member>
        <member name="P:RT.Util.EggsMLParseException.Length">
            <summary>The length of the text in the original string where the error occurred.</summary>
        </member>
        <member name="P:RT.Util.EggsMLParseException.FirstIndex">
            <summary>
                The character index of an earlier position in the original string where the error started (e.g. the start of a tag
                that is missing its end tag).</summary>
        </member>
        <member name="T:RT.Util.ExactConvert">
             <summary>
             <para>
             Provides functionality similar to <see cref="T:System.Convert"/>, but ensures that all conversions are lossless and roundtrippable.
             Whenever a conversion cannot be performed exactly, an <see cref="T:RT.Util.ExactConvertException"/> is thrown.
             </para>
             </summary>
             <remarks>
             <code>
             SUPPORTED TYPES
            
             Supported types are classified as follows. The categories are used in defining
             the behaviour of the various conversion types and are vital to understanding what
             to expect of the corner cases.
            
               Integer types:
                   standard - byte, sbyte, short, ushort, int, uint, long, ulong, or any enum type
                   bool - as integer this is defined exactly as 0 or 1
                   char - as integer this is the binary value of the char, identical to the "ushort" type
                   datetime - as integer, this is the number of ticks of the datetime as UTC.
                              The range is DateTime.MinValue.Ticks ... MaxValue.Ticks.
            
               Fractional types:
                   single, double
                   decimal
            
               String type:
                   string
            
               Unsupported type:
                   any other type not listed above
                   null reference (*ALWAYS* behaves exactly the same as if there
                                   was actually an object of an unsupported type)
            
             Definition of terms:
                 "succeed" / "fail" - these terms do not specify the method by which the outcome of
                     a conversion is conveyed. This is a separate aspect discussed later.
            
             ExactConvert only allows a conversion to succeed if a roundtrip conversion would result in
             at most a very small error. The "very small error" only exists when a Fractional
             type is the destination - in this case, ExactConvert picks the nearest
             representable value.
            
             A general trait of ExactConvert is that the rules are defined for whole source/destination type
             pairs. A necessary exception to this principle is conversion from string, due to the arbitrary
             nature of string values.
            
             As a consequence of the above principle, ExactConvert does not allow
             Fractional types to be converted to Integer types.
            
             Something to beware of: some of the built-in conversions use national strings for
             values, e.g. for True/False/Infinity etc. To avoid any issues like programs crashing
             on Spanish computers but not on British ones, the following strings are hard-coded.
             All conversions _from_ strings are case-insensitive.
            
             * True
             * False
             * Inf
             * NaN
             </code>
             </remarks>
        </member>
        <member name="M:RT.Util.ExactConvert.#cctor">
            <summary>
            Initialises the internally-used lookup tables for determining what kind
            of type is being dealt with (e.g. is this an unsigned type?)
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.IsTrueIntegerType(System.Type)">
            <summary>
            Returns true if the specified type is one of the 8 built-in "true" integer types:
            the signed and unsigned 8, 16, 32 and 64-bit types.
            </summary>
            <param name="type">The type to be tested.</param>
        </member>
        <member name="M:RT.Util.ExactConvert.IsTrueIntegerType(System.TypeCode)">
            <summary>
            Returns true if the specified type is one of the 8 built-in "true" integer types:
            the signed and unsigned 8, 16, 32 and 64-bit types.
            </summary>
            <param name="typeCode">The code of the type to be tested - use <see cref="M:RT.Util.ExactConvert.GetTypeCode(System.Object)"/>
            to get the code of an object's type.</param>
        </member>
        <member name="M:RT.Util.ExactConvert.IsTrueIntegerNullableType(System.Type)">
            <summary>
            Returns true if the specified type is a nullable form of one of the 8 built-in "true" integer types:
            the signed and unsigned 8, 16, 32 and 64-bit types.
            </summary>
            <param name="type">The type to be tested.</param>
        </member>
        <member name="M:RT.Util.ExactConvert.IsIntegerCompatibleType(System.Type)">
            <summary>
            Returns true if the specified type is integer-compatible (in other words, a string of digits can be
            converted to it using <see cref="T:RT.Util.ExactConvert"/>). This includes all types that are <see cref="M:RT.Util.ExactConvert.IsTrueIntegerType(System.Type)"/>
            as well as DateTime, Char and Boolean.
            </summary>
            <param name="type">The type to be tested.</param>
        </member>
        <member name="M:RT.Util.ExactConvert.IsIntegerCompatibleType(System.TypeCode)">
            <summary>
            Returns true if the specified type is integer-compatible (in other words, a string of digits can be
            converted to it using <see cref="T:RT.Util.ExactConvert"/>). This includes all types that are <see cref="M:RT.Util.ExactConvert.IsTrueIntegerType(System.Type)"/>
            as well as DateTime, Char and Boolean.
            </summary>
            <param name="typeCode">The code of the type to be tested - use <see cref="M:RT.Util.ExactConvert.GetTypeCode(System.Object)"/>
            to get the code of an object's type.</param>
        </member>
        <member name="M:RT.Util.ExactConvert.UnboxIntegerToLong(System.Object)">
             <summary>
             C# does not allow a boxed integer type to be unboxed as anything other
             than the true type of the boxed integer. This utility function unboxes the
             integer as the correct type and then casts it to a long, returning the result.
            
             Throws an exception if the object is null or not one of the built-in integer
             types.
            
             Does not support unboxing of a ulong because the cast to long would be lossy
             and misleading. Will throw an exception when given a boxed ulong.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.UnboxIntegerToLong(System.Object,System.TypeCode)">
            <summary>
            A faster version of UnboxIntegerToLong(object) if the TypeCode is
            already provided. Behaviour is undefined if typeCode does not match
            the type of the object passed in.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.GetTypeCode(System.Object)">
             <summary>
             Crutches needed all around... TypeCode.Empty is described as the type code
             for "a null reference". Unfortunately the only way to retrieve a TypeCode
             is from a Type object, which can't represent the type of a null reference
             (well... actually one can't really talk about a _type_ of a _null_ reference
             in C# at all as far as I understand).
            
             Well anyway, wrapping up the rant, this function fills in the spot of a
             function that's clearly missing: Type.GetTypeCode(object), which returns
             TypeCode.Empty if asked to get the type of a null object.
            
             Something at the back of my mind tells me that there's one way of looking at
             this where the behaviour of the existing API would make sense... but really,
             I think this is how it really should have been since it is a lot more useful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.IsSupportedType(System.Type)">
            <summary>
            Returns true if the specified type is a supported type for converting to other
            types supported by <see cref="T:RT.Util.ExactConvert"/>.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.IsSupportedType(System.TypeCode)">
            <summary>
            Returns true if the specified type code is that of a supported type for converting to
            other types supported by <see cref="T:RT.Util.ExactConvert"/>.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.Byte@)">
             <summary>
             Converts the specified object to a byte.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.UInt16@)">
             <summary>
             Converts the specified object to a ushort.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.UInt32@)">
             <summary>
             Converts the specified object to a uint.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.UInt64@)">
             <summary>
             Converts the specified object to a ulong.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.SByte@)">
             <summary>
             Converts the specified object to an sbyte.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.Int16@)">
             <summary>
             Converts the specified object to a short.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.Int32@)">
             <summary>
             Converts the specified object to an int.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.Int64@)">
             <summary>
             Converts the specified object to a long.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.Boolean@)">
             <summary>
             Converts the specified object to a bool.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
            
             If the value is one of the integer types, the exact conversion only succeeds
             if the value is in range, i.e. 0 or 1. If converting from a string, the string
             must be exactly (case-insensitive) equal to "True" or "False", or the conversion
             will fail.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.Char@)">
             <summary>
             Converts the specified object to a char.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.DateTime@)">
             <summary>
             Converts the specified object to a DateTime.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
            
             When converting from string, supports a subset of the ISO 8601 formats - for
             more details see <see cref="M:RT.Util.ExtensionMethods.DateTimeExtensions.TryParseIso(System.String,System.DateTime@)"/>.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.Single@)">
             <summary>
             Converts the specified object to a float.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.Double@)">
             <summary>
             Converts the specified object to a double.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.Decimal@)">
             <summary>
             Converts the specified object to a decimal.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Object,System.String@)">
             <summary>
             Converts the specified object to a string.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to the type's default value
             if the conversion is unsuccessful, which in this case means null (!!!).
            
             Note that the result will only ever be false if the value is one of the
             unsupported types - all supported types can be converted to a string.
             (So can the unsupported ones but it's a different matter. Unsupported types
             are not supported by this method for consistency with the other overloads.)
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.Try(System.Type,System.Object,System.Object@)">
             <summary>
             Converts the specified object to the type <paramref name="toType"/>.
            
             Returns true if successful, or false if the object cannot be converted exactly.
             <paramref name="result"/> is set to null
             if the conversion is unsuccessful.
             </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.Boolean@)">
            <summary>
            Converts the specified object to a bool.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.Byte@)">
            <summary>
            Converts the specified object to a byte.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.SByte@)">
            <summary>
            Converts the specified object to an sbyte.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.Int16@)">
            <summary>
            Converts the specified object to a short.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.UInt16@)">
            <summary>
            Converts the specified object to a ushort.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.Int32@)">
            <summary>
            Converts the specified object to an int.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.UInt32@)">
            <summary>
            Converts the specified object to a uint.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.Int64@)">
            <summary>
            Converts the specified object to a long.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.UInt64@)">
            <summary>
            Converts the specified object to a ulong.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.Single@)">
            <summary>
            Converts the specified object to a float.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.Double@)">
            <summary>
            Converts the specified object to a double.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.Decimal@)">
            <summary>
            Converts the specified object to a decimal.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.DateTime@)">
            <summary>
            Converts the specified object to a DateTime.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.Char@)">
            <summary>
            Converts the specified object to a char.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Object,System.String@)">
            <summary>
            Converts the specified object to a string.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToBool(System.Object)">
            <summary>
            Converts the specified object to a bool.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToByte(System.Object)">
            <summary>
            Converts the specified object to a byte.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToSByte(System.Object)">
            <summary>
            Converts the specified object to an sbyte.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToShort(System.Object)">
            <summary>
            Converts the specified object to a short.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToUShort(System.Object)">
            <summary>
            Converts the specified object to a ushort.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToInt(System.Object)">
            <summary>
            Converts the specified object to an int.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToUInt(System.Object)">
            <summary>
            Converts the specified object to a uint.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToLong(System.Object)">
            <summary>
            Converts the specified object to a long.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToULong(System.Object)">
            <summary>
            Converts the specified object to a ulong.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToFloat(System.Object)">
            <summary>
            Converts the specified object to a float.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToDouble(System.Object)">
            <summary>
            Converts the specified object to a double.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToDecimal(System.Object)">
            <summary>
            Converts the specified object to a decimal.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToDateTime(System.Object)">
            <summary>
            Converts the specified object to a DateTime.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToChar(System.Object)">
            <summary>
            Converts the specified object to a char.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToString(System.Object)">
            <summary>
            Converts the specified object to a string.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To(System.Type,System.Object)">
            <summary>
            Converts the value to type <paramref name="toType"/>. Throws an
            <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.To``1(System.Object)">
            <summary>
            Converts the value to type <typeparamref name="T"/>. Throws an
            <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="T:RT.Util.ExactConvert.ToNullable">
            <summary>
            Contains static methods to perform an exact conversion to a nullable type.
            These methods return null only if the input is null. A failed conversion
            results in an <see cref="T:RT.Util.ExactConvertException"/>.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.Bool(System.Object)">
            <summary>
            Converts the specified object to a nullable bool.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.Byte(System.Object)">
            <summary>
            Converts the specified object to a nullable byte.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.SByte(System.Object)">
            <summary>
            Converts the specified object to an nullable sbyte.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.Short(System.Object)">
            <summary>
            Converts the specified object to a nullable short.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.UShort(System.Object)">
            <summary>
            Converts the specified object to a nullable ushort.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.Int(System.Object)">
            <summary>
            Converts the specified object to an nullable int.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.UInt(System.Object)">
            <summary>
            Converts the specified object to a nullable uint.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.Long(System.Object)">
            <summary>
            Converts the specified object to a nullable long.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.ULong(System.Object)">
            <summary>
            Converts the specified object to a nullable ulong.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.Float(System.Object)">
            <summary>
            Converts the specified object to a nullable float.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.Double(System.Object)">
            <summary>
            Converts the specified object to a nullable double.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.Decimal(System.Object)">
            <summary>
            Converts the specified object to a nullable decimal.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.DateTime(System.Object)">
            <summary>
            Converts the specified object to a nullable DateTime.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.Char(System.Object)">
            <summary>
            Converts the specified object to a nullable char.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvert.ToNullable.String(System.Object)">
            <summary>
            Converts the specified object to a nullable string.
            Returns null if <paramref name="value"/> is null.
            Throws an <see cref="T:RT.Util.ExactConvertException"/> if the object cannot be converted exactly.
            </summary>
        </member>
        <member name="T:RT.Util.ExactConvertException">
            <summary>
            Represents an exception thrown in the case of conversion failure when using <see cref="T:RT.Util.ExactConvert"/>.
            </summary>
        </member>
        <member name="M:RT.Util.ExactConvertException.#ctor(System.Object,System.Type)">
            <summary>
            Initialises an exception to represent conversion failure when using <see cref="T:RT.Util.ExactConvert"/>.
            </summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.CollectionExtensions">
            <summary>
                Provides extension methods on various collection types or interfaces in the System.Collections.Generic namespace
                such as <see cref="T:System.Collections.Generic.Dictionary`2"/> and on arrays.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.AddSafe``2(System.Collections.Generic.IDictionary{``0,System.Collections.Generic.List{``1}},``0,``1)">
            <summary>
                Adds an element to a List&lt;V&gt; stored in the current IDictionary&lt;K, List&lt;V&gt;&gt;. If the specified
                key does not exist in the current IDictionary, a new List is created.</summary>
            <typeparam name="K">
                Type of the key of the IDictionary.</typeparam>
            <typeparam name="V">
                Type of the values in the Lists.</typeparam>
            <param name="dic">
                IDictionary to operate on.</param>
            <param name="key">
                Key at which the list is located in the IDictionary.</param>
            <param name="value">
                Value to add to the List located at the specified Key.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.AddSafe``2(System.Collections.Generic.IDictionary{``0,System.Collections.Generic.HashSet{``1}},``0,``1)">
            <summary>
                Adds an element to a HashSet&lt;V&gt; stored in the current IDictionary&lt;K, HashSet&lt;V&gt;&gt;. If the
                specified key does not exist in the current IDictionary, a new HashSet is created.</summary>
            <typeparam name="K">
                Type of the key of the IDictionary.</typeparam>
            <typeparam name="V">
                Type of the values in the HashSets.</typeparam>
            <param name="dic">
                IDictionary to operate on.</param>
            <param name="key">
                Key at which the HashSet is located in the IDictionary.</param>
            <param name="value">
                Value to add to the HashSet located at the specified Key.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.AddSafe``3(System.Collections.Generic.IDictionary{``0,System.Collections.Generic.Dictionary{``1,``2}},``0,``1,``2,System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
                Adds an element to a two-level Dictionary&lt;,&gt;. If the specified key does not exist in the outer
                Dictionary, a new Dictionary is created.</summary>
            <typeparam name="K1">
                Type of the key of the outer Dictionary.</typeparam>
            <typeparam name="K2">
                Type of the key of the inner Dictionary.</typeparam>
            <typeparam name="V">
                Type of the values in the inner Dictionary.</typeparam>
            <param name="dic">
                Dictionary to operate on.</param>
            <param name="key1">
                Key at which the inner Dictionary is located in the outer Dictionary.</param>
            <param name="key2">
                Key at which the value is located in the inner Dictionary.</param>
            <param name="value">
                Value to add to the inner Dictionary.</param>
            <param name="comparer">
                Optional equality comparer to pass into the inner dictionary if a new one is created.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.AddSafe``3(System.Collections.Generic.IDictionary{``0,System.Collections.Generic.Dictionary{``1,System.Collections.Generic.List{``2}}},``0,``1,``2)">
            <summary>
                Adds an element to a List&lt;V&gt; stored in a two-level Dictionary&lt;,&gt;. If the specified key does not
                exist in the current Dictionary, a new List is created.</summary>
            <typeparam name="K1">
                Type of the key of the first-level Dictionary.</typeparam>
            <typeparam name="K2">
                Type of the key of the second-level Dictionary.</typeparam>
            <typeparam name="V">
                Type of the values in the Lists.</typeparam>
            <param name="dic">
                Dictionary to operate on.</param>
            <param name="key1">
                Key at which the second-level Dictionary is located in the first-level Dictionary.</param>
            <param name="key2">
                Key at which the list is located in the second-level Dictionary.</param>
            <param name="value">
                Value to add to the List located at the specified Keys.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.IncSafe``1(System.Collections.Generic.IDictionary{``0,System.Int32},``0,System.Int32)">
            <summary>
                Increments an integer in an <see cref="T:System.Collections.Generic.IDictionary`2"/> by the specified amount. If the specified
                key does not exist in the current dictionary, the value <paramref name="amount"/> is inserted.</summary>
            <typeparam name="K">
                Type of the key of the dictionary.</typeparam>
            <param name="dic">
                Dictionary to operate on.</param>
            <param name="key">
                Key at which the list is located in the dictionary.</param>
            <param name="amount">
                The amount by which to increment the integer.</param>
            <returns>
                The new value at the specified key.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.RemoveSafe``2(System.Collections.Generic.IDictionary{``0,System.Collections.Generic.List{``1}},``0,``1)">
            <summary>
                Removes the first occurrence of an element from a List&lt;V&gt; stored in the current IDictionary&lt;K,
                List&lt;V&gt;&gt;. If this leaves the list stored at the specified key empty, the key is removed from the
                IDictionary. If the key is not in the dictionary to begin with, nothing happens.</summary>
            <typeparam name="K">
                Type of the key of the IDictionary.</typeparam>
            <typeparam name="V">
                Type of the values in the Lists.</typeparam>
            <param name="dic">
                IDictionary to operate on.</param>
            <param name="key">
                Key at which the list is located in the IDictionary.</param>
            <param name="value">
                Value to add to the List located at the specified Key.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.Contains``2(System.Collections.Generic.IDictionary{``0,System.Collections.Generic.HashSet{``1}},``0,``1)">
            <summary>Determines whether the current HashSet-in-a-Dictionary contains the specified key and value.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.ContainsKeys``3(System.Collections.Generic.IDictionary{``0,System.Collections.Generic.Dictionary{``1,``2}},``0,``1)">
            <summary>
                Determines whether the current two-level dictionary contains the specified combination of keys.</summary>
            <typeparam name="TKey1">
                Type of the first-level key.</typeparam>
            <typeparam name="TKey2">
                Type of the second-level key.</typeparam>
            <typeparam name="TValue">
                Type of values in the dictionary.</typeparam>
            <param name="source">
                Source dictionary to examine.</param>
            <param name="key1">
                The first key to check for.</param>
            <param name="key2">
                The second key to check for.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.TryGetValue``3(System.Collections.Generic.IDictionary{``0,System.Collections.Generic.Dictionary{``1,``2}},``0,``1,``2@)">
            <summary>
                Gets the value associated with the specified combination of keys.</summary>
            <typeparam name="TKey1">
                Type of the first-level key.</typeparam>
            <typeparam name="TKey2">
                Type of the second-level key.</typeparam>
            <typeparam name="TValue">
                Type of values in the dictionary.</typeparam>
            <param name="source">
                Source dictionary to examine.</param>
            <param name="key1">
                The first key to check for.</param>
            <param name="key2">
                The second key to check for.</param>
            <param name="value">
                When this method returns, the value associated with the specified keys, if the keys are found; otherwise, the
                default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized.</param>
            <returns>
                <c>true</c> if the two-level dictionary contains an element with the specified combination of keys; otherwise,
                <c>false</c>.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.Shuffle``1(System.Collections.Generic.IList{``0},System.Random)">
            <summary>
                Brings the elements of the given list into a random order.</summary>
            <typeparam name="T">
                Type of elements in the list.</typeparam>
            <param name="list">
                List to shuffle.</param>
            <param name="rnd">
                Random number generator, or null to use <see cref="T:RT.Util.Rnd"/>.</param>
            <returns>
                The list operated on.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.DictionaryEqual``2(System.Collections.Generic.IDictionary{``0,``1},System.Collections.Generic.IDictionary{``0,``1})">
            <summary>
                Compares two dictionaries for equality, member-wise. Two dictionaries are equal if they contain all the same
                key-value pairs.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.BinarySearch``2(System.Collections.Generic.SortedList{``0,``1},``0,System.Int32@,System.Int32@)">
            <summary>
                Performs a binary search for the specified key on a <see cref="T:System.Collections.Generic.SortedList`2"/>. When no match
                exists, returns the nearest indices for interpolation/extrapolation purposes.</summary>
            <remarks>
                If an exact match exists, index1 == index2 == the index of the match. If an exact match is not found, index1
                &lt; index2. If the key is less than every key in the list, index1 is int.MinValue and index2 is 0. If it's
                greater than every key, index1 = last item index and index2 = int.MaxValue. Otherwise index1 and index2 are
                the indices of the items that would surround the key were it present in the list.</remarks>
            <param name="list">
                List to operate on.</param>
            <param name="key">
                The key to look for.</param>
            <param name="index1">
                Receives the value of the first index (see remarks).</param>
            <param name="index2">
                Receives the value of the second index (see remarks).</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.Get``2(System.Collections.Generic.IDictionary{``0,``1},``0,``1)">
            <summary>
                Gets a value from a dictionary by key. If the key does not exist in the dictionary, the default value is
                returned instead.</summary>
            <param name="dict">
                Dictionary to operate on.</param>
            <param name="key">
                Key to look up.</param>
            <param name="defaultVal">
                Value to return if key is not contained in the dictionary.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.Get``3(System.Collections.Generic.IDictionary{``0,System.Collections.Generic.Dictionary{``1,``2}},``0,``1,``2)">
            <summary>
                Gets a value from a two-level dictionary by key. If the keys don’t exist in the dictionary, the default value
                is returned instead.</summary>
            <param name="dict">
                Dictionary to operate on.</param>
            <param name="key1">
                Key to look up in the first level.</param>
            <param name="key2">
                Key to look up in the second level.</param>
            <param name="defaultVal">
                Value to return if key1 or key2 is not contained in the relevant dictionary.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.ToDictionary``2(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{``0,``1}},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
                Converts an <c>IEnumerable&lt;KeyValuePair&lt;TKey, TValue&gt;&gt;</c> into a <c>Dictionary&lt;TKey,
                TValue&gt;</c>.</summary>
            <param name="source">
                Source collection to convert to a dictionary.</param>
            <param name="comparer">
                An optional equality comparer to compare keys.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.Subarray``1(``0[],System.Int32)">
            <summary>
                Similar to <see cref="M:System.String.Substring(System.Int32)"/>, only for arrays. Returns a new array containing all items from
                the specified <paramref name="startIndex"/> onwards.</summary>
            <remarks>
                Returns a new copy of the array even if <paramref name="startIndex"/> is 0.</remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.Subarray``1(``0[],System.Int32,System.Int32)">
            <summary>
                Similar to <see cref="M:System.String.Substring(System.Int32,System.Int32)"/>, only for arrays. Returns a new array containing <paramref name="length"/> items from the specified <paramref name="startIndex"/> onwards.</summary>
            <remarks>
                Returns a new copy of the array even if <paramref name="startIndex"/> is 0 and <paramref name="length"/> is
                the length of the input array.</remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.SubarrayEquals``1(``0[],System.Int32,``0[],System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
                Determines whether a subarray within the current array is equal to the specified other array.</summary>
            <param name="sourceArray">
                First array to examine.</param>
            <param name="sourceStartIndex">
                Start index of the subarray within the first array to compare.</param>
            <param name="otherArray">
                Array to compare the subarray against.</param>
            <param name="comparer">
                Optional equality comparer.</param>
            <returns>
                True if the current array contains the specified subarray at the specified index; false otherwise.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.SubarrayEquals``1(``0[],System.Int32,``0[],System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
                Determines whether the two arrays contain the same content in the specified location.</summary>
            <param name="sourceArray">
                First array to examine.</param>
            <param name="sourceStartIndex">
                Start index of the subarray within the first array to compare.</param>
            <param name="otherArray">
                Second array to examine.</param>
            <param name="otherStartIndex">
                Start index of the subarray within the second array to compare.</param>
            <param name="length">
                Length of the subarrays to compare.</param>
            <param name="comparer">
                Optional equality comparer.</param>
            <returns>
                True if the two arrays contain the same subarrays at the specified indexes; false otherwise.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.IndexOfSubarray``1(``0[],``0[],System.Int32,System.Nullable{System.Int32},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
                Searches the current array for a specified subarray and returns the index of the first occurrence, or -1 if
                not found.</summary>
            <param name="sourceArray">
                Array in which to search for the subarray.</param>
            <param name="findWhat">
                Subarray to search for.</param>
            <param name="startIndex">
                Index in <paramref name="sourceArray"/> at which to start searching.</param>
            <param name="sourceLength">
                Maximum length of the source array to search starting from <paramref name="startIndex"/>. The greatest index
                that can be returned is this minus the length of <paramref name="findWhat"/> plus <paramref
                name="startIndex"/>.</param>
            <param name="comparer">
                Optional equality comparer.</param>
            <returns>
                The index of the first match, or -1 if no match is found.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.AsReadOnly``1(System.Collections.Generic.ICollection{``0})">
            <summary>
                Creates and returns a read-only wrapper around this collection. Note: a new wrapper is created on every call.
                Consider caching it.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.AsReadOnly``1(System.Collections.Generic.ICollection{``0},RT.Util.Collections.ReadOnlyCollection{``0}@)">
            <summary>
                Gets a read-only wrapper around this collection. If <paramref name="cache"/> is already a wrapper for this
                collection returns that, otherwise creates a new wrapper, stores it in <paramref name="cache"/>, and returns
                that.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.AsReadOnly``2(System.Collections.Generic.IDictionary{``0,``1})">
            <summary>
                Creates and returns a read-only wrapper around this dictionary. Note: a new wrapper is created on every call.
                Consider caching it.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.AsReadOnly``2(System.Collections.Generic.IDictionary{``0,``1},RT.Util.Collections.ReadOnlyDictionary{``0,``1}@)">
            <summary>
                Gets a read-only wrapper around this dictionary. If <paramref name="cache"/> is already a wrapper for this
                dictionary returns that, otherwise creates a new wrapper, stores it in <paramref name="cache"/>, and returns
                that.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.CopyMerge``2(System.Collections.Generic.IDictionary{``0,``1},System.Collections.Generic.IDictionary{``0,``1})">
            <summary>
                Creates a new dictionary containing the union of the key/value pairs contained in the specified dictionaries.
                Keys in <paramref name="second"/> overwrite keys in <paramref name="first"/>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.ToHex(System.Collections.Generic.IEnumerable{System.Byte},System.Int32)">
            <summary>Generates a representation of the specified byte sequence as hexadecimal numbers (“hexdump”).</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.ToHex(System.Byte[])">
            <summary>Generates a representation of the specified byte array as hexadecimal numbers (“hexdump”).</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.ToHex(System.UInt32[])">
            <summary>Generates a representation of the specified uint array as hexadecimal numbers (“hexdump”).</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.RemoveAll``2(System.Collections.Generic.IDictionary{``0,``1},System.Func{System.Collections.Generic.KeyValuePair{``0,``1},System.Boolean})">
            <summary>
                Removes all entries from a dictionary that satisfy a specified predicate.</summary>
            <typeparam name="TKey">
                Type of the keys in the dictionary.</typeparam>
            <typeparam name="TVal">
                Type of the values in the dictionary.</typeparam>
            <param name="dict">
                Dictionary to operate on.</param>
            <param name="predicate">
                Specifies a predicate that determines which entries should be removed from the dictionary.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.RemoveAllByKey``2(System.Collections.Generic.IDictionary{``0,``1},System.Func{``0,System.Boolean})">
            <summary>
                Removes all entries from a dictionary whose keys satisfy a specified predicate.</summary>
            <typeparam name="TKey">
                Type of the keys in the dictionary.</typeparam>
            <typeparam name="TVal">
                Type of the values in the dictionary.</typeparam>
            <param name="dict">
                Dictionary to operate on.</param>
            <param name="predicate">
                Specifies a predicate that determines which entries should be removed from the dictionary.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.RemoveAllByValue``2(System.Collections.Generic.IDictionary{``0,``1},System.Func{``1,System.Boolean})">
            <summary>
                Removes all entries from a dictionary whose values satisfy a specified predicate.</summary>
            <typeparam name="TKey">
                Type of the keys in the dictionary.</typeparam>
            <typeparam name="TVal">
                Type of the values in the dictionary.</typeparam>
            <param name="dict">
                Dictionary to operate on.</param>
            <param name="predicate">
                Specifies a predicate that determines which entries should be removed from the dictionary.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.EnqueueRange``1(System.Collections.Generic.Queue{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
                Enqueues several values into a <see cref="T:System.Collections.Generic.Queue`1"/>.</summary>
            <typeparam name="T">
                Type of the elements in the queue.</typeparam>
            <param name="queue">
                Queue to insert items into.</param>
            <param name="values">
                Values to enqueue.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.AddRange``1(System.Collections.Generic.HashSet{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
                Adds several values into a <see cref="T:System.Collections.Generic.HashSet`1"/>.</summary>
            <typeparam name="T">
                Type of the elements in the hash set.</typeparam>
            <param name="set">
                The set to add the items to.</param>
            <param name="values">
                Values to add.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.RemoveRange``1(System.Collections.Generic.List{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
                Removes several values from a <see cref="T:System.Collections.Generic.List`1"/>.</summary>
            <typeparam name="T">
                Type of the elements in the list.</typeparam>
            <param name="list">
                The list to remove the items from.</param>
            <param name="values">
                Values to remove.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.Select``2(System.Collections.Generic.IList{``0},System.Func{``0,``1})">
            <summary>
                Projects each element of a sequence into a new form.</summary>
            <typeparam name="TInput">
                The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TResult">
                The type of the value returned by <paramref name="selector"/>.</typeparam>
            <param name="source">
                A list of values to invoke the transform function on.</param>
            <param name="selector">
                A transform function to apply to each element.</param>
            <returns>
                A collection whose elements are the result of invoking the transform function on each element of <paramref
                name="source"/>.</returns>
            <remarks>
                This method replaces <c>IEnumerable{T}.Select{TSource,
                TResult}(IEnumerable{TSource},Func{TSource,int,TResult})</c> for the case where the input is an
                <c>IList&lt;T&gt;</c> with an implementation that makes a subsequent <c>ToArray()</c> or <c>ToList()</c> run
                15% faster.</remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.ReverseInplace``1(``0[])">
            <summary>Reverses an array in-place and returns the same array.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.CollectionExtensions.Pop``1(System.Collections.Generic.Stack{``0},System.Int32)">
            <summary>
                Pops the specified number of elements from the stack. There must be at least that many items on the stack,
                otherwise an exception is thrown.</summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.ListSelectIterator`2">
            <summary>
                Provides the implementation for <see cref="M:RT.Util.ExtensionMethods.CollectionExtensions.Select``2(System.Collections.Generic.IList{``0},System.Func{``0,``1})"/>.</summary>
            <typeparam name="TInput">
                The type of the elements of the original collection.</typeparam>
            <typeparam name="TResult">
                The type of the value returned by the selector function.</typeparam>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ListSelectIterator`2.#ctor(System.Collections.Generic.IList{`0},System.Func{`0,`1})">
            <summary>
                Constructor.</summary>
            <param name="source">
                A list of values to invoke the transform function on.</param>
            <param name="selector">
                A transform function to apply to each element.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ListSelectIterator`2.GetEnumerator">
            <summary>Returns an enumerator to iterate over the collection.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ListSelectIterator`2.ToArray">
            <summary>
                Creates an array from a projected list.</summary>
            <remarks>
                This implementation fulfills the same function as <c>Enumerable.ToArray()</c>, but is 15% faster.</remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ListSelectIterator`2.ToList">
            <summary>
                Creates a new list from a projected list.</summary>
            <remarks>
                This implementation fulfills the same function as <c>Enumerable.ToList()</c>, but is 15% faster.</remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ListSelectIterator`2.Select``1(System.Func{`1,``0})">
            <summary>
                Projects each element of a sequence into a new form.</summary>
            <typeparam name="TNewResult">
                The type of the value returned by <paramref name="selector"/>.</typeparam>
            <param name="selector">
                A transform function to apply to each element.</param>
            <returns>
                A collection whose elements are the result of invoking the transform function on each element of the current
                projected list.</returns>
            <remarks>
                This method replaces <c>IEnumerable{T}.Select{TSource,
                TResult}(IEnumerable{TSource},Func{TSource,int,TResult})</c> for the case where the input is a
                <c>ListSelectIterator&lt;TInput, TResult&gt;</c> with an implementation that makes a subsequent
                <c>ToArray()</c> or <c>ToList()</c> run 15% faster.</remarks>
        </member>
        <member name="T:RT.Util.ExtensionMethods.IsoDateFormat">
            <summary>Defines one of several common date/time formats which are either ISO-8601 compatible or very slight deviations from it.</summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.IsoDateFormat.HumanReadable">
            <summary>A delimited, readable format. Known as "extended" in ISO-8601. Example: <c>2007-12-31 21:15</c>.</summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.IsoDateFormat.Compact">
            <summary>A non-delimited compact format. Known as "basic" in ISO-8601. Example: <c>20071231T2115</c>.</summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.IsoDateFormat.CompactReadable">
            <summary>A non-delimited compact format with '-' instead of 'T'. Not ISO-8601, but supported by <see cref="M:RT.Util.ExtensionMethods.DateTimeExtensions.TryParseIso(System.String,System.DateTime@)"/>. Example: <c>20071231-2115</c>.</summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.IsoDateFormat.FilenameReadable">
            <summary>A delimited, readable format without spaces usable in filenames. Not ISO-8601, and not supported by <see cref="M:RT.Util.ExtensionMethods.DateTimeExtensions.TryParseIso(System.String,System.DateTime@)"/>. Example: <c>2007.12.31-21.15</c>.</summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.IsoDateFormat.Iso8601">
            <summary>The standard ISO-8601 format. Example: <c>2007-12-31T21:15</c>.</summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.IsoDatePrecision">
            <summary>Defines a precision for a date/time stamp.</summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.IsoDatePrecision.Days">
            <summary>Day precision: <c>2011-12-31</c></summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.IsoDatePrecision.Minutes">
            <summary>Minute precision: <c>2011-12-31 18:03</c></summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.IsoDatePrecision.Seconds">
            <summary>Second precision: <c>2011-12-31 18:03:15</c></summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.IsoDatePrecision.Milliseconds">
            <summary>Millisecond precision: <c>2011-12-31 18:03:15.123</c></summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.IsoDatePrecision.Full">
            <summary>The full .NET DateTime precision, which is seconds to 7 d.p. (100-nanosecond intervals): <c>2011-12-31 18:03:15.1234567</c></summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.DateTimeExtensions">
            <summary>
            Provides extension methods on the <see cref="T:System.DateTime"/> type.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.Nanosecond(System.DateTime)">
            <summary>
            Inexplicably, the DateTime type does not offer any way of retrieving the full precision
            of the underlying data other than via Ticks or the ToString method. This extension
            method fills in the void.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.ToIsoStringCustom(System.DateTime,RT.Util.ExtensionMethods.IsoDatePrecision,System.Nullable{System.Char},System.Nullable{System.Char},System.Nullable{System.Char},System.Boolean)">
            <summary>
            Returns a string representation of the date/time in an ISO-8601-like format. The date/time components are always ordered from
            largest (year) to smallest (nanoseconds), and they are always specified as a fixed-width numeric value. The separators between
            the parts can be customized.
            </summary>
            <param name="datetime">Date/time to convert.</param>
            <param name="precision">Which date/time components are to be included. The values are truncated, not rounded.</param>
            <param name="charInDate">The character to insert between years, months and days, or null for none.</param>
            <param name="charInTime">The character to insert between hours, minutes and seconds (including timezone offset), or null for none.</param>
            <param name="charBetween">The character to insert between the date and the time part, or null for none (which is never valid in ISO-8601).</param>
            <param name="includeTimezone">Specifies whether a suffix indicating date/time kind (local/utc/unspecified) and, for local times, a UTC offset, is appended.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.ToIsoString(System.DateTime,RT.Util.ExtensionMethods.IsoDatePrecision,RT.Util.ExtensionMethods.IsoDateFormat,System.Boolean)">
            <summary>Returns a string representation of the date/time in an ISO-8601 compatible (or very close) format.</summary>
            <param name="datetime">Date/time to convert.</param>
            <param name="precision">Which date/time components are to be included. The values are truncated, not rounded.</param>
            <param name="format">One of the several pre-defined formats to use.</param>
            <param name="includeTimezone">Specifies whether a suffix indicating date/time kind (local/utc/unspecified) and, for local times, a UTC offset, is appended.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.ToIsoStringOptimal(System.DateTime,RT.Util.ExtensionMethods.IsoDateFormat,RT.Util.ExtensionMethods.IsoDatePrecision,RT.Util.ExtensionMethods.IsoDatePrecision,System.Boolean)">
            <summary>
            Returns a string representation of the date/time in an ISO-8601-like format. The function will
            omit higher-precision parts whose values are zeroes, as permitted by the standard.
            </summary>
            <param name="datetime">Date/time to convert.</param>
            <param name="format">One of the several pre-defined formats to use.</param>
            <param name="minPrecision">Minimum precision of the resulting string. The actual precision is determined by what's available in the date/time, bounded by this parameter.</param>
            <param name="maxPrecision">Maximum precision of the resulting string. Any higher-precision parts are truncated.</param>
            <param name="includeTimezone">Specifies whether a suffix indicating date/time kind (local/utc/unspecified) and, for local times, a UTC offset, is appended.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.ToIsoStringRoundtrip(System.DateTime,RT.Util.ExtensionMethods.IsoDateFormat,RT.Util.ExtensionMethods.IsoDatePrecision)">
            <summary>
            Returns a string representation of the date/time in an ISO-8601-like format. Use this if the result must be round-trippable
            without losing any information. The function will omit higher-precision parts whose values are zeroes, as permitted by the standard.
            </summary>
            <param name="datetime">Date/time to convert.</param>
            <param name="format">One of the several pre-defined formats to use.</param>
            <param name="minPrecision">Minimum precision of the resulting string. The actual precision is determined by what's available in the date/time, bounded by this parameter.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.TryParseIso(System.String,System.DateTime@)">
            <summary>
            <para>Attempts to parse the specified string as an ISO-formatted DateTime. The formats supported are guided by ISO-8601, but do not match
            it exactly. Strings with no timezone information are parsed into DateTimeKind.Unspecified.</para>
            <para>ISO-8601 features not supported: day numbers; week numbers; time offsets; comma for decimal separation.</para>
            <para>Features supported not in ISO-8601: '-' separator for the basic format; date shortening; timezone marker for date-only strings.</para>
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.ParseIso(System.String)">
            <summary>Parse the specified string as an ISO-formatted DateTime. See <see cref="M:RT.Util.ExtensionMethods.DateTimeExtensions.TryParseIso(System.String,System.DateTime@)"/> for more info.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.ParseIsoNullable(System.String)">
            <summary>
            Parse the specified string as an ISO-formatted DateTime. Returns null if the string is null or cannot be parsed.
            See <see cref="M:RT.Util.ExtensionMethods.DateTimeExtensions.TryParseIso(System.String,System.DateTime@)"/> for more info.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.TruncatedToMilliseconds(System.DateTime)">
            <summary>Returns a copy of this DateTime, truncated to whole milliseconds.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.TruncatedToSeconds(System.DateTime)">
            <summary>Returns a copy of this DateTime, truncated to whole seconds.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.TruncatedToMinutes(System.DateTime)">
            <summary>Returns a copy of this DateTime, truncated to whole minutes.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.DateTimeExtensions.TruncatedToDays(System.DateTime)">
            <summary>Returns a copy of this DateTime, truncated to whole days.</summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.IEnumerableExtensions">
            <summary>Provides extension methods on the <see cref="T:System.Collections.Generic.IEnumerable`1"/> type.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.AllPairs``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
                Returns an enumeration of tuples containing all pairs of elements from the source collection. For example, the
                input sequence 1, 2 yields the pairs [1,1], [1,2], [2,1], and [2,2].</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.AllPairs``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``0,``1})">
            <summary>Returns an enumeration of objects computed from all pairs of elements from the source collection.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.UniquePairs``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
                Returns an enumeration of tuples containing all unique pairs of distinct elements from the source collection.
                For example, the input sequence 1, 2, 3 yields the pairs [1,2], [1,3] and [2,3] only.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.ConsecutivePairs``1(System.Collections.Generic.IEnumerable{``0},System.Boolean)">
            <summary>
                Returns an enumeration of tuples containing all consecutive pairs of the elements.</summary>
            <param name="source">
                The input enumerable.</param>
            <param name="closed">
                If true, an additional pair containing the last and first element is included. For example, if the source
                collection contains { 1, 2, 3, 4 } then the enumeration contains { (1, 2), (2, 3), (3, 4) } if <paramref
                name="closed"/> is false, and { (1, 2), (2, 3), (3, 4), (4, 1) } if <paramref name="closed"/> is true.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.Order``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>Sorts the elements of a sequence in ascending order.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.Order``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">
            <summary>Sorts the elements of a sequence in ascending order by using a specified comparer.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.OrderBy``1(System.Collections.Generic.IEnumerable{``0},System.Comparison{``0})">
            <summary>Sorts the elements of a sequence in ascending order by using a specified comparison delegate.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.Split``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})">
            <summary>
                Splits the specified IEnumerable at every element that satisfies a specified predicate and returns a
                collection containing each sequence of elements in between each pair of such elements. The elements satisfying
                the predicate are not included.</summary>
            <param name="splitWhat">
                The collection to be split.</param>
            <param name="splitWhere">
                A predicate that determines which elements constitute the separators.</param>
            <returns>
                A collection containing the individual pieces taken from the original collection.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.Concat``1(System.Collections.Generic.IEnumerable{``0},``0)">
            <summary>
                Adds a single element to the end of an <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</summary>
            <typeparam name="T">
                Type of enumerable to return.</typeparam>
            <returns>
                IEnumerable containing all the input elements, followed by the specified additional element.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.Concat``1(``0,System.Collections.Generic.IEnumerable{``0})">
            <summary>
                Adds a single element to the start of an <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</summary>
            <typeparam name="T">
                Type of enumerable to return.</typeparam>
            <returns>
                IEnumerable containing the specified additional element, followed by all the input elements.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.OrderLazy``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
                This does the same as <see cref="M:RT.Util.ExtensionMethods.IEnumerableExtensions.Order``1(System.Collections.Generic.IEnumerable{``0})"/>, but it is much faster if you intend to extract
                only the first few items using .Take().</summary>
            <param name="source">
                The sequence to be sorted.</param>
            <returns>
                The given <see cref="T:System.Collections.Generic.IEnumerable`1"/> with its elements sorted progressively.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.OrderLazy``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">
            <summary>
                This does the same as <see cref="M:RT.Util.ExtensionMethods.IEnumerableExtensions.Order``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})"/>, but it is much faster if you intend
                to extract only the first few items using <see cref="M:System.Linq.Enumerable.Take``1(System.Collections.Generic.IEnumerable{``0},System.Int32)"/>.</summary>
            <param name="source">
                The sequence to be sorted.</param>
            <param name="comparer">
                An instance of <see cref="T:System.Collections.Generic.IComparer`1"/> specifying the comparison to use on the items.</param>
            <returns>
                The given IEnumerable&lt;T&gt; with its elements sorted progressively.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.Permutations``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
                Returns all permutations of the input <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</summary>
            <param name="source">
                The list of items to permute.</param>
            <returns>
                A collection containing all permutations of the input <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.Subsequences``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
                Returns all subsequences of the input <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</summary>
            <param name="source">
                The sequence of items to generate subsequences of.</param>
            <returns>
                A collection containing all subsequences of the input <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.FirstOrNull``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
                Returns the first element of a sequence, or <c>null</c> if the sequence contains no elements.</summary>
            <typeparam name="T">
                The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">
                The <see cref="T:System.Collections.Generic.IEnumerable`1"/> to return the first element of.</param>
            <returns>
                <c>null</c> if <paramref name="source"/> is empty; otherwise, the first element in <paramref name="source"/>.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.FirstOrDefault``1(System.Collections.Generic.IEnumerable{``0},``0)">
            <summary>
                Returns the first element of a sequence, or a default value if the sequence contains no elements.</summary>
            <typeparam name="T">
                The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">
                The <see cref="T:System.Collections.Generic.IEnumerable`1"/> to return the first element of.</param>
            <param name="default">
                The default value to return if the sequence contains no elements.</param>
            <returns>
                <paramref name="default"/> if <paramref name="source"/> is empty; otherwise, the first element in <paramref name="source"/>.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.FirstOrDefault``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean},``0)">
            <summary>
                Returns the first element of a sequence, or a default value if the sequence contains no elements.</summary>
            <typeparam name="T">
                The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">
                The <see cref="T:System.Collections.Generic.IEnumerable`1"/> to return the first element of.</param>
            <param name="predicate">
                A function to test each element for a condition.</param>
            <param name="default">
                The default value to return if the sequence contains no elements.</param>
            <returns>
                <paramref name="default"/> if <paramref name="source"/> is empty or if no element passes the test specified by
                <paramref name="predicate"/>; otherwise, the first element in <paramref name="source"/> that passes the test
                specified by <paramref name="predicate"/>.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.FirstOrDefault``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean},System.Func{``0,``1},``1)">
            <summary>
                Returns the first element of a sequence, or a default value if the sequence contains no elements.</summary>
            <typeparam name="TSource">
                The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TResult">
                The type of the resulting value.</typeparam>
            <param name="source">
                The <see cref="T:System.Collections.Generic.IEnumerable`1"/> to return the first element of.</param>
            <param name="predicate">
                A function to test each element for a condition.</param>
            <param name="resultSelector">
                A function to transform the first element into the result value. Will only be called if the sequence contains
                an element that passes the test specified by <paramref name="predicate"/>.</param>
            <param name="default">
                The default value to return if the sequence contains no elements.</param>
            <returns>
                <paramref name="default"/> if <paramref name="source"/> is empty or if no element passes the test specified by
                <paramref name="predicate"/>; otherwise, the transformed first element in <paramref name="source"/> that
                passes the test specified by <paramref name="predicate"/>.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.IndexOf``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})">
            <summary>
                Returns the index of the first element in this <paramref name="source"/> satisfying the specified <paramref
                name="predicate"/>. If no such elements are found, returns <c>-1</c>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.LastIndexOf``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})">
            <summary>
                Returns the index of the last element in this <paramref name="source"/> satisfying the specified <paramref
                name="predicate"/>. If no such elements are found, returns <c>-1</c>.</summary>
            <remarks>
                This method is optimised for the case in which the input sequence is a list or array. In all other cases, the
                collection is evaluated completely before this method returns.</remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.IndexOf``1(System.Collections.Generic.IEnumerable{``0},``0,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
                Returns the index of the first element in this <paramref name="source"/> that is equal to the specified
                <paramref name="element"/> as determined by the specified <paramref name="comparer"/>. If no such elements are
                found, returns <c>-1</c>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.MinOrDefault``1(System.Collections.Generic.IEnumerable{``0},``0)">
            <summary>
                Returns the minimum resulting value in a sequence, or a default value if the sequence is empty.</summary>
            <typeparam name="TSource">
                The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">
                A sequence of values to determine the minimum value of.</param>
            <param name="default">
                A default value to return in case the sequence is empty.</param>
            <returns>
                The minimum value in the sequence, or the specified default value if the sequence is empty.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.MinOrDefault``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},``1)">
            <summary>
                Invokes a selector on each element of a collection and returns the minimum resulting value, or a default value
                if the sequence is empty.</summary>
            <typeparam name="TSource">
                The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TResult">
                The type of the value returned by <paramref name="selector"/>.</typeparam>
            <param name="source">
                A sequence of values to determine the minimum value of.</param>
            <param name="selector">
                A transform function to apply to each element.</param>
            <param name="default">
                A default value to return in case the sequence is empty.</param>
            <returns>
                The minimum value in the sequence, or the specified default value if the sequence is empty.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.MaxOrDefault``1(System.Collections.Generic.IEnumerable{``0},``0)">
            <summary>
                Returns the maximum resulting value in a sequence, or a default value if the sequence is empty.</summary>
            <typeparam name="TSource">
                The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">
                A sequence of values to determine the maximum value of.</param>
            <param name="default">
                A default value to return in case the sequence is empty.</param>
            <returns>
                The maximum value in the sequence, or the specified default value if the sequence is empty.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.MaxOrDefault``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},``1)">
            <summary>
                Invokes a selector on each element of a collection and returns the maximum resulting value, or a default value
                if the sequence is empty.</summary>
            <typeparam name="TSource">
                The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TResult">
                The type of the value returned by <paramref name="selector"/>.</typeparam>
            <param name="source">
                A sequence of values to determine the maximum value of.</param>
            <param name="selector">
                A transform function to apply to each element.</param>
            <param name="default">
                A default value to return in case the sequence is empty.</param>
            <returns>
                The maximum value in the sequence, or the specified default value if the sequence is empty.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.MinElement``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})">
            <summary>
                Returns the first element from the input sequence for which the value selector returns the smallest value.</summary>
            <exception cref="T:System.InvalidOperationException">
                The input collection is empty.</exception>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.MinElementOrDefault``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},``0)">
            <summary>
                Returns the first element from the input sequence for which the value selector returns the smallest value, or
                a default value if the collection is empty.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.MaxElement``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})">
            <summary>
                Returns the first element from the input sequence for which the value selector returns the largest value.</summary>
            <exception cref="T:System.InvalidOperationException">
                The input collection is empty.</exception>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.MaxElementOrDefault``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},``0)">
            <summary>
                Returns the first element from the input sequence for which the value selector returns the largest value, or a
                default value if the collection is empty.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.SkipLast``1(System.Collections.Generic.IEnumerable{``0},System.Int32,System.Boolean)">
            <summary>
                Enumerates the items of this collection, skipping the last <paramref name="count"/> items. Note that the
                memory usage of this method is proportional to <paramref name="count"/>, but the source collection is only
                enumerated once, and in a lazy fashion. Also, enumerating the first item will take longer than enumerating
                subsequent items.</summary>
            <param name="source">
                Source collection.</param>
            <param name="count">
                Number of items to skip from the end of the collection.</param>
            <param name="throwIfNotEnough">
                If <c>true</c>, the enumerator throws at the end of the enumeration if the source collection contained fewer
                than <paramref name="count"/> elements.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.TakeLast``1(System.Collections.Generic.IEnumerable{``0},System.Int32)">
            <summary>
                Returns a collection containing only the last <paramref name="count"/> items of the input collection. This
                method enumerates the entire collection to the end once before returning. Note also that the memory usage of
                this method is proportional to <paramref name="count"/>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.StartsWith``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>Returns true if and only if the input collection begins with the specified collection.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.StartsWith``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>Returns true if and only if the input collection begins with the specified collection.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.ToQueue``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>Creates a <see cref="T:System.Collections.Generic.Queue`1"/> from an enumerable collection.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.ToStack``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>Creates a <see cref="T:System.Collections.Generic.Stack`1"/> from an enumerable collection.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.ToHashSet``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>Creates a <see cref="T:System.Collections.Generic.HashSet`1"/> from an enumerable collection.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.ToDictionary2``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2},System.Collections.Generic.IEqualityComparer{``1},System.Collections.Generic.IEqualityComparer{``2})">
            <summary>
                Creates a two-level dictionary from an enumerable collection according to two specified key selector functions
                and optional key comparers.</summary>
            <typeparam name="TSource">
                The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey1">
                The type of the keys returned by <paramref name="key1Selector"/>.</typeparam>
            <typeparam name="TKey2">
                The type of the keys returned by <paramref name="key2Selector"/>.</typeparam>
            <param name="source">
                Source collection to create a dictionary from.</param>
            <param name="key1Selector">
                A function to extract the first-level key from each element.</param>
            <param name="key2Selector">
                A function to extract the second-level key from each element.</param>
            <param name="comparer1">
                An equality comparer to compare the first-level keys.</param>
            <param name="comparer2">
                An equality comparer to compare the second-level keys.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.ToDictionary2``4(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``2},System.Func{``0,``3},System.Collections.Generic.IEqualityComparer{``1},System.Collections.Generic.IEqualityComparer{``2})">
            <summary>
                Creates a two-level dictionary from an enumerable collection according to two specified key selector functions
                and optional key comparers.</summary>
            <typeparam name="TSource">
                The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TKey1">
                The type of the keys returned by <paramref name="key1Selector"/>.</typeparam>
            <typeparam name="TKey2">
                The type of the keys returned by <paramref name="key2Selector"/>.</typeparam>
            <typeparam name="TValue">
                The type of the value returned by <paramref name="elementSelector"/>.</typeparam>
            <param name="source">
                Source collection to create a dictionary from.</param>
            <param name="key1Selector">
                A function to extract the first-level key from each element.</param>
            <param name="key2Selector">
                A function to extract the second-level key from each element.</param>
            <param name="elementSelector">
                A transform function to produce a result element value from each element.</param>
            <param name="comparer1">
                An equality comparer to compare the first-level keys.</param>
            <param name="comparer2">
                An equality comparer to compare the second-level keys.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.SelectIndexWhere``1(System.Collections.Generic.IEnumerable{``0},System.Predicate{``0})">
            <summary>
                Returns a collection of integers containing the indexes at which the elements of the source collection match
                the given predicate.</summary>
            <typeparam name="T">
                The type of elements in the collection.</typeparam>
            <param name="source">
                The source collection whose elements are tested using <paramref name="predicate"/>.</param>
            <param name="predicate">
                The predicate against which the elements of <paramref name="source"/> are tested.</param>
            <returns>
                A collection containing the zero-based indexes of all the matching elements, in increasing order.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.SelectTwo``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Func{``0,``1})">
            <summary>
                Transforms every element of an input collection using two selector functions and returns a collection
                containing all the results.</summary>
            <typeparam name="TSource">
                Type of the elements in the source collection.</typeparam>
            <typeparam name="TResult">
                Type of the results of the selector functions.</typeparam>
            <param name="source">
                Input collection to transform.</param>
            <param name="selector1">
                First selector function.</param>
            <param name="selector2">
                Second selector function.</param>
            <returns>
                A collection containing the transformed elements from both selectors, thus containing twice as many elements
                as the original collection.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.JoinString``1(System.Collections.Generic.IEnumerable{``0},System.String,System.String,System.String,System.String)">
            <summary>
                Turns all elements in the enumerable to strings and joins them using the specified <paramref
                name="separator"/> and the specified <paramref name="prefix"/> and <paramref name="suffix"/> for each string.</summary>
            <param name="values">
                The sequence of elements to join into a string.</param>
            <param name="separator">
                Optionally, a separator to insert between each element and the next.</param>
            <param name="prefix">
                Optionally, a string to insert in front of each element.</param>
            <param name="suffix">
                Optionally, a string to insert after each element.</param>
            <param name="lastSeparator">
                Optionally, a separator to use between the second-to-last and the last element.</param>
            <example>
                <code>
                    // Returns "[Paris], [London], [Tokyo]"
                    (new[] { "Paris", "London", "Tokyo" }).JoinString(", ", "[", "]")
                    
                    // Returns "[Paris], [London] and [Tokyo]"
                    (new[] { "Paris", "London", "Tokyo" }).JoinString(", ", "[", "]", " and ");</code></example>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.JoinColoredString``1(System.Collections.Generic.IEnumerable{``0},RT.Util.Consoles.ConsoleColoredString,RT.Util.Consoles.ConsoleColoredString,RT.Util.Consoles.ConsoleColoredString,System.ConsoleColor)">
            <summary>Equivalent to <see cref="M:RT.Util.ExtensionMethods.IEnumerableExtensions.JoinString``1(System.Collections.Generic.IEnumerable{``0},System.String,System.String,System.String,System.String)"/>, but for <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>s.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.InsertBetween``1(System.Collections.Generic.IEnumerable{``0},``0)">
            <summary>
                Inserts the specified item in between each element in the input collection.</summary>
            <param name="source">
                The input collection.</param>
            <param name="extraElement">
                The element to insert between each consecutive pair of elements in the input collection.</param>
            <returns>
                A collection containing the original collection with the extra element inserted. For example, new[] { 1, 2, 3
                }.InsertBetween(0) returns { 1, 0, 2, 0, 3 }.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.InsertBetweenWithAnd``1(System.Collections.Generic.IEnumerable{``0},``0,``0)">
            <summary>
                Inserts the <paramref name="comma"/> item in between each element in the input collection except between the
                second-last and last, where it inserts <paramref name="and"/> instead.</summary>
            <param name="source">
                The input collection.</param>
            <param name="comma">
                The element to insert between each consecutive pair of elements in the input collection except between the
                second-last and last.</param>
            <param name="and">
                The element to insert between the second-last and last element of the input collection.</param>
            <returns>
                A collection containing the original collection with the extra element inserted. For example, new[] { "a",
                "b", "c" }.InsertBetweenWithAnd(", ", " and ") returns { "a", ", ", "b", " and ", "c" }.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.SequenceEqual``1(System.Collections.Generic.IEnumerable{``0},``0[])">
            <summary>Determines whether this sequence comprises the values provided in the specified order.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.AllSequencesEqual``1(System.Collections.Generic.IEnumerable{System.Collections.Generic.IEnumerable{``0}})">
            <summary>Determines whether all the input sequences are equal according to SequenceEquals.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.Split``1(System.Collections.Generic.IEnumerable{``0},System.Int32)">
            <summary>
                Splits a collection into chunks of equal size. The last chunk may be smaller than <paramref
                name="chunkSize"/>, but all chunks, if any, will contain at least one item.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.GroupConsecutive``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
                Accumulates consecutive equal elements.</summary>
            <typeparam name="TItem">
                The type of items in the input sequence.</typeparam>
            <param name="source">
                The input sequence from which to accumulate groups of consecutive elements.</param>
            <returns>
                A collection containing each sequence of consecutive equal elements.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.GroupConsecutive``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``0,System.Boolean})">
            <summary>
                Accumulates consecutive equal elements.</summary>
            <typeparam name="TItem">
                The type of items in the input sequence.</typeparam>
            <param name="source">
                The input sequence from which to accumulate groups of consecutive elements.</param>
            <param name="itemEquality">
                An optional function to determine equality of items.</param>
            <returns>
                A collection containing each sequence of consecutive equal elements.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.GroupConsecutive``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
                Accumulates consecutive equal elements.</summary>
            <typeparam name="TItem">
                The type of items in the input sequence.</typeparam>
            <param name="source">
                The input sequence from which to accumulate groups of consecutive elements.</param>
            <param name="itemComparer">
                An optional equality comparer to determine item equality by.</param>
            <returns>
                A collection containing each sequence of consecutive equal elements.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.GroupConsecutiveBy``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
                Accumulates consecutive elements that are equal when processed by a selector.</summary>
            <typeparam name="TItem">
                The type of items in the input sequence.</typeparam>
            <typeparam name="TKey">
                The return type of the <paramref name="selector"/> function.</typeparam>
            <param name="source">
                The input sequence from which to accumulate groups of consecutive elements.</param>
            <param name="selector">
                A function to transform each item into a key which is compared for equality.</param>
            <param name="keyComparer">
                An optional equality comparer for the keys returned by <paramref name="selector"/>.</param>
            <returns>
                A collection containing each sequence of consecutive equal elements.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.SelectChain``1(``0,System.Func{``0,``0})">
            <summary>
                Enumerates a chain of objects where each object refers to the next one. The chain starts with the specified
                object and ends when null is encountered.</summary>
            <typeparam name="T">
                Type of object to enumerate.</typeparam>
            <param name="obj">
                Initial object.</param>
            <param name="next">
                A function that returns the next object given the current one. If null is returned, enumeration will end.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.MaxCountElement``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
                Determines which element occurs the most often in the specified input sequence.</summary>
            <typeparam name="T">
                Type of elements in the input sequence.</typeparam>
            <param name="source">
                Sequence to find most common element in.</param>
            <param name="comparer">
                Optional equality comparer to compare elements by.</param>
            <returns>
                Of all elements that occur the most number of times, the one whose last instance occurs soonest in the
                sequence.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.MaxCountElement``1(System.Collections.Generic.IEnumerable{``0},System.Int32@,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
                Determines which element occurs the most often in the specified input sequence, and how often.</summary>
            <typeparam name="T">
                Type of elements in the input sequence.</typeparam>
            <param name="source">
                Sequence to find most common element in.</param>
            <param name="count">
                Receives the number of times the element occurred.</param>
            <param name="comparer">
                Optional equality comparer to compare elements by.</param>
            <returns>
                Of all elements that occur the most number of times, the one whose last instance occurs soonest in the
                sequence.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.SumUnchecked(System.Collections.Generic.IEnumerable{System.Int32})">
            <summary>Returns the sum of the values in the specified collection, truncated to a 32-bit integer.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IEnumerableExtensions.SumUnchecked``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32})">
            <summary>
                Returns the sum of the values in the specified collection projected by the specified selector function,
                truncated to a 32-bit integer.</summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.ConsecutiveGroup`2">
            <summary>
                Encapsulates information about a group generated by <see cref="M:RT.Util.ExtensionMethods.IEnumerableExtensions.GroupConsecutive``1(System.Collections.Generic.IEnumerable{``0})"/> and its overloads.</summary>
            <typeparam name="TItem">
                Type of the elements in the sequence.</typeparam>
            <typeparam name="TKey">
                Type of the key by which elements were compared.</typeparam>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ConsecutiveGroup`2.GetEnumerator">
            <summary>
                Returns an enumerator that iterates through the collection.</summary>
            <returns>
                A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ConsecutiveGroup`2.ToString">
            <summary>Returns a string that represents this group’s key and its count.</summary>
        </member>
        <member name="P:RT.Util.ExtensionMethods.ConsecutiveGroup`2.Index">
            <summary>Index in the original sequence where the group started.</summary>
        </member>
        <member name="P:RT.Util.ExtensionMethods.ConsecutiveGroup`2.Count">
            <summary>Size of the group.</summary>
        </member>
        <member name="P:RT.Util.ExtensionMethods.ConsecutiveGroup`2.Key">
            <summary>The key by which the items in this group are deemed equal.</summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.IQueryableExtensions">
            <summary>
            Provides extension methods on the collection type.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IQueryableExtensions.AllPairs``1(System.Linq.IQueryable{``0})">
            <summary>
            Returns an enumeration of tuples containing all pairs of elements from the source collection.
            For example, the input sequence 1, 2 yields the pairs [1,1], [1,2], [2,1], and [2,2].
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IQueryableExtensions.Join``2(System.Linq.IQueryable{``0},System.Linq.IQueryable{``1})">
            <summary>
            Returns an enumeration of <see cref="T:System.Tuple`2"/>s containing all ordered pairs of elements from the two source collections.
            For example, [1, 2].Join(["one", "two"]) results in the tuples [1, "one"], [1, "two"], [2, "one"] and [2, "two"].
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IQueryableExtensions.UniquePairs``1(System.Linq.IQueryable{``0})">
            <summary>
            Returns an enumeration of tuples containing all unique pairs of distinct elements from the source collection.
            For example, the input sequence 1, 2, 3 yields the pairs [1,2], [1,3] and [2,3] only.
            </summary>
            <remarks>Warning: This method does not work with IQToolkit.</remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IQueryableExtensions.ConsecutivePairs``1(System.Linq.IQueryable{``0},System.Boolean)">
            <summary>
            Returns an enumeration of tuples containing all consecutive pairs of the elements.
            </summary>
            <param name="source">The input enumerable.</param>
            <param name="closed">If true, an additional pair containing the last and first element is included. For example,
            if the source collection contains { 1, 2, 3, 4 } then the enumeration contains { (1, 2), (2, 3), (3, 4) } if <paramref name="closed"/>
            is false, and { (1, 2), (2, 3), (3, 4), (4, 1) } if <paramref name="closed"/> is true.</param>
            <remarks>Warning: This method does not work with IQToolkit.</remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IQueryableExtensions.Order``1(System.Linq.IQueryable{``0})">
            <summary>
            Returns an enumeration of the specified enumerable in sorted order.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IQueryableExtensions.Order``1(System.Linq.IQueryable{``0},System.Collections.Generic.IComparer{``0})">
            <summary>
            Returns an enumeration of the specified enumerable in sorted order.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IQueryableExtensions.Concat``1(System.Linq.IQueryable{``0},``0)">
            <summary>
            Adds a single element to the end of an IQueryable.
            </summary>
            <typeparam name="T">Type of enumerable to return.</typeparam>
            <returns>IQueryable containing all the input elements, followed by the specified additional element.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IQueryableExtensions.FirstOrDefault``1(System.Linq.IQueryable{``0},``0)">
            <summary>
            Returns the first element of a sequence, or a default value if the sequence contains no elements.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The collection to return the first element of.</param>
            <param name="default">The default value to return if the sequence contains no elements.</param>
            <returns><paramref name="default"/> if <paramref name="source"/> is empty;
            otherwise, the first element in <paramref name="source"/>.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IQueryableExtensions.FirstOrDefault``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},``0)">
            <summary>
            Returns the first element of a sequence, or a default value if the sequence contains no elements.
            </summary>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
            <param name="source">The collection to return the first element of.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <param name="default">The default value to return if the sequence contains no elements.</param>
            <returns><paramref name="default"/> if <paramref name="source"/> is empty or if no element passes the test specified by <paramref name="predicate"/>;
            otherwise, the first element in <paramref name="source"/> that passes the test specified by <paramref name="predicate"/>.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.IQueryableExtensions.FirstOrDefault``2(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Func{``0,``1},``1)">
            <summary>
            Returns the first element of a sequence, or a default value if the sequence contains no elements.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TResult">The type of the resulting value.</typeparam>
            <param name="source">The collection to return the first element of.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <param name="resultSelector">A function to transform the first element into the result value. Will only be called if the sequence contains an element that passes the test specified by <paramref name="predicate"/>.</param>
            <param name="default">The default value to return if the sequence contains no elements.</param>
            <returns><paramref name="default"/> if <paramref name="source"/> is empty or if no element passes the test specified by <paramref name="predicate"/>;
            otherwise, the transformed first element in <paramref name="source"/> that passes the test specified by <paramref name="predicate"/>.</returns>
        </member>
        <member name="T:RT.Util.ExtensionMethods.NumericExtensions">
            <summary>
            Provides extension methods on numeric types.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.NumericExtensions.Clip(System.Int32,System.Int32,System.Int32)">
            <summary>
            Clips this value to the range defined by <paramref name="minimumValue"/> and <paramref name="maximumValue"/>.
            The returned number will be no less than the minimum value and no greater than the maximum value. Throws
            an exception if min value is greater than the max value.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.NumericExtensions.ClipMin(System.Int32,System.Int32)">
            <summary>Clips this value so that it is no less than the minimum value specified.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.NumericExtensions.ClipMax(System.Int32,System.Int32)">
            <summary>Clips this value so that it is no greater than the maximum value specified.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.NumericExtensions.Clip(System.Double,System.Double,System.Double)">
            <summary>
            Clips this value to the range defined by <paramref name="minimumValue"/> and <paramref name="maximumValue"/>.
            The returned number will be no less than the minimum value and no greater than the maximum value. Throws
            an exception if min value is greater than the max value.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.NumericExtensions.ClipMin(System.Double,System.Double)">
            <summary>Clips this value so that it is no less than the minimum value specified.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.NumericExtensions.ClipMax(System.Double,System.Double)">
            <summary>Clips this value so that it is no greater than the maximum value specified.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.NumericExtensions.Clip(System.Decimal,System.Decimal,System.Decimal)">
            <summary>
            Clips this value to the range defined by <paramref name="minimumValue"/> and <paramref name="maximumValue"/>.
            The returned number will be no less than the minimum value and no greater than the maximum value. Throws
            an exception if min value is greater than the max value.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.NumericExtensions.ClipMin(System.Decimal,System.Decimal)">
            <summary>Clips this value so that it is no less than the minimum value specified.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.NumericExtensions.ClipMax(System.Decimal,System.Decimal)">
            <summary>Clips this value so that it is no greater than the maximum value specified.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.NumericExtensions.TryParseAsInt(System.String)">
            <summary>
            Attempts to parse this string as an int, returning null if the parse fails.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.NumericExtensions.ToWords(System.Int32)">
            <summary>
                Converts the integer to a textual representation using English words. For example, 142.ToWords() is "one
                hundred and forty-two".</summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.ProcessExtensions">
            <summary>
            Provides extension methods on the <see cref="T:System.Diagnostics.Process"/> type, as well as utility methods which are logically 
            static extensions on the Process type but have to be invoked as static methods of this class.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ProcessExtensions.ParentChildProcessIds">
            <summary>
            For each process in the system, enumerates a tuple of parent-process-id,process-id.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ProcessExtensions.ChildProcessIds(System.Diagnostics.Process,System.Boolean)">
            <summary>Returns a list of child processes of this process.</summary>
            <param name="process">The process to return the children of.</param>
            <param name="recursive">If true, all the children's children are included recursively. If false, only direct children are included.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ProcessExtensions.KillWithChildren(System.Diagnostics.Process)">
            <summary>
            Kills this process and all children. Swallows all exceptions
            and does not wait for processes to die or check that they died.
            </summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.ReflectionExtensions">
            <summary>Provides extension methods on types involved in the Reflection API.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ReflectionExtensions.TryGetInterfaceGenericParameters(System.Type,System.Type,System.Type[]@)">
            <summary>
                Determines whether the current type is or implements the specified generic interface, and determines that
                interface's generic type parameters.</summary>
            <param name="type">
                The current type.</param>
            <param name="interface">
                A generic type definition for an interface, e.g. typeof(ICollection&lt;&gt;) or typeof(IDictionary&lt;,&gt;).</param>
            <param name="typeParameters">
                Will receive an array containing the generic type parameters of the interface.</param>
            <returns>
                True if the current type is or implements the specified generic interface.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ReflectionExtensions.GetAllFields(System.Type)">
            <summary>
                Returns all fields contained in the specified type, including private fields inherited from base classes.</summary>
            <param name="type">
                The type to return all fields of.</param>
            <returns>
                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> containing all fields contained in this type, including private
                fields inherited from base classes.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ReflectionExtensions.GetAllProperties(System.Type)">
            <summary>
                Returns all properties contained in the specified type, including private properties inherited from base
                classes.</summary>
            <param name="type">
                The type to return all properties of.</param>
            <returns>
                An <see cref="T:System.Collections.Generic.IEnumerable`1"/> containing all properties contained in this type, including
                private properties inherited from base classes.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ReflectionExtensions.GetCustomAttributes``1(System.Reflection.MemberInfo,System.Boolean)">
            <summary>
                Returns a proper statically-typed collection of the custom attributes on this member.</summary>
            <param name="member">
                Member whose custom attributes to return.</param>
            <param name="inherit">
                Specifies whether to search this member's inheritance chain to find the attributes.</param>
            <typeparam name="T">
                The type of attribute to search for. Only attributes that are assignable to this type are returned.</typeparam>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ReflectionExtensions.GetCustomAttributes``1(System.Reflection.Assembly)">
            <summary>
                Returns a proper statically-typed collection of the custom attributes on this assembly.</summary>
            <param name="assembly">
                Assembly whose custom attributes to return.</param>
            <typeparam name="T">
                The type of attribute to search for. Only attributes that are assignable to this type are returned.</typeparam>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ReflectionExtensions.IsDefined``1(System.Reflection.MemberInfo,System.Boolean)">
            <summary>
                Indicates whether one or more instance of the specified attribute type is applied to this member.</summary>
            <typeparam name="T">
                The type of attribute to search for.</typeparam>
            <param name="member">
                Member whose custom attributes to search.</param>
            <param name="inherit">
                Specifies whether to search this member's inheritance chain to find the attributes.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ReflectionExtensions.IsDefined``1(System.Reflection.ParameterInfo)">
            <summary>
                Indicates whether one or more instance of the specified attribute type is applied to this parameter.</summary>
            <typeparam name="T">
                The type of attribute to search for.</typeparam>
            <param name="parameter">
                Parameter whose custom attributes to search.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ReflectionExtensions.HasPublicGetter(System.Reflection.PropertyInfo)">
            <summary>Determines whether a property has a public getter.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ReflectionExtensions.IsStatic(System.Reflection.PropertyInfo)">
            <summary>Determines whether a property is static.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.ReflectionExtensions.GetDefaultValue(System.Type)">
            <summary>
                Returns the equivalent of <c>default(T)</c> for a <c>Type</c> object. For reference or nullable types, this is
                <c>null</c>, while for value types, it is the default value (e.g. <c>false</c>, <c>0</c>, etc.).</summary>
            <param name="type">
                The type to retrieve the default value for.</param>
        </member>
        <member name="T:RT.Util.ExtensionMethods.StreamExtensions">
            <summary>
            Provides extension methods on the <see cref="T:System.IO.Stream"/> type.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.ReadAllBytes(System.IO.Stream)">
            <summary>Reads all bytes until the end of stream and returns them in a byte array.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.ReadAllBytesGetLength(System.IO.Stream)">
            <summary>Reads all bytes until the end of stream and returns the number
            of bytes thus read without allocating too much memory.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.ReadAllText(System.IO.Stream,System.Text.Encoding)">
            <summary>Reads all bytes from the current Stream and converts them into text using the specified encoding.</summary>
            <param name="stream">Stream to read from.</param>
            <param name="encoding">Encoding to expect the text to be in. If <c>null</c> then the UTF-8 encoding is used.</param>
            <returns>The text read from the stream.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.Read(System.IO.Stream,System.Int32)">
            <summary>
            Attempts to read the specified number of bytes from the stream. If there are fewer bytes left
            before the end of the stream, a shorter (possibly empty) array is returned.
            </summary>
            <param name="stream">Stream to read from.</param>
            <param name="length">Number of bytes to read from the stream.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.Write(System.IO.Stream,System.Byte[])">
            <summary>Writes the specified data to the current stream.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.FillBuffer(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
            <summary>
            Attempts to fill the buffer with the specified number of bytes from the stream. If there are
            fewer bytes left in the stream than requested then all available bytes will be read into the buffer.
            </summary>
            <param name="stream">Stream to read from.</param>
            <param name="buffer">Buffer to write the bytes to.</param>
            <param name="offset">Offset at which to write the first byte read from the stream.</param>
            <param name="length">Number of bytes to read from the stream.</param>
            <returns>Number of bytes read from the stream into buffer. This may be less than requested, but only if the stream ended before the required number of bytes were read.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.WriteUtf8(System.IO.Stream,System.String)">
            <summary>Encodes the specified string as UTF-8 and writes it to the current stream.</summary>
            <param name="stream">Stream to write text to.</param>
            <param name="text">Text to write to the stream as UTF-8.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.WriteInt32Optim(System.IO.Stream,System.Int32)">
            <summary>Encodes a 32-bit signed integer in a variable number of bytes, using fewer bytes for values closer to zero.</summary>
            <remarks>
            <para>Writes an integer 7 bits at a time. This allows small integers to be
            stored in 1 byte, longer ones in 2, at the cost of storing the longest
            ones in 5 bytes.</para>
            
            <para>Example for a positive int:</para>
            <code>00000000 00000000 01010101 01010101</code>
            <para>becomes three bytes:</para>
            <code>1,1010101 1,0101010 0,0000001</code>
            
            <para>Example for a negative int:</para>
            <code>11111111 11111111 11010101 01010101</code>
            <para>becomes three bytes:</para>
            <code>1,1010101 1,0101010 0,1111111</code>
            
            <para>Note how an extra byte is needed in this example. This is similar to
            requiring a sign bit, however this way the positive values are directly
            compatible with unsigned Optim values.</para>
            </remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.WriteUInt32Optim(System.IO.Stream,System.UInt32)">
            <summary>Encodes a 32-bit unsigned integer in a variable number of bytes, using fewer bytes for smaller values.</summary>
            <remarks>See <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteInt32Optim(System.IO.Stream,System.Int32)"/> for the precise encoding.</remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.WriteInt64Optim(System.IO.Stream,System.Int64)">
            <summary>Encodes a 64-bit signed integer in a variable number of bytes, using fewer bytes for values closer to zero.</summary>
            <remarks>See <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteInt32Optim(System.IO.Stream,System.Int32)"/> for the precise encoding.</remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.WriteUInt64Optim(System.IO.Stream,System.UInt64)">
            <summary>Encodes a 64-bit unsigned integer in a variable number of bytes, using fewer bytes for smaller values.</summary>
            <remarks>See <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteInt32Optim(System.IO.Stream,System.Int32)"/> for the precise encoding.</remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.WriteDecimalOptim(System.IO.Stream,System.Decimal)">
            <summary>Encodes a decimal in a variable number of bytes, using fewer bytes for frequently-occurring low-precision values.</summary>
            <remarks>
            <para>The first byte is a "header" byte. Its top bit indicates the sign of the value, while the remaining 7 bits encode the scale
            and the length, in bytes, of the mantissa component. Since the scale can be anything between 0..28 and the length can be up to 12,
            this number is simply an index into a lookup table which contains specific combinations of both values. These combinations were
            selected by analyzing the actual distribution of mantissa length + exponent pairs making a few assumptions about the likely inputs
            into arithmetic operations. The encoder makes sure to select a value representing the exact scale and the minimum representable
            mantissa length.</para>
            <para>The result is always at most 13 bytes long, which is the same as discarding the three unused bytes of the raw representation.</para>
            </remarks>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.ReadInt32Optim(System.IO.Stream)">
            <summary>Decodes an integer encoded by <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteInt32Optim(System.IO.Stream,System.Int32)"/> or <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteUInt32Optim(System.IO.Stream,System.UInt32)"/>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.ReadUInt32Optim(System.IO.Stream)">
            <summary>Decodes an integer encoded by <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteUInt32Optim(System.IO.Stream,System.UInt32)"/>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.ReadInt64Optim(System.IO.Stream)">
            <summary>Decodes an integer encoded by <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteInt64Optim(System.IO.Stream,System.Int64)"/> or <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteUInt64Optim(System.IO.Stream,System.UInt64)"/>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.ReadUInt64Optim(System.IO.Stream)">
            <summary>Decodes an integer encoded by <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteUInt64Optim(System.IO.Stream,System.UInt64)"/>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StreamExtensions.ReadDecimalOptim(System.IO.Stream)">
            <summary>Decodes a decimal encoded by <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteDecimalOptim(System.IO.Stream,System.Decimal)"/>.</summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.StringExtensions">
            <summary>Provides extension methods on the <see cref="T:System.String"/> type.</summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.StringExtensions.CharsBase64Url">
            <summary>Contains the set of characters that are used in base64-url encoding.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Repeat(System.String,System.Int32)">
            <summary>
                Concatenates the specified number of repetitions of the current string.</summary>
            <param name="input">
                The string to be repeated.</param>
            <param name="numTimes">
                The number of times to repeat the string.</param>
            <returns>
                A concatenated string containing the original string the specified number of times.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.HtmlEscape(System.String,System.Boolean,System.Boolean)">
            <summary>
                Escapes all necessary characters in the specified string so as to make it usable safely in an HTML or XML
                context.</summary>
            <param name="input">
                The string to apply HTML or XML escaping to.</param>
            <param name="leaveSingleQuotesAlone">
                If <c>true</c>, does not escape single quotes (<c>'</c>, U+0027).</param>
            <param name="leaveDoubleQuotesAlone">
                If <c>true</c>, does not escape single quotes (<c>"</c>, U+0022).</param>
            <returns>
                The specified string with the necessary HTML or XML escaping applied.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.UrlEscape(System.String)">
            <summary>
                Escapes all necessary characters in the specified string so as to make it usable safely in a URL.</summary>
            <param name="input">
                The string to apply URL escaping to.</param>
            <returns>
                The specified string with the necessary URL escaping applied.</returns>
            <seealso cref="M:RT.Util.ExtensionMethods.StringExtensions.UrlUnescape(System.String)"/>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.UrlUnescape(System.String)">
            <summary>
                Reverses the escaping performed by <see cref="M:RT.Util.ExtensionMethods.StringExtensions.UrlEscape(System.String)"/> by decoding hexadecimal URL escape sequences into
                their original characters.</summary>
            <param name="input">
                String containing URL escape sequences to be decoded.</param>
            <returns>
                The specified string with all URL escape sequences decoded.</returns>
            <seealso cref="M:RT.Util.ExtensionMethods.StringExtensions.UrlEscape(System.String)"/>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.FilenameCharactersEscape(System.String,System.Boolean)">
            <summary>
                Escapes all characters in this string which cannot form part of a valid filename on at least one supported
                filesystem. The escaping is fully reversible (via <see cref="M:RT.Util.ExtensionMethods.StringExtensions.FilenameCharactersUnescape(System.String)"/>), but does not
                treat characters at specific positions differently (e.g. the "." at the end of the name is not escaped, even
                though it will disappear on a Win32 system).</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.FilenameCharactersUnescape(System.String)">
            <summary>
                Reverses the transformation done by <see cref="M:RT.Util.ExtensionMethods.StringExtensions.FilenameCharactersEscape(System.String,System.Boolean)"/>. This routine will also work on
                filenames that cannot have been generated by the above escape procedure; any "invalid" escapes will be
                preserved as-is.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.ToUtf8(System.String)">
            <summary>
                Converts the specified string to UTF-8.</summary>
            <param name="input">
                String to convert to UTF-8.</param>
            <returns>
                The specified string, converted to a byte-array containing the UTF-8 encoding of the string.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.ToUtf16(System.String)">
            <summary>
                Converts the specified string to UTF-16.</summary>
            <param name="input">
                String to convert to UTF-16.</param>
            <returns>
                The specified string, converted to a byte-array containing the UTF-16 encoding of the string.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.ToUtf16BE(System.String)">
            <summary>
                Converts the specified string to UTF-16 (Big Endian).</summary>
            <param name="input">
                String to convert to UTF-16 (Big Endian).</param>
            <returns>
                The specified string, converted to a byte-array containing the UTF-16 (Big Endian) encoding of the string.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.FromUtf8(System.Byte[],System.Boolean)">
            <summary>
                Converts the specified raw UTF-8 data to a string.</summary>
            <param name="input">
                Data to interpret as UTF-8 text.</param>
            <param name="removeBom">
                <c>true</c> to remove the first character if it is a UTF-8 BOM.</param>
            <returns>
                A string containing the characters represented by the UTF-8-encoded input.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.FromUtf16(System.Byte[])">
            <summary>
                Converts the specified raw UTF-16 (little-endian) data to a string.</summary>
            <param name="input">
                Data to interpret as UTF-16 text.</param>
            <returns>
                A string containing the characters represented by the UTF-16-encoded input.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.FromUtf16BE(System.Byte[])">
            <summary>
                Converts the specified raw UTF-16 (big-endian) data to a string.</summary>
            <param name="input">
                Data to interpret as UTF-16BE text.</param>
            <returns>
                A string containing the characters represented by the UTF-16BE-encoded input.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Utf8Length(System.String)">
            <summary>
                Determines the length of the UTF-8 encoding of the specified string.</summary>
            <param name="input">
                String to determined UTF-8 length of.</param>
            <returns>
                The length of the string in bytes when encoded as UTF-8.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.JsEscapeNull(System.String,RT.Util.ExtensionMethods.JsQuotes)">
            <summary>
                Returns a JavaScript- or JSON-compatible representation of the string with the appropriate characters escaped.
                Returns "null" if the input is null.</summary>
            <param name="input">
                String to escape.</param>
            <param name="quotes">
                Specifies what type of quotes to put around the result, if any.</param>
            <returns>
                JavaScript- or JSON-compatible representation of the input string, or the "null" keyword if the input is null.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.JsEscape(System.String,RT.Util.ExtensionMethods.JsQuotes)">
            <summary>
                Returns a JavaScript- or JSON-compatible representation of the string with the appropriate characters escaped.</summary>
            <param name="input">
                String to escape.</param>
            <param name="quotes">
                Specifies what type of quotes to put around the result, if any.</param>
            <returns>
                JavaScript- or JSON-compatible representation of the input string.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.AppendJsEscaped(System.Text.StringBuilder,System.String,RT.Util.ExtensionMethods.JsQuotes)">
            <summary>
                Appends a JavaScript- or JSON-compatible representation of the string with the appropriate characters escaped
                into the specified StringBuilder.</summary>
            <param name="sb">
                The StringBuilder to add the result to.</param>
            <param name="input">
                String to escape.</param>
            <param name="quotes">
                Specifies what type of quotes to put around the result, if any.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.SqlEscape(System.String)">
            <summary>
                Returns an SQL-compatible representation of the string in single-quotes with the appropriate characters
                escaped.</summary>
            <param name="input">
                String to escape.</param>
            <returns>
                SQL-compatible representation of the input string.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Base64UrlEncode(System.Byte[])">
            <summary>
                Encodes this byte array to base-64-url format, which is safe for use in URLs and does not contain the
                unnecessary padding when the number of bytes is not divisible by 3.</summary>
            <seealso cref="M:RT.Util.ExtensionMethods.StringExtensions.Base64UrlDecode(System.String)"/>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Base64UrlDecode(System.String)">
            <summary>
                Decodes this string from base-64-url encoding, which is safe for use in URLs and does not contain the
                unnecessary padding when the number of bytes is not divisible by 3, into a byte array.</summary>
            <seealso cref="M:RT.Util.ExtensionMethods.StringExtensions.Base64UrlEncode(System.Byte[])"/>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.CLiteralEscape(System.String)">
            <summary>
                Escapes all characters in this string whose code is less than 32 or form invalid UTF-16 using C/C#-compatible
                backslash escapes.</summary>
            <seealso cref="M:RT.Util.ExtensionMethods.StringExtensions.CLiteralUnescape(System.String)"/>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.CLiteralUnescape(System.String)">
            <summary>
                Reverses the escaping done by <see cref="M:RT.Util.ExtensionMethods.StringExtensions.CLiteralEscape(System.String)"/>. Note that unescaping is not fully C/C#-compatible
                in the sense that not all strings that are valid string literals in C/C# can be correctly unescaped by this
                procedure.</summary>
            <seealso cref="M:RT.Util.ExtensionMethods.StringExtensions.CLiteralEscape(System.String)"/>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Trim(System.Collections.Generic.IEnumerable{System.String})">
            <summary>Returns the specified collection, but with leading and trailing empty strings and nulls removed.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Fmt(System.String,System.Object[])">
            <summary>Formats a string in a way compatible with <see cref="M:System.String.Format(System.String,System.Object[])"/>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Fmt(System.String,System.IFormatProvider,System.Object[])">
            <summary>Formats a string in a way compatible with <see cref="M:System.String.Format(System.String,System.Object[])"/>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.FmtEnumerable(System.String,System.Object[])">
            <summary>
                Formats the specified objects into the format string. The result is an enumerable collection which enumerates
                parts of the format string interspersed with the arguments as appropriate.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.FmtEnumerable(System.String,System.IFormatProvider,System.Object[])">
            <summary>
                Formats the specified objects into the format string. The result is an enumerable collection which enumerates
                parts of the format string interspersed with the arguments as appropriate.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.WordWrap(System.String,System.Int32,System.Int32)">
            <summary>
                Word-wraps the current string to a specified width. Supports UNIX-style newlines and indented paragraphs.</summary>
            <remarks>
                <para>
                    The supplied text will be split into "paragraphs" at the newline characters. Every paragraph will begin on
                    a new line in the word-wrapped output, indented by the same number of spaces as in the input. All
                    subsequent lines belonging to that paragraph will also be indented by the same amount.</para>
                <para>
                    All multiple contiguous spaces will be replaced with a single space (except for the indentation).</para></remarks>
            <param name="text">
                Text to be word-wrapped.</param>
            <param name="maxWidth">
                The maximum number of characters permitted on a single line, not counting the end-of-line terminator.</param>
            <param name="hangingIndent">
                The number of spaces to add to each line except the first of each paragraph, thus creating a hanging
                indentation.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.WordWrap(RT.Util.Consoles.ConsoleColoredString,System.Int32,System.Int32)">
            <summary>
                Word-wraps the current <see cref="T:RT.Util.Consoles.ConsoleColoredString"/> to a specified width. Supports UNIX-style newlines
                and indented paragraphs.</summary>
            <remarks>
                <para>
                    The supplied text will be split into "paragraphs" at the newline characters. Every paragraph will begin on
                    a new line in the word-wrapped output, indented by the same number of spaces as in the input. All
                    subsequent lines belonging to that paragraph will also be indented by the same amount.</para>
                <para>
                    All multiple contiguous spaces will be replaced with a single space (except for the indentation).</para></remarks>
            <param name="text">
                Text to be word-wrapped.</param>
            <param name="maxWidth">
                The maximum number of characters permitted on a single line, not counting the end-of-line terminator.</param>
            <param name="hangingIndent">
                The number of spaces to add to each line except the first of each paragraph, thus creating a hanging
                indentation.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.UnifyLineEndings(System.String)">
            <summary>Attempts to detect Unix-style and Mac-style line endings and converts them to Windows (\r\n).</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.UrlStartsWith(System.String,System.String)">
            <summary>
                Determines whether the specified URL starts with the specified URL path. For example, the URL
                "/directory/file" starts with "/directory" but not with "/dir".</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.SubstringSafe(System.String,System.Int32)">
            <summary>
                Same as <see cref="M:System.String.Substring(System.Int32)"/> but does not throw exceptions when the start index falls outside
                the boundaries of the string. Instead the result is truncated as appropriate.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.SubstringSafe(System.String,System.Int32,System.Int32)">
            <summary>
                Same as <see cref="M:System.String.Substring(System.Int32,System.Int32)"/> but does not throw exceptions when the start index or length
                (or both) fall outside the boundaries of the string. Instead the result is truncated as appropriate.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.EqualsNoCase(System.String,System.String)">
            <summary>
                Determines whether this string is equal to the other string under the ordinal case-insensitive comparison
                (<see cref="F:System.StringComparison.OrdinalIgnoreCase"/>).</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.ContainsNoCase(System.String,System.String)">
            <summary>
                Determines whether this string contains the other string under the ordinal case-insensitive comparison (<see cref="F:System.StringComparison.OrdinalIgnoreCase"/>).</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.EndsWith(System.String,System.Nullable{System.Char})">
            <summary>
                Returns true if and only if this string ends with the specified character.</summary>
            <seealso cref="M:RT.Util.ExtensionMethods.StringExtensions.StartsWith(System.String,System.Nullable{System.Char})"/>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.StartsWith(System.String,System.Nullable{System.Char})">
            <summary>
                Returns true if and only if this string starts with the specified character.</summary>
            <seealso cref="M:RT.Util.ExtensionMethods.StringExtensions.EndsWith(System.String,System.Nullable{System.Char})"/>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Color(System.String,System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
                Colors the specified string in the specified console color.</summary>
            <param name="str">
                The string to color.</param>
            <param name="foreground">
                The foreground color to color the string in.</param>
            <param name="background">
                The background color to color the string in.</param>
            <returns>
                A potentially colorful string.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Color(System.Char,System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
                Colors the specified character in the specified console color.</summary>
            <param name="ch">
                The character to color.</param>
            <param name="foreground">
                The foreground color to color the character in.</param>
            <param name="background">
                The background color to color the character in.</param>
            <returns>
                A potentially colorful character.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.ColorSubstring(System.String,System.Int32,System.Int32,System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
                Colors the specified range within the specified string in a specified color.</summary>
            <param name="str">
                The string to partially colour.</param>
            <param name="index">
                The index at which to start colouring.</param>
            <param name="length">
                The number of characters to colour.</param>
            <param name="foreground">
                The foreground color to assign to the range of characters.</param>
            <param name="background">
                The background color to assign to the range of characters.</param>
            <returns>
                A potentially colorful string.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.ColorSubstring(System.String,System.Int32,System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
                Colors a range of characters beginning at a specified index within the specified string in a specified color.</summary>
            <param name="str">
                The string to partially colour.</param>
            <param name="index">
                The index at which to start colouring.</param>
            <param name="foreground">
                The colour to assign to the characters starting from the character at <paramref name="index"/>.</param>
            <param name="background">
                The background color to assign to the range of characters.</param>
            <returns>
                A potentially colorful string.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.ToConsoleColoredString(System.Object,System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
                Returns the specified object as a colored string.</summary>
            <param name="obj">
                The object to convert.</param>
            <param name="defaultForeground">
                The foreground color to color the string in if it is not already a <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>.</param>
            <param name="defaultBackground">
                The background color to color the string in if it is not already a <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>.</param>
            <returns>
                A potentially colorful string.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.FromHex(System.String)">
            <summary>Reconstructs a byte array from its hexadecimal representation (“hexdump”).</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Indent(System.String,System.Int32,System.Boolean)">
            <summary>
                Inserts spaces at the beginning of every line contained within the specified string.</summary>
            <param name="str">
                String to add indentation to.</param>
            <param name="by">
                Number of spaces to add.</param>
            <param name="indentFirstLine">
                If true (default), all lines are indented; otherwise, all lines except the first.</param>
            <returns>
                The indented string.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.RemoveCommonIndentation(System.String)">
            <summary>
                Removes spaces from the beginning of every line in such a way that the smallest indentation is reduced to
                zero. Lines which contain only whitespace are not considered in the calculation and may therefore become
                empty.</summary>
            <param name="str">
                The string to transform.</param>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Split(System.String,System.Int32)">
            <summary>
                Splits a string into chunks of equal size. The last chunk may be smaller than <paramref name="chunkSize"/>,
                but all chunks, if any, will contain at least 1 character.</summary>
            <param name="str">
                String to split into chunks.</param>
            <param name="chunkSize">
                Size of each chunk. Must be greater than zero.</param>
            <returns>
                A lazy-evaluated collection containing the chunks from the string.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Replace(System.String,System.String,System.String,System.StringComparison)">
            <summary>
                Returns a new string in which all occurrences of <paramref name="oldValue"/> in the current instance,
                identified using the specified string comparison, are replaced with <paramref name="newValue"/>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.Split(System.String,System.String[])">
            <summary>
                Returns a string array that contains the substrings in this string that are delimited by elements of a
                specified string array.</summary>
            <param name="str">
                String to be split.</param>
            <param name="separator">
                Strings that delimit the substrings in this string.</param>
            <returns>
                An array whose elements contain the substrings in this string that are delimited by one or more strings in
                separator. For more information, see the Remarks section.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.SplitNoEmpty(System.String,System.String[])">
            <summary>
                Returns a string array that contains the substrings in this string that are delimited by elements of a
                specified string array. Empty items (zero-length strings) are filtered out.</summary>
            <param name="str">
                String to be split.</param>
            <param name="separator">
                Strings that delimit the substrings in this string.</param>
            <returns>
                An array whose elements contain the substrings in this string that are delimited by one or more strings in
                separator. For more information, see the Remarks section.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.IsNumeric(System.String)">
            <summary>Determines whether the string contains only the characters 0-9.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.StringExtensions.AddLine(System.String,System.String)">
            <summary>Adds the specified line to the end of the current string. Returns the line if the current string is null.</summary>
        </member>
        <member name="P:RT.Util.ExtensionMethods.StringExtensions._urlAllowedBytes">
            <summary>Contains the set of ASCII characters allowed in a URL.</summary>
        </member>
        <member name="P:RT.Util.ExtensionMethods.StringExtensions._filenameDisallowedCharacters">
            <summary>Contains the set of characters disallowed in file names across all filesystems supported by our software.</summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.JsQuotes">
            <summary>Selects how the escaped JS string should be put into quotes.</summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.JsQuotes.Single">
            <summary>Put single quotes around the output. Single quotes are allowed in JavaScript only, but not in JSON.</summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.JsQuotes.Double">
            <summary>Put double quotes around the output. Double quotes are allowed both in JavaScript and JSON.</summary>
        </member>
        <member name="F:RT.Util.ExtensionMethods.JsQuotes.None">
            <summary>Do not put any quotes around the output. The escaped output may be surrounded with either type of quotes.</summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.WindowsFormsExtensions">
            <summary>
            Provides extension methods for Windows Forms controls.
            </summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.WindowsFormsExtensions.ParentTab(System.Windows.Forms.Control)">
            <summary>
            If this control is located within a <see cref="T:System.Windows.Forms.TabPage"/>, returns the first TabPage
            found by iterating recursively through its parents. Otherwise returns null.
            </summary>
        </member>
        <member name="T:RT.Util.ExtensionMethods.XmlLinqExtensions">
            <summary>
                Provides extension methods on the classes belonging to the LINQ XML API (<see cref="T:System.Xml.Linq.XElement"/>, <see cref="T:System.Xml.Linq.XContainer"/>, and <see cref="T:System.Xml.Linq.XAttribute"/>).</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.XmlLinqExtensions.Path(System.Xml.Linq.XContainer)">
            <summary>
                Returns the path to this element. The path consists of the names of all parents of this element up to the root
                node, separated with forward slashes.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.XmlLinqExtensions.Path(System.Xml.Linq.XAttribute)">
            <summary>
                Returns the path of this attribute. The path consists of the <see fref="XElement.Path()"/> of this attribute's
                element, followed by attribute name in square brackets.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.XmlLinqExtensions.ChkElement(System.Xml.Linq.XContainer,System.Xml.Linq.XName)">
            <summary>
                Returns the first element matching "name", or if none, throws an exception to say which element was missing
                which sub-element. This is a counterpart to <see cref="M:System.Xml.Linq.XContainer.Element(System.Xml.Linq.XName)"/>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.XmlLinqExtensions.ChkAttribute(System.Xml.Linq.XElement,System.Xml.Linq.XName)">
            <summary>
                Returns the first attribute matching "name", or if none, throws an exception to say which element was missing
                which attribute. This is a counterpart to <see cref="M:System.Xml.Linq.XElement.Attribute(System.Xml.Linq.XName)"/>.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.XmlLinqExtensions.AsDouble(System.Xml.Linq.XAttribute)">
            <summary>
                Returns the value of this attribute, converted to a double. If the conversion cannot succeed, throws an
                exception describing which attribute was expected to be a double.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.XmlLinqExtensions.ValueOrDefault``1(System.Xml.Linq.XElement,System.Xml.Linq.XName,``0)">
            <summary>
                Returns the value of this element, converted to type T. If the element does not exist returns the default
                value. If the element's value cannot be converted, throws an exception.</summary>
        </member>
        <member name="M:RT.Util.ExtensionMethods.XmlLinqExtensions.ElementI(System.Xml.Linq.XElement,System.String)">
            <summary>
                Gets the first (in document order) child element with the specified local name (ignoring the namespace).</summary>
            <param name="element">
                XML element to search.</param>
            <param name="name">
                The name to match.</param>
            <returns>
                The first element found or <c>null</c> if no such element exists.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.XmlLinqExtensions.ElementsI(System.Xml.Linq.XContainer,System.String)">
            <summary>
                Returns a filtered collection of the child elements of this element or document, in document order. Only
                elements that have the specified local name (ignoring the namespace) are included in the collection.</summary>
            <param name="element">
                XML element to search.</param>
            <param name="name">
                The name to match.</param>
            <returns>
                The first element found or <c>null</c> if no such element exists.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.XmlLinqExtensions.AttributeI(System.Xml.Linq.XElement,System.String)">
            <summary>
                Returns the first attribute of this element that has the specified local name (ignoring the namespace).</summary>
            <param name="element">
                XML element to search.</param>
            <param name="name">
                The name to match.</param>
            <returns>
                The first attribute if found or <c>null</c> if no such attribute exists.</returns>
        </member>
        <member name="M:RT.Util.ExtensionMethods.XmlLinqExtensions.AttributesI(System.Xml.Linq.XElement,System.String)">
            <summary>
                Returns a filtered collection of attributes of this element. Only elements that have the specified local name
                (ignoring the namespace) are included in the collection.</summary>
            <param name="element">
                XML element to search.</param>
            <param name="name">
                The name to match.</param>
            <returns>
                The filtered collection of attributes..</returns>
        </member>
        <member name="T:RT.Util.Dialogs.DlgType">
            <summary>
            Selects the type of dialog for <see cref="T:RT.Util.Dialogs.DlgMessage"/> to show. This specifies the sound and, unless
            explicitly overridden, the image and caption used to show the dialog.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgType.Info">
            <summary>Displays an information dialog.</summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgType.Question">
            <summary>Displays a question dialog.</summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgType.Warning">
            <summary>Displays a warning dialog.</summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgType.Error">
            <summary>Displays an error dialog.</summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgType.Custom">
            <summary>
            Displays a custom dialog. Custom defaults to no sound, no default image,
            and the caption defaults to the application name (all are overridable).
            Doesn't fully work, bug 15.
            </summary>
        </member>
        <member name="T:RT.Util.Dialogs.DlgMessageForm">
            <summary>
            This class is used by the <see cref="T:RT.Util.Dialogs.DlgMessage"/> class. This is the form used
            for displaying the message box.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessageForm.DefaultCaption">
            <summary>
            Change this variable to i18n'ize the default captions
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessageForm.DefaultImage">
            <summary>
            Change this variable to i18n'ize the default images
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessageForm.DefaultOKCaption">
            <summary>
            Change this variable to i18n'ize the default OK button text
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessageForm.#ctor">
            <summary>Creates an instance of the DlgMessage form.</summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessageForm.DlgMessage_FormClosing(System.Object,System.Windows.Forms.FormClosingEventArgs)">
            <summary>
            This takes care of the user closing the dialog. This is equivalent to pressing
            the Cancel button, whichever one it happens to be.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessageForm.components">
            <summary>
            Required designer variable.
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessageForm.Dispose(System.Boolean)">
            <summary>
            Clean up any resources being used.
            </summary>
            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessageForm.InitializeComponent">
            <summary>
            Required method for Designer support - do not modify
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="T:RT.Util.Dialogs.DlgMessage">
            <summary>
            Holds a number of settings that define a message dialog. Provides a method to show the
            dialog represented, as well as static methods to show some common dialog kinds with
            most settings at their defaults.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessage.Type">
            <summary>
            Specifies the message type. This selects a sound, an image and a caption to be used
            by default, unless explicitly overridden in the other fields of this class. Defaults
            to <see cref="F:RT.Util.Dialogs.DlgType.Info"/>.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessage.Buttons">
            <summary>
            Specifies the labels of the buttons to be displayed in the dialog. Defaults to null,
            in which case a single "OK" button will appear. May contain at most four elements.
            The labels may include the ampersand to indicate a shortcut key, or double-ampersand
            to include an ampersand.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessage.Message">
            <summary>
            Specifies the message to be displayed in the main message area. Defaults to null,
            in which case the message area will be empty.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessage.Caption">
            <summary>
            Specifies a caption to be displayed in the dialog's window title bar. Defaults to null,
            which means choose a title based on the <see cref="F:RT.Util.Dialogs.DlgMessage.Type"/> field.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessage.Image">
            <summary>
            Specifies an image to be displayed in the image area of the dialog. Defaults to null,
            which means use an image based on the <see cref="F:RT.Util.Dialogs.DlgMessage.Type"/> field. If the type is <see cref="F:RT.Util.Dialogs.DlgType.Custom"/>,
            and this field is null, no image will be displayed.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessage.Font">
            <summary>
            Specifies a font to be used for the message text (but not the buttons). Defaults to
            null, which means the default system font should be used.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessage.AcceptButton">
            <summary>
            Specifies the index of the accept button (the one selected if the user just presses Enter).
            Defaults to -1, which means the button with index 0.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessage.CancelButton">
            <summary>
            Specifies the index of the cancel button (the one selected if the user just presses Esc or Alt+F4).
            Defaults to -1, which means the button with the largest valid index.
            </summary>
        </member>
        <member name="F:RT.Util.Dialogs.DlgMessage.ShowInTaskbar">
            <summary>Specifies whether a taskbar icon is shown for the dialog box.</summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessage.Show">
            <summary>
            Shows a message using all the settings specified in this class instance. Anything
            left at defaults will be modified to hold the appropriate value. Any invalid settings
            will be flagged with an exception.
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessage.Show(System.String,RT.Util.Dialogs.DlgType)">
            <summary>
            Shows a message of the specified message type, using an appropriate caption, sound and image.
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessage.Show(System.String,System.String,RT.Util.Dialogs.DlgType,System.String[])">
            <summary>
            Shows a message of the specified message type, using an appropriate sound and image.
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessage.ShowInfo(System.String,System.String[])">
            <summary>
            Shows an informational message using the image, caption and sound appropriate for this message type.
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessage.ShowQuestion(System.String,System.String[])">
            <summary>
            Shows a question message using the image, caption and sound appropriate for this message type.
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessage.ShowWarning(System.String,System.String[])">
            <summary>
            Shows a warning message using the image, caption and sound appropriate for this message type.
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessage.ShowError(System.String,System.String[])">
            <summary>
            Shows an error message using the image, caption and sound appropriate for this message type.
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessage.deduceAndCheckSettings">
            <summary>
            Verifies that all the settings are correct, throwing an exception if not. For all
            settings left at defaults, stores a value deemed appropriate based on the other settings.
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessage.showAsIs">
            <summary>
            Creates a message form and fills in the controls using the current settings. Does not
            verify whether the settings are valid, so must only be used internally and only after the
            settings have been verified.
            </summary>
            <returns>The index of the button pressed.</returns>
        </member>
        <member name="M:RT.Util.Dialogs.DlgMessage.Translate(System.String,System.String,System.String,System.String,System.String)">
            <summary>Applies a translation to certain default strings, on the assumption that all messages are to be shown with the same translation.</summary>
            <param name="ok">Translation for the default "OK" button.</param>
            <param name="captionInfo">Translation for the default window caption for informational messages.</param>
            <param name="captionQuestion">Translation for the default window caption for question messages.</param>
            <param name="captionWarning">Translation for the default window caption for warning messages.</param>
            <param name="captionError">Translation for the default window caption for error messages.</param>
        </member>
        <member name="T:RT.Util.Forms.ManagedForm">
            <summary>
            A form which has all the proper minimize/restore methods, and which remembers its position and size between instances of the application.
            </summary>
        </member>
        <member name="M:RT.Util.Forms.ManagedForm.#ctor(RT.Util.Forms.ManagedForm.Settings)">
            <summary>Initialises a new managed form.</summary>
            <param name="settings">An object of type <see cref="T:RT.Util.Forms.ManagedForm.Settings"/> from which the position and size of the form are retrieved, and in which they will be stored.</param>
        </member>
        <member name="M:RT.Util.Forms.ManagedForm.ResizeAndReposition(System.Boolean)">
            <summary>
            Override to alter the window size, maximize state and/or position on first show and screen resolution changes.
            At the time of call, the current position/state/size are already set to the preferred ones, so it is possible to change
            them with respect to the "saved" values. If this method does nothing then the last saved values will be in effect.
            </summary>
            <param name="firstShow">True if this is the first time the form is displayed; false if it's a screen resolution change.</param>
        </member>
        <member name="M:RT.Util.Forms.ManagedForm.Show">
            <summary>
            Shows the form properly: if it is visible but minimized it will be restored
            and activated; otherwise the base implementation of Show will be invoked.
            </summary>
        </member>
        <member name="M:RT.Util.Forms.ManagedForm.ShowDialog(System.Windows.Forms.Form,System.Boolean)">
            <summary>Shows the form as a modal dialog box with the currently active window set as its owner.</summary>
            <param name="centerInForm">If specified, this form will be centered relative to the specified form.</param>
            <param name="repositionParentAfterwards">If set to true, will cause the parent to be moved after this form is closed to be centered with respect to it.</param>
            <returns>One of the <see cref="T:System.Windows.Forms.DialogResult"/> values.</returns>
        </member>
        <member name="P:RT.Util.Forms.ManagedForm.Minimized">
            <summary>Determines if the current managed form is minimised.</summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedForm.Maximized">
            <summary>Determines whether the current managed form is maximised, or is minimised and would be maximised if restored.</summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedForm.NormalWidth">
            <summary>Gets the width of the form when in normal state (i.e. not minimized or maximized).</summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedForm.NormalHeight">
            <summary>Gets the height of the form when in normal state (i.e. not minimized or maximized).</summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedForm.NormalLeft">
            <summary>Gets the X-coordinate of the form when in normal state (i.e. not minimized or maximized).</summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedForm.NormalTop">
            <summary>Gets the Y-coordinate of the form when in normal state (i.e. not minimized or maximized).</summary>
        </member>
        <member name="T:RT.Util.Forms.ManagedForm.Settings">
            <summary>Holds the settings of the <see cref="T:RT.Util.Forms.ManagedForm"/>.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedForm.Settings.DimensionsByRes">
            <summary>Holds form dimensions for each screen resolution.</summary>
        </member>
        <member name="M:RT.Util.Forms.ManagedForm.Settings.Clone">
            <summary>Returns a deep clone of this class.</summary>
        </member>
        <member name="T:RT.Util.Forms.ManagedForm.FormDimensions">
            <summary>Stores the size, position and maximized state of the form.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedForm.FormDimensions.Left">
            <summary>Stores the left (X) coordinate of the form when not maximized.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedForm.FormDimensions.Top">
            <summary>Stores the top (Y) coordinate of the form when not maximized.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedForm.FormDimensions.Width">
            <summary>Stores the width of the form when not maximized.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedForm.FormDimensions.Height">
            <summary>Stores the height of the form when not maximized.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedForm.FormDimensions.Maximized">
            <summary>Stores whether the form is maximized.</summary>
        </member>
        <member name="M:RT.Util.Forms.ManagedForm.FormDimensions.Clone">
            <summary>Returns a deep clone of this class.</summary>
        </member>
        <member name="T:RT.Util.Forms.ManagedWindow">
            <summary>
            A window which has all the proper minimize/restore methods, and which remembers its position and size between instances of the application.
            The size/position/state values are automatically reflected in the settings object whenever the user resizes or moves the window. If XAML
            supplies an initial size, that size will be used whenever no previous size is available (such as first run).
            </summary>
        </member>
        <member name="M:RT.Util.Forms.ManagedWindow.#ctor">
            <summary>We need a default constructor for the WPF designer to work. Don't invoke this or else the settings won't work.</summary>
        </member>
        <member name="M:RT.Util.Forms.ManagedWindow.#ctor(RT.Util.Forms.ManagedWindow.Settings)">
            <summary>Initialises a new managed window.</summary>
            <param name="settings">An object of type <see cref="T:RT.Util.Forms.ManagedWindow.Settings"/> from which the position and size of the form are retrieved, and in which they will be stored.</param>
        </member>
        <member name="M:RT.Util.Forms.ManagedWindow.Show">
            <summary>
            Shows the form properly: if it is visible but minimized it will be restored
            and activated; otherwise the base implementation of Show will be invoked.
            </summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedWindow.MaximizedByDefault">
            <summary>To make the window maximized by default (i.e. on first run, before the user has had a chance to move/resize the window),
            override this property and return true. This property is read from the window constructor. Do not use XAML to set Maximized to true
            because <see cref="T:RT.Util.Forms.ManagedWindow"/> will not be able to override that without flicker (and thus doesn't support that at all).</summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedWindow.Minimized">
            <summary>Determines if the current managed form is minimised.</summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedWindow.Maximized">
            <summary>Determines whether the current managed form is maximised, or is minimised and would be maximised if restored.</summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedWindow.NormalWidth">
            <summary>Gets the width of the form when in normal state (i.e. not minimized or maximized).</summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedWindow.NormalHeight">
            <summary>Gets the height of the form when in normal state (i.e. not minimized or maximized).</summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedWindow.NormalLeft">
            <summary>Gets the X-coordinate of the form when in normal state (i.e. not minimized or maximized).</summary>
        </member>
        <member name="P:RT.Util.Forms.ManagedWindow.NormalTop">
            <summary>Gets the Y-coordinate of the form when in normal state (i.e. not minimized or maximized).</summary>
        </member>
        <member name="T:RT.Util.Forms.ManagedWindow.Settings">
            <summary>Holds the settings of the <see cref="T:RT.Util.Forms.ManagedWindow"/>.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedWindow.Settings.DimensionsByRes">
            <summary>Holds form dimensions for each screen resolution.</summary>
        </member>
        <member name="T:RT.Util.Forms.ManagedWindow.WindowDimensions">
            <summary>Stores the size, position and maximized state of the form.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedWindow.WindowDimensions.Left">
            <summary>Stores the left (X) coordinate of the form when not maximized.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedWindow.WindowDimensions.Top">
            <summary>Stores the top (Y) coordinate of the form when not maximized.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedWindow.WindowDimensions.Width">
            <summary>Stores the width of the form when not maximized.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedWindow.WindowDimensions.Height">
            <summary>Stores the height of the form when not maximized.</summary>
        </member>
        <member name="F:RT.Util.Forms.ManagedWindow.WindowDimensions.Maximized">
            <summary>Stores whether the form is maximized.</summary>
        </member>
        <member name="T:RT.Util.FpsCounter">
            <summary>Measures frame rate statistics (or, more generally, statistics of any event occurring multiple times in real time).</summary>
        </member>
        <member name="M:RT.Util.FpsCounter.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.FpsCounter.CountFrame">
            <summary>Counts another frame and updates all statistics. Returns the time since the last frame,
            or null if this is the first counted frame.</summary>
        </member>
        <member name="M:RT.Util.FpsCounter.Reset">
            <summary>Resets all statistics.</summary>
        </member>
        <member name="P:RT.Util.FpsCounter.AverageFrameTime">
            <summary>Gets the average length of one frame over the past second, in seconds.</summary>
        </member>
        <member name="P:RT.Util.FpsCounter.MinFrameTime">
            <summary>Gets the minimum length of one frame over the past second, in seconds.</summary>
        </member>
        <member name="P:RT.Util.FpsCounter.MaxFrameTime">
            <summary>Gets the maximum length of one frame over the past second, in seconds.</summary>
        </member>
        <member name="P:RT.Util.FpsCounter.LastFrameTime">
            <summary>Gets the length of the last frame, in seconds.</summary>
        </member>
        <member name="P:RT.Util.FpsCounter.AverageFps">
            <summary>Gets the average number of frames per second, over the last second.</summary>
        </member>
        <member name="T:RT.Util.Geometry.ArcD">
            <summary>Encapsulates a double-precision circular arc.</summary>
        </member>
        <member name="F:RT.Util.Geometry.ArcD.Circle">
            <summary>The circle on which the arc lies.</summary>
        </member>
        <member name="F:RT.Util.Geometry.ArcD.AngleStart">
            <summary>The angle at which the arc starts.</summary>
        </member>
        <member name="F:RT.Util.Geometry.ArcD.AngleSweep">
            <summary>The angle which the arc sweeps.</summary>
        </member>
        <member name="T:RT.Util.Geometry.BoundingBoxD">
            <summary>
            Represents a bounding box, in terms of the minimal and maximal X and Y coordinates.
            </summary>
        </member>
        <member name="F:RT.Util.Geometry.BoundingBoxD.Xmin">
            <summary>The smallest X coordinate.</summary>
        </member>
        <member name="F:RT.Util.Geometry.BoundingBoxD.Xmax">
            <summary>The largest X coordinate.</summary>
        </member>
        <member name="F:RT.Util.Geometry.BoundingBoxD.Ymin">
            <summary>The smallest Y coordinate.</summary>
        </member>
        <member name="F:RT.Util.Geometry.BoundingBoxD.Ymax">
            <summary>The largest Y coordinate.</summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.FromPoint(System.Double,System.Double)">
            <summary>
            Returns a new BoundingBox bounding a single point.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.FromPoint(RT.Util.Geometry.PointD@)">
            <summary>
            Returns a new BoundingBox bounding a single point.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.FromPoint(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Returns a new BoundingBox bounding the two points specified.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.FromPoint(RT.Util.Geometry.PointD@,RT.Util.Geometry.PointD@)">
            <summary>
            Returns a new BoundingBox bounding the two points specified.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.FromPoint(RT.Util.Geometry.PointD,RT.Util.Geometry.PointD)">
            <summary>
            Returns a new BoundingBox bounding the two points specified.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.FromEdge(RT.Util.Geometry.EdgeD@)">
            <summary>
            Returns a new BoundingBox bounding the specified edge.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.FromEdge(RT.Util.Geometry.EdgeD)">
            <summary>
            Returns a new BoundingBox bounding the specified edge.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.FromCircle(RT.Util.Geometry.PointD@,System.Double)">
            <summary>
            Returns a new BoundingBox bounding the specified circle.
            </summary>
        </member>
        <member name="F:RT.Util.Geometry.BoundingBoxD.Empty">
            <summary>
            An empty bounding box - which doesn't have any bounds yet.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.AddPoint(RT.Util.Geometry.PointD)">
            <summary>
            Updates the bounding box by extending the bounds, if necessary, to include the specified point.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.AddCircle(RT.Util.Geometry.PointD@,System.Double)">
            <summary>
            Updates the bounding box by extending the bounds, if necessary, to include the specified circle.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.IntersectsWithRay(RT.Util.Geometry.EdgeD)">
            <summary>
            Returns true if this bounding box intersects with the specified ray.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.IntersectsWithBoundingBox(RT.Util.Geometry.BoundingBoxD)">
            <summary>
            Returns true if this bounding box intersects with the specified bounding box.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.BoundingBoxD.ContainsPoint(RT.Util.Geometry.PointD@)">
            <summary>
            Returns true iff this bounding box contains the specified point.
            </summary>
        </member>
        <member name="P:RT.Util.Geometry.BoundingBoxD.Width">
            <summary>Gets the difference between the larger and the smaller X limits of the box, i.e. the width of the bounding box.</summary>
        </member>
        <member name="P:RT.Util.Geometry.BoundingBoxD.Height">
            <summary>Gets the difference between the larger and the smaller Y limits of the box, i.e. the height of the bounding box.</summary>
        </member>
        <member name="T:RT.Util.Geometry.CircleD">
            <summary>Encapsulates a double-precision circle.</summary>
        </member>
        <member name="F:RT.Util.Geometry.CircleD.Center">
            <summary>Center of the circle.</summary>
        </member>
        <member name="F:RT.Util.Geometry.CircleD.Radius">
            <summary>Radius of the circle.</summary>
        </member>
        <member name="M:RT.Util.Geometry.CircleD.#ctor(System.Double,System.Double,System.Double)">
            <summary>Initialises a new <see cref="T:RT.Util.Geometry.CircleD"/> with the specified center co-ordinates and radius.</summary>
            <param name="x">Center X co-ordinate.</param>
            <param name="y">Center Y co-ordinate.</param>
            <param name="rad">Radius.</param>
        </member>
        <member name="M:RT.Util.Geometry.CircleD.#ctor(RT.Util.Geometry.PointD,System.Double)">
            <summary>Initialises a new <see cref="T:RT.Util.Geometry.CircleD"/> with the specified center co-ordinates and radius.</summary>
            <param name="center">Center co-ordinates.</param>
            <param name="rad">Radius.</param>
        </member>
        <member name="M:RT.Util.Geometry.CircleD.ToString">
            <summary>Provides a string representation of the current <see cref="T:RT.Util.Geometry.CircleD"/>.</summary>
            <returns>A string representation of the current <see cref="T:RT.Util.Geometry.CircleD"/>.</returns>
        </member>
        <member name="M:RT.Util.Geometry.CircleD.FindTangentCircles(RT.Util.Geometry.CircleD,System.Double)">
            <summary>
            Given this circle and another circle, tries to find a third and fourth circle with
            a given target radius such that the new circles are both tangent to the first two.
            </summary>
            <param name="other">The other circle.</param>
            <param name="targetRadius">Target radius for output circles.</param>
            <returns>The two output circles if they exist. If the input circles are further
            apart than twice the target radius, the desires circles do not exist and null is returned.</returns>
        </member>
        <member name="T:RT.Util.Geometry.EdgeD">
            <summary>
            A double-precision class encapsulating a straight line segment connecting two points.
            </summary>
        </member>
        <member name="F:RT.Util.Geometry.EdgeD.Start">
            <summary>Start point of the line segment.</summary>
        </member>
        <member name="F:RT.Util.Geometry.EdgeD.End">
            <summary>End point of the line segment.</summary>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.#ctor(RT.Util.Geometry.PointD,RT.Util.Geometry.PointD)">
            <summary>Initialises a line segment using the specified start and end point.</summary>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>Initialises a line segment using the start point (X1, Y1) and the end point (X2, Y2).</summary>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.#ctor(RT.Util.Geometry.PointD,System.Double)">
            <summary>Initialises a line segment starting at the specified point. The ending point is 1 unit away at the specified angle.</summary>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.IntersectsWith(RT.Util.Geometry.EdgeD)">
            <summary>Determines whether two edges intersect.</summary>
            <param name="r"><see cref="T:RT.Util.Geometry.EdgeD"/> to compare against.</param>
            <returns>True if both edges intersect with each other.</returns>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.Equals(RT.Util.Geometry.EdgeD)">
            <summary>Compares two <see cref="T:RT.Util.Geometry.EdgeD"/> objects for equality.</summary>
            <param name="other">Object to compare this one against.</param>
            <returns>True if considered equal.</returns>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.op_Equality(RT.Util.Geometry.EdgeD,RT.Util.Geometry.EdgeD)">
            <summary>Compares two <see cref="T:RT.Util.Geometry.EdgeD"/> objects for equality.</summary>
            <param name="one">First object to compare.</param>
            <param name="other">Object to compare against.</param>
            <returns>True if considered equal.</returns>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.op_Inequality(RT.Util.Geometry.EdgeD,RT.Util.Geometry.EdgeD)">
            <summary>Compares two <see cref="T:RT.Util.Geometry.EdgeD"/> objects for inequality.</summary>
            <param name="one">First object to compare.</param>
            <param name="other">Object to compare against.</param>
            <returns>True if considered different.</returns>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.GetHashCode">
            <summary>Returns a hash code for the current <see cref="T:RT.Util.Geometry.EdgeD"/>.</summary>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.ToString">
            <summary>Provides a string representation of the current <see cref="T:RT.Util.Geometry.EdgeD"/>.</summary>
            <returns>A string representation of the current <see cref="T:RT.Util.Geometry.EdgeD"/>.</returns>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.Equals(System.Object)">
            <summary>Compares two <see cref="T:RT.Util.Geometry.EdgeD"/> objects for equality.</summary>
            <param name="obj">Object to compare against.</param>
            <returns>True if considered equal.</returns>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.PointOnEdgeNearestTo(RT.Util.Geometry.PointD)">
            <summary>
            Returns a point on this edge that is as near as possible to
            the specified point.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.EdgeD.LambdaOfPointDroppedPerpendicularly(RT.Util.Geometry.PointD)">
            <summary>
            Calculates the projection of the specified point onto the line defined
            by this edge. Returns the Lambda of this point P, defined by P = Start + Lambda * (End - Start).
            Hence the lambda is 0 if the projection falls exactly onto the Start point, and 1 if it
            falls on the End point.
            </summary>
        </member>
        <member name="P:RT.Util.Geometry.EdgeD.Width">
            <summary>Returns the difference in the X-co-ordinates of the start and end point of this <see cref="T:RT.Util.Geometry.EdgeD"/>.</summary>
        </member>
        <member name="P:RT.Util.Geometry.EdgeD.Height">
            <summary>Returns the difference in the Y-co-ordinates of the start and end point of this <see cref="T:RT.Util.Geometry.EdgeD"/>.</summary>
        </member>
        <member name="T:RT.Util.Geometry.GeomUt">
            <summary>
            Contains general geometry-related utility functions.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.GeomUt.NormalizedAngle(System.Double)">
            <summary>
            "Unwinds" the specified angle so that it's in the range (-pi, pi]
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.GeomUt.AngleDifference(System.Double,System.Double)">
            <summary>
            Returns "angle" relative to "reference". I.e. if the angles are
            the same, returns 0; if angle is further anticlockwise, returns
            a positive number.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.GeomUt.ArePointsSameSideOfLine(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Given a vector l, and two points pt1 and pt2, splits the space into two
            halves on the line defined by the vector l. If both points lie in the same
            half, returns true. If they lie in different halves, or if at least one point
            lies on the dividing line, returns false.
            <remarks>
            If the vector l is of length 0, always returns false.
            </remarks>
            </summary>
        </member>
        <member name="T:RT.Util.Geometry.Intersect">
             <summary>
             A utility class to find / test for intersections between geometric shapes.
             
             <para>
             In this static class, function names always have the two basic shapes
             ordered using the following order:
             </para>
             
             <list type="number">
               <item>Line (infinite)</item>
               <item>Ray (starts at a point, extends to infinity)</item>
               <item>Segment (starts and ends on finite points)</item>
               <item>Circle</item>
               <item>BoundingBox (axis-aligned, ordered coords of each edge are known)</item>
             </list>
            
             <para>
             Hence it's always LineWithCircle, never CircleWithLine.
             </para>
             </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.LineWithLine(RT.Util.Geometry.EdgeD@,RT.Util.Geometry.EdgeD@,System.Double@,System.Double@)">
            <summary>
            Finds the point of intersection of two lines. The result is in terms of
            lambda along each of the lines. Point of intersection is defined as
            "line.Start + lambda * line", for each line. If the lines don't intersect,
            the lambdas are set to NaN.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.intersect(RT.Util.Geometry.PointD,RT.Util.Geometry.PointD,RT.Util.Geometry.PointD,RT.Util.Geometry.PointD)">
            <summary>
            <para>Finds the point of intersection between two lines, specified by
            two points each.</para>
            <para>If the lines coincide or are parallel, returns (NaN,NaN).</para>
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.LineWithCircle(RT.Util.Geometry.EdgeD@,RT.Util.Geometry.CircleD@,System.Double@,System.Double@)">
            <summary>
            Finds the points of intersection between a line and a circle. The results
            are two lambdas along the line, one for each point, or NaN if there is no
            intersection.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.LineWithCircle(RT.Util.Geometry.EdgeD,RT.Util.Geometry.CircleD,System.Double@,System.Double@)">
            <summary>
            Finds the points of intersection between a line and a circle. The results
            are two lambdas along the line, one for each point, or NaN if there is no
            intersection.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.RayWithSegment(RT.Util.Geometry.EdgeD@,RT.Util.Geometry.EdgeD@,System.Double@,System.Double@)">
            <summary>
            Calculates the intersection of a ray with a segment. Returns the result as the
            lambdas of the intersection point along the ray and the segment. If there is no
            intersection returns double.NaN in both lambdas.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.RayWithCircle(RT.Util.Geometry.EdgeD@,RT.Util.Geometry.CircleD@,System.Double@,System.Double@)">
            <summary>
            Finds the points of intersection between a ray and a circle. The
            resulting lambdas along the ray are sorted in ascending order, so
            the "first" intersection is always in lambda1 (if any). Lambda may
            be NaN if there is no intersection (or no "second" intersection).
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.RayWithArc(RT.Util.Geometry.EdgeD@,RT.Util.Geometry.ArcD@,System.Double@,System.Double@)">
            <summary>
            Finds the points of intersection between a ray and an arc. The
            resulting lambdas along the ray are sorted in ascending order, so
            the "first" intersection is always in lambda1 (if any). Lambda may
            be NaN if there is no intersection (or no "second" intersection).
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.RayWithRectangle(RT.Util.Geometry.EdgeD@,RT.Util.Geometry.RectangleD@,System.Double@,System.Double@)">
            <summary>
            Finds intersections between a ray and a rectangle. Returns the lambdas of intersections, if any,
            or NaN otherwise. Guarantees that lambda1 &lt; lambda2, and if only one of them is NaN then
            it's lambda2. Lambda is such that ray.Start + lambda * (ray.End - ray.Start) gives the point of intersection.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.RayWithBoundingBox(RT.Util.Geometry.EdgeD@,RT.Util.Geometry.BoundingBoxD@)">
            <summary>
            Checks for intersections between a ray and a bounding box. Returns true if
            there is at least one intersection.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.SegmentWithSegment(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            If the two specified line segments touch anywhere, returns true. Otherwise
            returns false.
            <remarks>
            Support for zero-length segments is partial - if one of the segments is of
            length 0 the result is correct, but if both are the result is always true.
            </remarks>
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.BoundingBoxWithBoundingBox(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Checks for intersections between the two bounding boxes specified by the coordinates.
            Returns true if there is at least one intersection. Coordinates ending with "1" belong
            to the first box, "2" to the second one. Coordinates starting with "f" MUST be less than
            or equal to ones starting with "t".
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.Intersect.BoundingBoxWithBoundingBox(RT.Util.Geometry.BoundingBoxD@,RT.Util.Geometry.BoundingBoxD@)">
            <summary>
            Checks for intersections between the two bounding boxes specified by the coordinates.
            Returns true if there is at least one intersection.
            </summary>
        </member>
        <member name="T:RT.Util.Geometry.PointD">
            <summary>Encapsulates a double-precision point.</summary>
        </member>
        <member name="F:RT.Util.Geometry.PointD.X">
            <summary>X-co-ordinate of the point.</summary>
        </member>
        <member name="F:RT.Util.Geometry.PointD.Y">
            <summary>Y-co-ordinate of the point.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.#ctor(System.Double,System.Double)">
            <summary>Initialises a double-precision point with the specified co-ordinates.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.#ctor(System.Double)">
            <summary>Initialises a double-precision point as a unit vector at a specified angle (in radians).</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.Equals(System.Object)">
            <summary>Compares two <see cref="T:RT.Util.Geometry.PointD"/> objects for equality.</summary>
            <param name="obj">Object to compare against.</param>
            <returns>True if considered equal.</returns>
        </member>
        <member name="M:RT.Util.Geometry.PointD.Equals(RT.Util.Geometry.PointD)">
            <summary>Compares two <see cref="T:RT.Util.Geometry.PointD"/> objects for equality.</summary>
            <param name="other">Object to compare against.</param>
            <returns>True if considered equal.</returns>
        </member>
        <member name="M:RT.Util.Geometry.PointD.op_Equality(RT.Util.Geometry.PointD,RT.Util.Geometry.PointD)">
            <summary>Compares two <see cref="T:RT.Util.Geometry.PointD"/> objects for equality.</summary>
            <param name="one">First object to compare.</param>
            <param name="other">Object to compare against.</param>
            <returns>True if considered equal.</returns>
        </member>
        <member name="M:RT.Util.Geometry.PointD.op_Inequality(RT.Util.Geometry.PointD,RT.Util.Geometry.PointD)">
            <summary>Compares two <see cref="T:RT.Util.Geometry.PointD"/> objects for inequality.</summary>
            <param name="one">First object to compare.</param>
            <param name="other">Object to compare against.</param>
            <returns>True if considered different.</returns>
        </member>
        <member name="M:RT.Util.Geometry.PointD.op_UnaryNegation(RT.Util.Geometry.PointD)">
            <summary>
            Performs unary vector negation (i.e. the resulting point is of the same length but
            pointing in the opposite direction).
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.op_Addition(RT.Util.Geometry.PointD,RT.Util.Geometry.PointD)">
            <summary>Performs vector addition, returning the result.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.op_Subtraction(RT.Util.Geometry.PointD,RT.Util.Geometry.PointD)">
            <summary>Performs vector subtraction, returning the result.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.op_Multiply(System.Double,RT.Util.Geometry.PointD)">
            <summary>Scales a vector by a scalar.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.op_Multiply(RT.Util.Geometry.PointD,System.Double)">
            <summary>Scales a vector by a scalar.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.op_Division(RT.Util.Geometry.PointD,System.Double)">
            <summary>Scales a vector by 1 / scalar (i.e. performs scalar division).</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.GetHashCode">
            <summary>Returns a hash code for the current <see cref="T:RT.Util.Geometry.PointD"/>.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.ToPointF">
            <summary>Converts the current <see cref="T:RT.Util.Geometry.PointD"/> object to a <see cref="T:System.Drawing.PointF"/>.
            Note that doing so loses precision.</summary>
            <returns>Lower-precision <see cref="T:System.Drawing.PointF"/>.</returns>
        </member>
        <member name="M:RT.Util.Geometry.PointD.ToString">
            <summary>Provides a string representation of the current <see cref="T:RT.Util.Geometry.PointD"/>.</summary>
            <returns>A string representation of the current <see cref="T:RT.Util.Geometry.PointD"/>.</returns>
        </member>
        <member name="M:RT.Util.Geometry.PointD.Abs">
            <summary>Returns the length of the vector represented by this <see cref="T:RT.Util.Geometry.PointD"/>.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.Theta">
            <summary>Returns the theta (angle) of the vector represented by this <see cref="T:RT.Util.Geometry.PointD"/>.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.Unit">
            <summary>Returns the unit vector in the same direction as this one.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.Dot(RT.Util.Geometry.PointD)">
            <summary>Returns the dot product of this vector with the specified one.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.CrossZ(RT.Util.Geometry.PointD)">
            <summary>
            Returns the Z-component of the cross product of this vector with the other one.
            The Z-component is equal to the product of: the lengths of the two vectors and the sin of the angle between them.
            Note that the X and Y components of a cross product of 2-vectors are always zero.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.Normal">
            <summary>Returns a vector normal to this one.</summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.DecomposeAlong(RT.Util.Geometry.PointD,System.Double@,System.Double@)">
            <summary>
            Decomposes this vector into components relative to another vector.
            </summary>
            <param name="vector">Reference vector.</param>
            <param name="lenAlong">Length of this vector along the reference vector.</param>
            <param name="lenNormal">Length of this vector normal to the reference vector.</param>
        </member>
        <member name="M:RT.Util.Geometry.PointD.RecomposeAlong(RT.Util.Geometry.PointD,System.Double,System.Double)">
            <summary>
            Performs the inverse of <see cref="M:RT.Util.Geometry.PointD.DecomposeAlong(RT.Util.Geometry.PointD,System.Double@,System.Double@)"/>, modifying the current vector in place.
            </summary>
            <param name="vector">Reference vector.</param>
            <param name="lenAlong">Length of this vector along the reference vector.</param>
            <param name="lenNormal">Length of this vector normal to the reference vector.</param>
        </member>
        <member name="M:RT.Util.Geometry.PointD.LengthProjectedOnto(RT.Util.Geometry.PointD)">
            <summary>
            Returns the length of this vector's projection onto the specified vector.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.LengthProjectedOnto(System.Double)">
            <summary>
            Returns the length of this vector's projection onto a unit vector at the specified angle.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.ProjectedOnto(RT.Util.Geometry.PointD)">
            <summary>
            Returns a vector representing the projection (i.e. length and direction) of
            this vector onto the specified vector.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.PointD.Rotated(System.Double)">
            <summary>
            Returns a vector of the same length as this vector, but rotated by the specified angle.
            </summary>
        </member>
        <member name="T:RT.Util.Geometry.PolygonD">
            <summary>
            This class encapsulates double-precision polygons.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.PolygonD.#ctor(System.Collections.Generic.IEnumerable{RT.Util.Geometry.PointD})">
            <summary>Initialises a polygon from a given list of vertices.</summary>
            <param name="vertices">Vertices (corner points) to initialise polygon from.</param>
        </member>
        <member name="M:RT.Util.Geometry.PolygonD.ContainsPoint(System.Drawing.Point)">
            <summary>
            Determines whether the current <see cref="T:RT.Util.Geometry.PolygonD"/> contains the specified point.
            </summary>
            <param name="point">Point to check.</param>
            <returns>True if the specified point lies inside the current <see cref="T:RT.Util.Geometry.PolygonD"/>.</returns>
        </member>
        <member name="M:RT.Util.Geometry.PolygonD.ContainsPoint(RT.Util.Geometry.PointD)">
            <summary>
            Determines whether the current <see cref="T:RT.Util.Geometry.PolygonD"/> contains the specified point.
            </summary>
            <param name="point">Point to check.</param>
            <returns>True if the specified point lies inside the current <see cref="T:RT.Util.Geometry.PolygonD"/>.</returns>
        </member>
        <member name="M:RT.Util.Geometry.PolygonD.Area">
            <summary>Determines the area of the current <see cref="T:RT.Util.Geometry.PolygonD"/>.</summary>
            <returns>The area of the current <see cref="T:RT.Util.Geometry.PolygonD"/> in square units.</returns>
        </member>
        <member name="M:RT.Util.Geometry.PolygonD.ToPointFArray">
            <summary>
            Converts the current <see cref="T:RT.Util.Geometry.PolygonD"/> to an array of <see cref="T:System.Drawing.PointF"/> structures.
            Note that this conversion loses precision.
            </summary>
            <returns>Array of converted vertices with lower precision.</returns>
        </member>
        <member name="P:RT.Util.Geometry.PolygonD.Vertices">
            <summary>Returns a list of vertices of the polygon.</summary>
        </member>
        <member name="T:RT.Util.Geometry.RectangleD">
            <summary>
            A double-precision rectangle struct, representing an axis-aligned rectangle.
            </summary>
        </member>
        <member name="F:RT.Util.Geometry.RectangleD.Empty">
            <summary>Represents an instance of the <see cref="T:RT.Util.Geometry.RectangleD"/> class with its members uninitialized.</summary>
        </member>
        <member name="F:RT.Util.Geometry.RectangleD.X">
            <summary>X coordinate of the minimal-X boundary</summary>
        </member>
        <member name="F:RT.Util.Geometry.RectangleD.Y">
            <summary>Y coordinate of the minimal-Y boundary</summary>
        </member>
        <member name="F:RT.Util.Geometry.RectangleD.Width">
            <summary>The width of the rectangle.</summary>
        </member>
        <member name="F:RT.Util.Geometry.RectangleD.Height">
            <summary>The height of the rectangle.</summary>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>Constructs a new rectangle.</summary>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.PerimeterIntersectsWith(RT.Util.Geometry.RectangleD)">
            <summary>Checks if the perimeter of this rectangle intersects with that of <paramref name="rect"/>.</summary>
            <param name="rect">Other rectangle to check against.</param>
            <returns>Returns true if the perimeter of this rectangle intersects with that of <paramref name="rect"/>.</returns>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.IntersectsWith(RT.Util.Geometry.RectangleD)">
            <summary>Determines if this rectangle intersects with <paramref name="rect"/>.</summary>
            <param name="rect">The rectangle to test.</param>
            <returns>Returns true if there is any intersection, otherwise false.</returns>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.Contains(System.Double,System.Double)">
            <summary>
            Returns true if the specified point is contained within the rectangle
            (or lies exactly on a boundary).
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.Equals(RT.Util.Geometry.RectangleD)">
            <summary>
            Returns true if the two rectangles have identical coordinates and sizes.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.op_Equality(RT.Util.Geometry.RectangleD,RT.Util.Geometry.RectangleD)">
            <summary>
            Compares two rectangles for equality using <see cref="M:RT.Util.Geometry.RectangleD.Equals(RT.Util.Geometry.RectangleD)"/>.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.op_Inequality(RT.Util.Geometry.RectangleD,RT.Util.Geometry.RectangleD)">
            <summary>
            Compares two rectangles for inequality using <see cref="M:RT.Util.Geometry.RectangleD.Equals(RT.Util.Geometry.RectangleD)"/>.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.GetHashCode">
            <summary>
            Returns a hash code for the rectangle.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.ToString">
            <summary>
            Converts the rectangle to a string representation.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.Equals(System.Object)">
            <summary>
            Compares a rectangle to any other object.
            </summary>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.Union(RT.Util.Geometry.RectangleD,RT.Util.Geometry.RectangleD)">
            <summary>Creates the smallest possible third rectangle that can contain both of two rectangles that form a union.</summary>
            <param name="a">A rectangle to union.</param>
            <param name="b">A rectangle to union.</param>
            <returns>A third <see cref="T:RT.Util.Geometry.RectangleD"/> structure that contains both of the two rectangles that form the union.</returns>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.Round">
            <summary>Converts the current <see cref="T:RT.Util.Geometry.RectangleD"/> to a <c>System.Drawing.Rectangle</c>
            by rounding the double-precision values to the nearest integer values.</summary>
            <returns>A <c>System.Drawing.Rectangle</c>.</returns>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.RoundOutward">
            <summary>Returns the smallest <c>System.Drawing.Rectangle</c> that entirely
            contains the current <see cref="T:RT.Util.Geometry.RectangleD"/>.</summary>
            <returns>A <c>System.Drawing.Rectangle</c>.</returns>
        </member>
        <member name="M:RT.Util.Geometry.RectangleD.op_Implicit(System.Drawing.Rectangle)~RT.Util.Geometry.RectangleD">
            <summary>Converts the specified <c>System.Drawing.Rectangle</c> structure to a <see cref="T:RT.Util.Geometry.RectangleD"/> structure.</summary>
            <param name="self">The <c>System.Drawing.Rectangle</c> structure to convert.</param>
            <returns>The <see cref="T:RT.Util.Geometry.RectangleD"/> structure that is converted from the specified <c>System.Drawing.Rectangle</c> structure.</returns>
        </member>
        <member name="P:RT.Util.Geometry.RectangleD.Left">
            <summary>Gets the X coordinate of the minimal-X boundary.</summary>
        </member>
        <member name="P:RT.Util.Geometry.RectangleD.Top">
            <summary>Gets the X coordinate of the minimal-Y boundary.</summary>
        </member>
        <member name="P:RT.Util.Geometry.RectangleD.Right">
            <summary>Gets the X coordinate of the maximal-X boundary.</summary>
        </member>
        <member name="P:RT.Util.Geometry.RectangleD.Bottom">
            <summary>Gets the Y coordinate of the maximal-Y boundary.</summary>
        </member>
        <member name="P:RT.Util.Geometry.RectangleD.IsEmpty">
            <summary>Returns true if this rectangle has zero extent.</summary>
        </member>
        <member name="T:RT.Util.GlobalKeyboardListener">
            <summary>Manages a global low-level keyboard hook.</summary>
        </member>
        <member name="F:RT.Util.GlobalKeyboardListener._hHook">
            <summary>Handle to the hook, need this to unhook and call the next hook</summary>
        </member>
        <member name="F:RT.Util.GlobalKeyboardListener._ctrl">
            <summary>Current state of each modifier key.</summary>
        </member>
        <member name="F:RT.Util.GlobalKeyboardListener._alt">
            <summary>Current state of each modifier key.</summary>
        </member>
        <member name="F:RT.Util.GlobalKeyboardListener._shift">
            <summary>Current state of each modifier key.</summary>
        </member>
        <member name="F:RT.Util.GlobalKeyboardListener._win">
            <summary>Current state of each modifier key.</summary>
        </member>
        <member name="F:RT.Util.GlobalKeyboardListener._hook">
            <summary>Keeps the managed delegate referenced so that the garbage collector doesn’t collect it.</summary>
        </member>
        <member name="M:RT.Util.GlobalKeyboardListener.#ctor">
            <summary>
                Initializes a new instance of the <see cref="T:RT.Util.GlobalKeyboardListener"/> class and installs the keyboard hook.</summary>
        </member>
        <member name="M:RT.Util.GlobalKeyboardListener.Finalize">
            <summary>
                Releases unmanaged resources and performs other cleanup operations before the <see cref="T:RT.Util.GlobalKeyboardListener"/> is reclaimed by garbage collection and uninstalls the keyboard hook.</summary>
        </member>
        <member name="M:RT.Util.GlobalKeyboardListener.Dispose">
            <summary>Unregisters the hook and disposes the object.</summary>
        </member>
        <member name="M:RT.Util.GlobalKeyboardListener.hookProc(System.Int32,System.Int32,RT.Util.WinAPI.KeyboardHookStruct@)">
            <summary>
                The callback for the keyboard hook.</summary>
            <param name="code">
                The hook code. If this is &lt; 0, the callback shouldn’t do anyting.</param>
            <param name="wParam">
                The event type. Only <c>WM_(SYS)?KEY(DOWN|UP)</c> events are handled.</param>
            <param name="lParam">
                Information about the key pressed/released.</param>
        </member>
        <member name="P:RT.Util.GlobalKeyboardListener.HookedKeys">
            <summary>The collections of keys to watch for. This is ignored if <see cref="P:RT.Util.GlobalKeyboardListener.HookAllKeys"/> is set to true.</summary>
        </member>
        <member name="P:RT.Util.GlobalKeyboardListener.HookAllKeys">
            <summary>
                Gets or sets a value indicating whether all keys are listened for. If this is set to true, <see cref="P:RT.Util.GlobalKeyboardListener.HookedKeys"/> is ignored.</summary>
        </member>
        <member name="E:RT.Util.GlobalKeyboardListener.KeyDown">
            <summary>Occurs when one of the hooked keys is pressed.</summary>
        </member>
        <member name="E:RT.Util.GlobalKeyboardListener.KeyUp">
            <summary>Occurs when one of the hooked keys is released.</summary>
        </member>
        <member name="T:RT.Util.ModifierKeysState">
            <summary>Encapsulates the current state of modifier keys.</summary>
        </member>
        <member name="M:RT.Util.ModifierKeysState.#ctor(System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.ModifierKeysState.op_Equality(RT.Util.ModifierKeysState,RT.Util.ModifierKeysState)">
            <summary>Compares the modifiers and returns true iff the two are equal.</summary>
        </member>
        <member name="M:RT.Util.ModifierKeysState.op_Inequality(RT.Util.ModifierKeysState,RT.Util.ModifierKeysState)">
            <summary>Compares the modifiers and returns true iff the two are not equal.</summary>
        </member>
        <member name="M:RT.Util.ModifierKeysState.Equals(System.Object)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.ModifierKeysState.GetHashCode">
            <summary>Override; see base.</summary>
        </member>
        <member name="P:RT.Util.ModifierKeysState.Ctrl">
            <summary>Gets the state of the Control key (true if left OR right is down).</summary>
        </member>
        <member name="P:RT.Util.ModifierKeysState.Alt">
            <summary>Gets the state of the Alt key (true if left OR right is down).</summary>
        </member>
        <member name="P:RT.Util.ModifierKeysState.Shift">
            <summary>Gets the state of the Shift key (true if left OR right is down).</summary>
        </member>
        <member name="P:RT.Util.ModifierKeysState.Win">
            <summary>Gets the state of the Windows key (true if left OR right is down).</summary>
        </member>
        <member name="T:RT.Util.GlobalKeyEventArgs">
            <summary>Contains arguments for the KeyUp/KeyDown event in a <see cref="T:RT.Util.GlobalKeyboardListener"/>.</summary>
        </member>
        <member name="M:RT.Util.GlobalKeyEventArgs.#ctor(System.Windows.Forms.Keys,System.Int32,RT.Util.ModifierKeysState)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.GlobalKeyEventArgs.VirtualKeyCode">
            <summary>The virtual-key code of the key being pressed or released.</summary>
        </member>
        <member name="P:RT.Util.GlobalKeyEventArgs.ScanCode">
            <summary>The scancode of the key being pressed or released.</summary>
        </member>
        <member name="P:RT.Util.GlobalKeyEventArgs.ModifierKeys">
            <summary>Current state of the modifier keys</summary>
        </member>
        <member name="P:RT.Util.GlobalKeyEventArgs.Handled">
            <summary>Set this to ‘true’ to prevent further processing of the keystroke (i.e. to ‘swallow’ it).</summary>
        </member>
        <member name="T:RT.Util.GlobalKeyEventHandler">
            <summary>Used to trigger the KeyUp/KeyDown events in <see cref="T:RT.Util.GlobalKeyboardListener"/>.</summary>
        </member>
        <member name="T:RT.Util.Dialogs.InputBox">
            <summary>
            Provides a simple dialog containing a single-line text box,
            prompting the user to input some text.
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.InputBox.#ctor">
            <summary>Initialises a new <see cref="T:RT.Util.Dialogs.InputBox"/> instance.</summary>
        </member>
        <member name="M:RT.Util.Dialogs.InputBox.GetLine(System.String,System.String,System.String,System.String,System.String,System.Boolean)">
            <summary>Prompts the user for input.</summary>
            <param name="prompt">Message to display to prompt the user.</param>
            <param name="default">Initial value to populate the input box with.</param>
            <param name="caption">Caption to use in the title bar of the dialog.</param>
            <param name="okButtonText">Caption for the OK button.</param>
            <param name="cancelButtonText">Caption for the Cancel button.</param>
            <param name="useMultilineBox">If true, a multi-line textbox is used, allowing the user to enter multiple lines of text.</param>
            <returns>The text entered by the user, or null if the user selected the Cancel button.</returns>
        </member>
        <member name="F:RT.Util.Dialogs.InputBox.components">
            <summary>
            Required designer variable.
            </summary>
        </member>
        <member name="M:RT.Util.Dialogs.InputBox.Dispose(System.Boolean)">
            <summary>
            Clean up any resources being used.
            </summary>
            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        </member>
        <member name="M:RT.Util.Dialogs.InputBox.InitializeComponent">
            <summary>
            Required method for Designer support - do not modify
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="T:RT.Util.Json.NumericConversionOptions">
            <summary>
                Specifies the degree of strictness or leniency when converting a <see cref="T:RT.Util.Json.JsonValue"/> to a numerical type such
                as <c>int</c> or <c>double</c>.</summary>
        </member>
        <member name="F:RT.Util.Json.NumericConversionOptions.Strict">
            <summary>
                The conversion only succeeds if the object is a <see cref="T:RT.Util.Json.JsonNumber"/> and its value is exactly
                representable by the target type.</summary>
        </member>
        <member name="F:RT.Util.Json.NumericConversionOptions.AllowConversionFromString">
            <summary>The conversion succeeds if the object is a <see cref="T:RT.Util.Json.JsonString"/> with numerical content.</summary>
        </member>
        <member name="F:RT.Util.Json.NumericConversionOptions.AllowZeroFractionToInteger">
            <summary>
                Ignored unless <see cref="F:RT.Util.Json.NumericConversionOptions.AllowConversionFromString"/> is also specified. A conversion to an integer type
                succeeds if the string contains a decimal followed by a zero fractional part.</summary>
        </member>
        <member name="F:RT.Util.Json.NumericConversionOptions.AllowConversionFromBool">
            <summary>
                The conversion succeeds if the object is a <see cref="T:RT.Util.Json.JsonBool"/>, which will convert to 0 if false and 1 if
                true.</summary>
        </member>
        <member name="F:RT.Util.Json.NumericConversionOptions.AllowTruncation">
            <summary>
                Allows conversion of non-integral numbers to integer types by truncation (rounding towards zero). If <see cref="F:RT.Util.Json.NumericConversionOptions.AllowConversionFromString"/> is specified, strings containing a decimal part are also converted and
                truncated when converting to an integer type.</summary>
        </member>
        <member name="F:RT.Util.Json.NumericConversionOptions.Lenient">
            <summary>Specifies maximum leniency.</summary>
        </member>
        <member name="T:RT.Util.Json.StringConversionOptions">
            <summary>Specifies the degree of strictness or leniency when converting a <see cref="T:RT.Util.Json.JsonValue"/> to a <c>string</c>.</summary>
        </member>
        <member name="F:RT.Util.Json.StringConversionOptions.Strict">
            <summary>The conversion only succeeds if the object is a <see cref="T:RT.Util.Json.JsonString"/>.</summary>
        </member>
        <member name="F:RT.Util.Json.StringConversionOptions.AllowConversionFromNumber">
            <summary>The conversion succeeds if the object is a <see cref="T:RT.Util.Json.JsonNumber"/>.</summary>
        </member>
        <member name="F:RT.Util.Json.StringConversionOptions.AllowConversionFromBool">
            <summary>The conversion succeeds if the object is a <see cref="T:RT.Util.Json.JsonBool"/>.</summary>
        </member>
        <member name="F:RT.Util.Json.StringConversionOptions.Lenient">
            <summary>Specifies maximum leniency.</summary>
        </member>
        <member name="T:RT.Util.Json.BoolConversionOptions">
            <summary>Specifies the degree of strictness or leniency when converting a <see cref="T:RT.Util.Json.JsonValue"/> to a <c>bool</c>.</summary>
        </member>
        <member name="F:RT.Util.Json.BoolConversionOptions.Strict">
            <summary>The conversion only succeeds if the object is a <see cref="T:RT.Util.Json.JsonBool"/>.</summary>
        </member>
        <member name="F:RT.Util.Json.BoolConversionOptions.AllowConversionFromNumber">
            <summary>
                The conversion succeeds if the object is a <see cref="T:RT.Util.Json.JsonNumber"/>. 0 (zero) is converted to false, all other
                values to true.</summary>
        </member>
        <member name="F:RT.Util.Json.BoolConversionOptions.AllowConversionFromString">
            <summary>
                The conversion succeeds if the object is a <see cref="T:RT.Util.Json.JsonString"/> with specific content. The set of
                permissible strings is controlled by <see cref="F:RT.Util.Json.JsonString.True"/>, <see cref="F:RT.Util.Json.JsonString.False"/> and <see cref="F:RT.Util.Json.JsonString.TrueFalseComparer"/>.</summary>
        </member>
        <member name="F:RT.Util.Json.BoolConversionOptions.Lenient">
            <summary>Specifies maximum leniency.</summary>
        </member>
        <member name="T:RT.Util.Json.JsonParseException">
            <summary>Represents a JSON parsing exception.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonParseException.Line">
            <summary>Gets the line number at which the parse error occurred.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonParseException.Column">
            <summary>Gets the column number at which the parse error occurred.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonParseException.Index">
            <summary>Gets the character index at which the parse error occurred.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonParseException.Snippet">
            <summary>A snippet of the JSON string at which the parse error occurred.</summary>
        </member>
        <member name="T:RT.Util.Json.JsonParserState">
            <summary>Keeps track of the JSON parser state.</summary>
        </member>
        <member name="T:RT.Util.Json.JsonValue">
            <summary>Encapsulates a JSON value (e.g. a boolean, a number, a string, a list, a dictionary, etc.)</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.Parse(System.String,System.Boolean)">
            <summary>
                Parses the specified string into a JSON value.</summary>
            <param name="jsonValue">
                A string containing JSON syntax.</param>
            <param name="allowJavaScript">
                <para>
                    True to allow certain notations that are allowed in JavaScript but not strictly in JSON:</para>
                <list type="bullet">
                    <item><description>
                        allows keys in dictionaries to be unquoted</description></item>
                    <item><description>
                        allows strings to be delimited with single-quotes in addition to double-quotes</description></item></list></param>
            <returns>
                A <see cref="T:RT.Util.Json.JsonValue"/> instance representing the value.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonValue.TryParse(System.String,RT.Util.Json.JsonValue@)">
            <summary>
                Attempts to parse the specified string into a JSON value.</summary>
            <param name="jsonValue">
                A string containing JSON syntax.</param>
            <param name="result">
                Receives the <see cref="T:RT.Util.Json.JsonValue"/> representing the value, or null if unsuccessful. (But note that null is
                also a possible valid value in case of success.)</param>
            <returns>
                True if parsing was successful; otherwise, false.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.String)~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified string.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Boolean)~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified boolean.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Nullable{System.Boolean})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified nullable boolean.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Double)~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified double.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Nullable{System.Double})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified nullable double.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Decimal)~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified decimal.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Nullable{System.Decimal})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified nullable decimal.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Int64)~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified long.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Nullable{System.Int64})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified nullable long.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Int32)~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified int.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Nullable{System.Int32})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified nullable int.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.String[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Boolean[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Nullable{System.Boolean}[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Double[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Nullable{System.Double}[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Decimal[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Nullable{System.Decimal}[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Int64[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Nullable{System.Int64}[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Int32[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Nullable{System.Int32}[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(RT.Util.Json.JsonValue[])~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified array.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{System.String})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{System.Boolean})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{System.Nullable{System.Boolean}})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{System.Double})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{System.Nullable{System.Double}})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{System.Decimal})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{System.Nullable{System.Decimal}})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{System.Int64})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{System.Nullable{System.Int64}})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{System.Int32})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{System.Nullable{System.Int32}})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Implicit(System.Collections.Generic.List{RT.Util.Json.JsonValue})~RT.Util.Json.JsonValue">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonValue"/> from the specified list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.String">
            <summary>See <see cref="F:RT.Util.Json.StringConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Boolean">
            <summary>See <see cref="F:RT.Util.Json.BoolConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Nullable{System.Boolean}">
            <summary>See <see cref="F:RT.Util.Json.BoolConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Double">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Nullable{System.Double}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Decimal">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Nullable{System.Decimal}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Int64">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Nullable{System.Int64}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Int32">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Nullable{System.Int32}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.String[]">
            <summary>See <see cref="F:RT.Util.Json.StringConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Boolean[]">
            <summary>See <see cref="F:RT.Util.Json.BoolConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Nullable{System.Boolean}[]">
            <summary>See <see cref="F:RT.Util.Json.BoolConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Double[]">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Nullable{System.Double}[]">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Decimal[]">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Nullable{System.Decimal}[]">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Int64[]">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Nullable{System.Int64}[]">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Int32[]">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Nullable{System.Int32}[]">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Collections.Generic.List{System.String}">
            <summary>See <see cref="F:RT.Util.Json.StringConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Collections.Generic.List{System.Boolean}">
            <summary>See <see cref="F:RT.Util.Json.BoolConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Collections.Generic.List{System.Nullable{System.Boolean}}">
            <summary>See <see cref="F:RT.Util.Json.BoolConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Collections.Generic.List{System.Double}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Collections.Generic.List{System.Nullable{System.Double}}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Collections.Generic.List{System.Decimal}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Collections.Generic.List{System.Nullable{System.Decimal}}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Collections.Generic.List{System.Int64}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Collections.Generic.List{System.Nullable{System.Int64}}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Collections.Generic.List{System.Int32}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.op_Explicit(RT.Util.Json.JsonValue)~System.Collections.Generic.List{System.Nullable{System.Int32}}">
            <summary>See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetList">
            <summary>
                Converts the current value to <see cref="T:RT.Util.Json.JsonList"/> if it is a <see cref="T:RT.Util.Json.JsonList"/>; otherwise, throws.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetListSafe">
            <summary>
                Converts the current value to <see cref="T:RT.Util.Json.JsonList"/> if it is a <see cref="T:RT.Util.Json.JsonList"/>; otherwise, returns
                null.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.getList(System.Boolean)">
            <summary>
                Converts the current value to <see cref="T:RT.Util.Json.JsonList"/>.</summary>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetDict">
            <summary>
                Converts the current value to <see cref="T:RT.Util.Json.JsonDict"/> if it is a <see cref="T:RT.Util.Json.JsonDict"/>; otherwise, throws.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetDictSafe">
            <summary>
                Converts the current value to <see cref="T:RT.Util.Json.JsonDict"/> if it is a <see cref="T:RT.Util.Json.JsonDict"/>; otherwise, returns
                null.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.getDict(System.Boolean)">
            <summary>
                Converts the current value to <see cref="T:RT.Util.Json.JsonDict"/>.</summary>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetString(RT.Util.Json.StringConversionOptions)">
            <summary>Converts the current value to a <c>string</c>. Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetStringLenient">
            <summary>
                Converts the current value to a <c>string</c> by using the <see cref="F:RT.Util.Json.StringConversionOptions.Lenient"/>
                option. Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetStringSafe(RT.Util.Json.StringConversionOptions)">
            <summary>Converts the current value to a <c>string</c>. Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetStringLenientSafe">
            <summary>
                Converts the current value to a <c>string</c> by using the <see cref="F:RT.Util.Json.StringConversionOptions.Lenient"/>
                option. Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.getString(RT.Util.Json.StringConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>string</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetBool(RT.Util.Json.BoolConversionOptions)">
            <summary>Converts the current value to a <c>bool</c>. Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetBoolLenient">
            <summary>
                Converts the current value to a <c>bool</c> by using the <see cref="F:RT.Util.Json.BoolConversionOptions.Lenient"/> option.
                Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetBoolSafe(RT.Util.Json.BoolConversionOptions)">
            <summary>Converts the current value to a <c>bool</c>. Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetBoolLenientSafe">
            <summary>
                Converts the current value to a <c>bool</c> by using the <see cref="F:RT.Util.Json.BoolConversionOptions.Lenient"/> option.
                Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.getBool(RT.Util.Json.BoolConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>bool</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetDouble(RT.Util.Json.NumericConversionOptions)">
            <summary>Converts the current value to a <c>double</c>. Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetDoubleLenient">
            <summary>
                Converts the current value to a <c>double</c> by using the <see cref="F:RT.Util.Json.NumericConversionOptions.Lenient"/>
                option. Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetDoubleSafe(RT.Util.Json.NumericConversionOptions)">
            <summary>Converts the current value to a <c>double</c>. Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetDoubleLenientSafe">
            <summary>
                Converts the current value to a <c>double</c> by using the <see cref="F:RT.Util.Json.NumericConversionOptions.Lenient"/>
                option. Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.getDouble(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>double</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetDecimal(RT.Util.Json.NumericConversionOptions)">
            <summary>Converts the current value to a <c>decimal</c>. Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetDecimalLenient">
            <summary>
                Converts the current value to a <c>decimal</c> by using the <see cref="F:RT.Util.Json.NumericConversionOptions.Lenient"/>
                option. Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetDecimalSafe(RT.Util.Json.NumericConversionOptions)">
            <summary>Converts the current value to a <c>decimal</c>. Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetDecimalLenientSafe">
            <summary>
                Converts the current value to a <c>decimal</c> by using the <see cref="F:RT.Util.Json.NumericConversionOptions.Lenient"/>
                option. Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.getDecimal(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>decimal</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetLong(RT.Util.Json.NumericConversionOptions)">
            <summary>Converts the current value to a <c>long</c>. Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetLongLenient">
            <summary>
                Converts the current value to a <c>long</c> by using the <see cref="F:RT.Util.Json.NumericConversionOptions.Lenient"/>
                option. Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetLongSafe(RT.Util.Json.NumericConversionOptions)">
            <summary>Converts the current value to a <c>long</c>. Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetLongLenientSafe">
            <summary>
                Converts the current value to a <c>long</c> by using the <see cref="F:RT.Util.Json.NumericConversionOptions.Lenient"/>
                option. Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.getLong(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>long</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetInt(RT.Util.Json.NumericConversionOptions)">
            <summary>Converts the current value to an <c>int</c>. Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetIntLenient">
            <summary>
                Converts the current value to an <c>int</c> by using the <see cref="F:RT.Util.Json.NumericConversionOptions.Lenient"/>
                option. Throws if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetIntSafe(RT.Util.Json.NumericConversionOptions)">
            <summary>Converts the current value to an <c>int</c>. Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetIntLenientSafe">
            <summary>
                Converts the current value to an <c>int</c> by using the <see cref="F:RT.Util.Json.NumericConversionOptions.Lenient"/>
                option. Returns null if the conversion is not valid.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.getInt(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>int</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonValue.Clear">
            <summary>
                Removes all items from the current value if it is a <see cref="T:RT.Util.Json.JsonList"/> or <see cref="T:RT.Util.Json.JsonDict"/>;
                otherwise, throws.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.Add(RT.Util.Json.JsonValue)">
            <summary>
                Add the specified <paramref name="item"/> to the current list if it is a <see cref="T:RT.Util.Json.JsonList"/>; otherwise,
                throws.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.AddRange(System.Collections.Generic.IEnumerable{RT.Util.Json.JsonValue})">
            <summary>
                Add the specified <paramref name="items"/> to the current list if it is a <see cref="T:RT.Util.Json.JsonList"/>; otherwise,
                throws.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.Remove(RT.Util.Json.JsonValue)">
            <summary>
                Removes the first instance of the specified <paramref name="item"/> from the current list if it is a <see cref="T:RT.Util.Json.JsonList"/>; otherwise, throws.</summary>
            <returns>
                True if an item was removed; otherwise, false.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonValue.Contains(RT.Util.Json.JsonValue)">
            <summary>
                Determines whether the specified <paramref name="item"/> is contained in the current list if it is a <see cref="T:RT.Util.Json.JsonList"/>; otherwise, throws.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.Insert(System.Int32,RT.Util.Json.JsonValue)">
            <summary>
                Inserts the specified <paramref name="item"/> at the specified <paramref name="index"/> to the current list if
                it is a <see cref="T:RT.Util.Json.JsonList"/>; otherwise, throws.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.RemoveAt(System.Int32)">
            <summary>
                Removes the item at the specified <paramref name="index"/> from the current list if it is a <see cref="T:RT.Util.Json.JsonList"/>; otherwise, throws.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.IndexOf(RT.Util.Json.JsonValue)">
            <summary>
                Returns the index of the first occurrence of the specified <paramref name="item"/> within the current list if
                it is a <see cref="T:RT.Util.Json.JsonList"/>; otherwise, throws.</summary>
            <returns>
                The index of the item, or -1 if the item is not in the list.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonValue.CopyTo(RT.Util.Json.JsonValue[],System.Int32)">
            <summary>
                Copies the entire list to a compatible one-dimensional <paramref name="array"/>, starting at the specified
                <paramref name="arrayIndex"/> of the target array, if this is a <see cref="T:RT.Util.Json.JsonList"/>; otherwise, throws.</summary>
            <param name="array">
                The one-dimensional array that is the destination of the elements copied from the list. The array must have
                zero-based indexing.</param>
            <param name="arrayIndex">
                The zero-based index in array at which copying begins.</param>
        </member>
        <member name="M:RT.Util.Json.JsonValue.TryGetValue(System.String,RT.Util.Json.JsonValue@)">
            <summary>
                Attempts to retrieve the value associated with the specified <paramref name="key"/> if this is a <see cref="T:RT.Util.Json.JsonDict"/>; otherwise, throws.</summary>
            <param name="key">
                The key for which to try to retrieve the value.</param>
            <param name="value">
                Receives the value associated with the specified <paramref name="key"/>, or null if the key is not in the
                dictionary. (Note that null may also be a valid value in case of success.)</param>
            <returns>
                True if the key was in the dictionary; otherwise, false.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonValue.Add(System.String,RT.Util.Json.JsonValue)">
            <summary>
                Adds the specified key/value pair to the dictionary if this is a <see cref="T:RT.Util.Json.JsonDict"/>; otherwise, throws.</summary>
            <param name="key">
                The key to add.</param>
            <param name="value">
                The value to add.</param>
        </member>
        <member name="M:RT.Util.Json.JsonValue.AddRange(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,RT.Util.Json.JsonValue}})">
            <summary>
                Add the specified <paramref name="items"/> to the current dictionary if it is a <see cref="T:RT.Util.Json.JsonDict"/>;
                otherwise, throws.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.Remove(System.String)">
            <summary>
                Removes the entry with the specified <paramref name="key"/> from the dictionary if this is a <see cref="T:RT.Util.Json.JsonDict"/>; otherwise, throws.</summary>
            <param name="key">
                The key that identifies the entry to remove.</param>
            <returns>
                True if an entry was removed; false if the key wasn’t in the dictionary.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonValue.ContainsKey(System.String)">
            <summary>
                Determines whether an entry with the specified <paramref name="key"/> exists in the dictionary if this is a
                <see cref="T:RT.Util.Json.JsonDict"/>; otherwise, throws.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.Equals(System.Object)">
            <summary>
                Determines whether this value is equal to the <paramref name="other"/> value. (See also remarks in the other
                overload, <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.)</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)">
            <summary>
                Determines whether this value is equal to the <paramref name="other"/> value. (See also remarks.)</summary>
            <remarks>
                Two values are only considered equal if they are of the same type (e.g. a <see cref="T:RT.Util.Json.JsonString"/> is never
                equal to a <see cref="T:RT.Util.Json.JsonNumber"/> even if they contain the same number). Lists are equal if they contain the
                same values in the same order. Dictionaries are equal if they contain the same set of key/value pairs.</remarks>
        </member>
        <member name="M:RT.Util.Json.JsonValue.GetHashCode">
            <summary>Returns a hash code representing this object.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.ToString(RT.Util.Json.JsonValue)">
            <summary>Converts the JSON value to a JSON string that parses back to this value. Supports null values.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.ToString">
            <summary>Converts the current JSON value to a JSON string that parses back to this value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.ToStringIndented(RT.Util.Json.JsonValue)">
            <summary>Converts the JSON value to a JSON string that parses back to this value. Supports null values.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.ToStringIndented">
            <summary>Converts the current JSON value to a JSON string that parses back to this value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.AppendIndented(RT.Util.Json.JsonValue,System.Text.StringBuilder,System.Int32)">
            <summary>
                Converts the JSON value to a JSON string that parses back to this value and places the string into the
                specified StringBuilder. Supports null values.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.AppendIndented(System.Text.StringBuilder,System.Int32)">
            <summary>
                Converts the current JSON value to a JSON void that parses back to this value and places the string into the
                specified StringBuilder.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.ToEnumerable(RT.Util.Json.JsonValue)">
            <summary>Lazy-converts the JSON value to a JSON string that parses back to this value. Supports null values.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.ToEnumerable">
            <summary>Lazy-converts the current JSON value to a JSON string that parses back to this value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonValue.Fmt(System.String,RT.Util.Json.JsonValue[])">
            <summary>
                Formats JSON values into a piece of JavaScript code and then removes almost all unnecessary whitespace and
                comments. Values are referenced by names; placeholders for these values are written as {{name}}. Placeholders
                are only replaced outside of JavaScript literal strings and regexes. <see cref="T:RT.Util.Json.JsonRaw"/> instances are
                inserted unmodified.</summary>
            <param name="js">
                JavaScript code with placeholders.</param>
            <param name="namevalues">
                Alternating names and associated values, for example ["user", "abc"] specifies one value named "user".</param>
            <example>
                <para>
                    The following code:</para>
                <code>
                    JsonValue.Fmt(@"Foo({{userid}}, {{username}}, {{options}});",
                        "userid", userid,
                        "username", username,
                        "options", null)</code>
                <para>
                    might return the following string:</para>
                <code>
                    Foo(123, "Matthew Stranger", null);</code></example>
            <exception cref="T:System.ArgumentException">
                <paramref name="namevalues"/> has an odd number of values. OR <paramref name="js"/> contains a {{placeholder}}
                whose name is not listed in <paramref name="namevalues"/>.</exception>
            <exception cref="T:System.ArgumentNullException">
                <paramref name="js"/> is null. OR <paramref name="namevalues"/> is null.</exception>
        </member>
        <member name="P:RT.Util.Json.JsonValue.Safe">
            <summary>
                Returns an object that allows safe access to the indexers. “Safe” in this context means that the indexers,
                when given an index or key not found in the list or dictionary, do not throw but instead return <see cref="P:RT.Util.Json.JsonNoValue.Instance"/> whose getters (such as <see cref="M:RT.Util.Json.JsonValue.GetString(RT.Util.Json.StringConversionOptions)"/>) return null.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonValue.Count">
            <summary>
                Returns the number of items in the current value if it is a <see cref="T:RT.Util.Json.JsonList"/> or <see cref="T:RT.Util.Json.JsonDict"/>;
                otherwise, throws.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonValue.IsContainer">
            <summary>
                Returns true if this value is a <see cref="T:RT.Util.Json.JsonDict"/> or a <see cref="T:RT.Util.Json.JsonList"/>; otherwise, returns false.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonValue.Item(System.Int32)">
            <summary>
                Returns the item at the specified <paramref name="index"/> within the current list if it is a <see cref="T:RT.Util.Json.JsonList"/>; otherwise, throws.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonValue.Item(System.String)">
            <summary>
                Gets or sets the value associated with the specified <paramref name="key"/> if this value is a <see cref="T:RT.Util.Json.JsonDict"/>; otherwise, throws.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonValue.Keys">
            <summary>Returns the keys contained in the dictionary if this is a <see cref="T:RT.Util.Json.JsonDict"/>; otherwise, throws.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonValue.Values">
            <summary>Returns the values contained in the dictionary if this is a <see cref="T:RT.Util.Json.JsonDict"/>; otherwise, throws.</summary>
        </member>
        <member name="T:RT.Util.Json.JsonList">
            <summary>Encapsulates a list of <see cref="T:RT.Util.Json.JsonValue"/> values.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.#ctor">
            <summary>Constructs an empty list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.#ctor(System.Collections.Generic.IEnumerable{RT.Util.Json.JsonValue})">
            <summary>
                Constructs a <see cref="T:RT.Util.Json.JsonList"/> instance containing a copy of the specified collection of <paramref name="items"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.Parse(System.String,System.Boolean)">
            <summary>
                Parses the specified JSON as a JSON list. All other types of JSON values result in a <see cref="T:RT.Util.Json.JsonParseException"/>.</summary>
            <param name="jsonList">
                JSON syntax to parse.</param>
            <param name="allowJavaScript">
                See <see cref="M:RT.Util.Json.JsonValue.Parse(System.String,System.Boolean)"/>.</param>
        </member>
        <member name="M:RT.Util.Json.JsonList.TryParse(System.String,RT.Util.Json.JsonList@)">
            <summary>
                Attempts to parse the specified string into a JSON list.</summary>
            <param name="jsonNumber">
                A string containing JSON syntax.</param>
            <param name="result">
                Receives the <see cref="T:RT.Util.Json.JsonList"/> representing the list, or null if unsuccessful.</param>
            <returns>
                True if parsing was successful; otherwise, false.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonList.getList(System.Boolean)">
            <summary>
                Converts the current value to <see cref="T:RT.Util.Json.JsonList"/>.</summary>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonList.GetEnumerator">
            <summary>Enumerates the values in this list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.Equals(System.Object)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.Equals(RT.Util.Json.JsonValue)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.Equals(RT.Util.Json.JsonList)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.GetHashCode">
            <summary>Returns a hash code representing this object.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.ToEnumerable">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.ToEnumerable"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.AppendIndented(System.Text.StringBuilder,System.Int32)">
            <summary>Converts the JSON value to a JSON string that parses back to this value. Supports null values.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.Clear">
            <summary>Removes all items from the current list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.Add(RT.Util.Json.JsonValue)">
            <summary>Adds the specified <paramref name="item"/> to the current list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.AddRange(System.Collections.Generic.IEnumerable{RT.Util.Json.JsonValue})">
            <summary>Adds the specified <paramref name="items"/> to the current list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.Remove(RT.Util.Json.JsonValue)">
            <summary>
                Removes the first instance of the specified <paramref name="item"/> from the current list.</summary>
            <returns>
                True if an item was removed; otherwise, false.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonList.Contains(RT.Util.Json.JsonValue)">
            <summary>Determines whether the specified <paramref name="item"/> is contained in the current list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.Insert(System.Int32,RT.Util.Json.JsonValue)">
            <summary>
                Inserts the specified <paramref name="item"/> at the specified <paramref name="index"/> to the current list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.RemoveAt(System.Int32)">
            <summary>Removes the item at the specified <paramref name="index"/> from the current list.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonList.IndexOf(RT.Util.Json.JsonValue)">
            <summary>
                Returns the index of the first occurrence of the specified <paramref name="item"/> within the current list.</summary>
            <returns>
                The index of the item, or -1 if the item is not in the list.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonList.CopyTo(RT.Util.Json.JsonValue[],System.Int32)">
            <summary>
                Copies the entire list to a compatible one-dimensional <paramref name="array"/>, starting at the specified
                <paramref name="arrayIndex"/> of the target array.</summary>
            <param name="array">
                The one-dimensional array that is the destination of the elements copied from the list. The array must have
                zero-based indexing.</param>
            <param name="arrayIndex">
                The zero-based index in array at which copying begins.</param>
        </member>
        <member name="P:RT.Util.Json.JsonList.Count">
            <summary>Returns the number of items in the current list.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonList.IsContainer">
            <summary>Returns true.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonList.Item(System.Int32)">
            <summary>Returns the item at the specified <paramref name="index"/> within the current list.</summary>
        </member>
        <member name="T:RT.Util.Json.JsonDict">
            <summary>Encapsulates a JSON dictionary (a set of key/value pairs).</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.#ctor">
            <summary>Constructs an empty dictionary.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,RT.Util.Json.JsonValue}})">
            <summary>Constructs a dictionary containing a copy of the specified collection of key/value pairs.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.Parse(System.String,System.Boolean)">
            <summary>
                Parses the specified JSON as a JSON dictionary. All other types of JSON values result in a <see cref="T:RT.Util.Json.JsonParseException"/>.</summary>
            <param name="jsonDict">
                JSON syntax to parse.</param>
            <param name="allowJavaScript">
                See <see cref="M:RT.Util.Json.JsonValue.Parse(System.String,System.Boolean)"/>.</param>
        </member>
        <member name="M:RT.Util.Json.JsonDict.TryParse(System.String,RT.Util.Json.JsonDict@)">
            <summary>
                Attempts to parse the specified string into a JSON dictionary.</summary>
            <param name="jsonDict">
                A string containing JSON syntax.</param>
            <param name="result">
                Receives the <see cref="T:RT.Util.Json.JsonDict"/> representing the dictionary, or null if unsuccessful.</param>
            <returns>
                True if parsing was successful; otherwise, false.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonDict.getDict(System.Boolean)">
            <summary>
                Converts the current value to <see cref="T:RT.Util.Json.JsonDict"/>.</summary>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonDict.GetEnumerator">
            <summary>Enumerates the key/value pairs in this dictionary.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.Equals(System.Object)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.Equals(RT.Util.Json.JsonValue)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.Equals(RT.Util.Json.JsonDict)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.GetHashCode">
            <summary>Returns a hash code representing this object.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.ToEnumerable">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.ToEnumerable"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.AppendIndented(System.Text.StringBuilder,System.Int32)">
            <summary>Converts the JSON value to a JSON string that parses back to this value. Supports null values.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.Clear">
            <summary>Removes all items from the current dictionary.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.TryGetValue(System.String,RT.Util.Json.JsonValue@)">
            <summary>
                Attempts to retrieve the value associated with the specified <paramref name="key"/>.</summary>
            <param name="key">
                The key for which to try to retrieve the value.</param>
            <param name="value">
                Receives the value associated with the specified <paramref name="key"/>, or null if the key is not in the
                dictionary. (Note that null may also be a valid value in case of success.)</param>
            <returns>
                True if the key was in the dictionary; otherwise, false.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonDict.Add(System.String,RT.Util.Json.JsonValue)">
            <summary>
                Adds the specified key/value pair to the dictionary.</summary>
            <param name="key">
                The key to add.</param>
            <param name="value">
                The value to add.</param>
        </member>
        <member name="M:RT.Util.Json.JsonDict.AddRange(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,RT.Util.Json.JsonValue}})">
            <summary>Adds the specified key/value pairs to the dictionary.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.Remove(System.String)">
            <summary>
                Removes the entry with the specified <paramref name="key"/> from the dictionary.</summary>
            <param name="key">
                The key that identifies the entry to remove.</param>
            <returns>
                True if an entry was removed; false if the key wasn’t in the dictionary.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonDict.ContainsKey(System.String)">
            <summary>Determines whether an entry with the specified <paramref name="key"/> exists in the dictionary.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonDict.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
            <summary>
                Implements functionality that allows the keys in this JSON dictionary to be accessed as dynamic members.</summary>
            <example>
                <code>
                    dynamic dict = JsonDict.Parse(@"{ ""List"": [1, 2, 3] }");
                    Console.WriteLine(dict.List.Count);     // outputs 3</code></example>
        </member>
        <member name="P:RT.Util.Json.JsonDict.Count">
            <summary>Returns the number of items in the current dictionary.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonDict.IsContainer">
            <summary>Returns true.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonDict.Item(System.String)">
            <summary>Gets or sets the value associated with the specified <paramref name="key"/>.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonDict.Keys">
            <summary>Returns the keys contained in the dictionary.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonDict.Values">
            <summary>Returns the values contained in the dictionary.</summary>
        </member>
        <member name="T:RT.Util.Json.JsonString">
            <summary>Encapsulates a string as a JSON value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonString.#ctor(System.String)">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonString"/> instance from the specified string.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonString.Parse(System.String,System.Boolean)">
            <summary>
                Parses the specified JSON as a JSON string. All other types of JSON values result in a <see cref="T:RT.Util.Json.JsonParseException"/>.</summary>
            <param name="jsonString">
                JSON syntax to parse.</param>
            <param name="allowJavaScript">
                See <see cref="M:RT.Util.Json.JsonValue.Parse(System.String,System.Boolean)"/>.</param>
        </member>
        <member name="M:RT.Util.Json.JsonString.TryParse(System.String,RT.Util.Json.JsonString@)">
            <summary>
                Attempts to parse the specified string into a JSON string.</summary>
            <param name="jsonString">
                A string containing JSON syntax.</param>
            <param name="result">
                Receives the <see cref="T:RT.Util.Json.JsonString"/> representing the string, or null if unsuccessful.</param>
            <returns>
                True if parsing was successful; otherwise, false.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonString.op_Implicit(RT.Util.Json.JsonString)~System.String">
            <summary>Converts the specified <see cref="T:RT.Util.Json.JsonString"/> value to an ordinary string.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonString.op_Implicit(System.String)~RT.Util.Json.JsonString">
            <summary>Converts the specified ordinary string to a <see cref="T:RT.Util.Json.JsonString"/> value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonString.getDouble(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>double</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonString.getDecimal(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>decimal</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonString.getInt(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>int</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonString.getLong(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>long</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonString.getBool(RT.Util.Json.BoolConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>bool</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="F:RT.Util.Json.JsonString.False">
            <summary>
                Controls which string values are converted to <c>false</c> when using <see cref="M:RT.Util.Json.JsonValue.GetBool(RT.Util.Json.BoolConversionOptions)"/> with
                <see cref="F:RT.Util.Json.BoolConversionOptions.AllowConversionFromString"/>.</summary>
            <remarks>
                The default is: <c>{ "", "false", "n", "no", "off", "disable", "disabled", "0" }</c>.</remarks>
        </member>
        <member name="F:RT.Util.Json.JsonString.True">
            <summary>
                Controls which string values are converted to <c>true</c> when using <see cref="M:RT.Util.Json.JsonValue.GetBool(RT.Util.Json.BoolConversionOptions)"/> with <see cref="F:RT.Util.Json.BoolConversionOptions.AllowConversionFromString"/>.</summary>
            <remarks>
                The default is: <c>{ "true", "y", "yes", "on", "enable", "enabled", "1" }</c>.</remarks>
        </member>
        <member name="F:RT.Util.Json.JsonString.TrueFalseComparer">
            <summary>
                Controls which string equality comparer is used when comparing strings against elements in <see cref="F:RT.Util.Json.JsonString.True"/>
                and <see cref="F:RT.Util.Json.JsonString.False"/> during conversion to bool by <see cref="M:RT.Util.Json.JsonValue.GetBool(RT.Util.Json.BoolConversionOptions)"/>.</summary>
            <remarks>
                The default is <see cref="P:System.StringComparer.OrdinalIgnoreCase"/>.</remarks>
        </member>
        <member name="M:RT.Util.Json.JsonString.getString(RT.Util.Json.StringConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>string</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonString.Equals(System.Object)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonString.Equals(RT.Util.Json.JsonValue)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonString.Equals(RT.Util.Json.JsonString)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonString.GetHashCode">
            <summary>Returns a hash code representing this object.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonString.ToEnumerable">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.ToEnumerable"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonString.AppendIndented(System.Text.StringBuilder,System.Int32)">
            <summary>Converts the current JSON value to a JSON string that parses back to this value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonString.ToString(RT.Util.ExtensionMethods.JsQuotes)">
            <summary>
                Returns a JavaScript-compatible representation of this string.</summary>
            <param name="quotes">
                Specifies the style of quotes to use around the string.</param>
        </member>
        <member name="T:RT.Util.Json.JsonBool">
            <summary>Encapsulates a boolean value as a <see cref="T:RT.Util.Json.JsonValue"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.#ctor(System.Boolean)">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonBool"/> from the specified boolean.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.Parse(System.String,System.Boolean)">
            <summary>
                Parses the specified JSON as a JSON boolean. All other types of JSON values result in a <see cref="T:RT.Util.Json.JsonParseException"/>.</summary>
            <param name="jsonBool">
                JSON syntax to parse.</param>
            <param name="allowJavaScript">
                See <see cref="M:RT.Util.Json.JsonValue.Parse(System.String,System.Boolean)"/>.</param>
        </member>
        <member name="M:RT.Util.Json.JsonBool.TryParse(System.String,RT.Util.Json.JsonBool@)">
            <summary>
                Attempts to parse the specified string into a JSON boolean.</summary>
            <param name="jsonBool">
                A string containing JSON syntax.</param>
            <param name="result">
                Receives the <see cref="T:RT.Util.Json.JsonBool"/> representing the boolean, or null if unsuccessful.</param>
            <returns>
                True if parsing was successful; otherwise, false.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonBool.op_Explicit(RT.Util.Json.JsonBool)~System.Boolean">
            <summary>Converts the specified <see cref="T:RT.Util.Json.JsonBool"/> value to an ordinary boolean.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.op_Implicit(RT.Util.Json.JsonBool)~System.Nullable{System.Boolean}">
            <summary>Converts the specified <see cref="T:RT.Util.Json.JsonBool"/> value to a nullable boolean.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.op_Implicit(System.Boolean)~RT.Util.Json.JsonBool">
            <summary>Converts the specified ordinary boolean to a <see cref="T:RT.Util.Json.JsonBool"/> value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.op_Implicit(System.Nullable{System.Boolean})~RT.Util.Json.JsonBool">
            <summary>Converts the specified nullable boolean to a <see cref="T:RT.Util.Json.JsonBool"/> value or null.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.Equals(System.Object)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.Equals(RT.Util.Json.JsonValue)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.Equals(RT.Util.Json.JsonBool)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.GetHashCode">
            <summary>Returns a hash code representing this object.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.ToEnumerable">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.ToEnumerable"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.AppendIndented(System.Text.StringBuilder,System.Int32)">
            <summary>Converts the current JSON value to a JSON string that parses back to this value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonBool.getBool(RT.Util.Json.BoolConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>bool</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonBool.getDecimal(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>decimal</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonBool.getDouble(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>double</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonBool.getInt(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>int</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonBool.getLong(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>long</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonBool.getString(RT.Util.Json.StringConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>string</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="T:RT.Util.Json.JsonNumber">
            <summary>
                Encapsulates a number, which may be a floating-point number or an integer, as a <see cref="T:RT.Util.Json.JsonValue"/>. See
                Remarks.</summary>
            <remarks>
                JSON does not define any specific limits for numeric values. This implementation supports integers in the signed
                64-bit range, as well as IEEE 64-bit doubles (except NaNs and infinities). Conversions to/from <c>decimal</c> are
                exact for integers, but can be approximate for non-integers, depending on the exact value.</remarks>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.#ctor(System.Double)">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonNumber"/> from the specified double-precision floating-point number.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.#ctor(System.Int64)">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonNumber"/> from the specified 64-bit integer.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.#ctor(System.Int32)">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonNumber"/> from the specified 32-bit integer.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.#ctor(System.Decimal)">
            <summary>
                Constructs a <see cref="T:RT.Util.Json.JsonNumber"/> from the specified decimal. This operation is slightly lossy; see
                Remarks on <see cref="T:RT.Util.Json.JsonNumber"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.Parse(System.String,System.Boolean)">
            <summary>
                Parses the specified JSON as a JSON number. All other types of JSON values result in a <see cref="T:RT.Util.Json.JsonParseException"/>.</summary>
            <param name="jsonNumber">
                JSON syntax to parse.</param>
            <param name="allowJavaScript">
                See <see cref="M:RT.Util.Json.JsonValue.Parse(System.String,System.Boolean)"/>.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.TryParse(System.String,RT.Util.Json.JsonNumber@)">
            <summary>
                Attempts to parse the specified string into a JSON number.</summary>
            <param name="jsonNumber">
                A string containing JSON syntax.</param>
            <param name="result">
                Receives the <see cref="T:RT.Util.Json.JsonNumber"/> representing the number, or null if unsuccessful.</param>
            <returns>
                True if parsing was successful; otherwise, false.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Explicit(RT.Util.Json.JsonNumber)~System.Double">
            <summary>Converts the specified <see cref="T:RT.Util.Json.JsonNumber"/> to a double.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Implicit(RT.Util.Json.JsonNumber)~System.Nullable{System.Double}">
            <summary>Converts the specified <see cref="T:RT.Util.Json.JsonNumber"/> to a nullable double.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Explicit(RT.Util.Json.JsonNumber)~System.Decimal">
            <summary>
                Converts the specified <see cref="T:RT.Util.Json.JsonNumber"/> to a decimal. This operator is slightly lossy; see Remarks on
                <see cref="T:RT.Util.Json.JsonNumber"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Explicit(RT.Util.Json.JsonNumber)~System.Nullable{System.Decimal}">
            <summary>
                Converts the specified <see cref="T:RT.Util.Json.JsonNumber"/> to a nullable decimal. This operator is slightly lossy; see
                Remarks on <see cref="T:RT.Util.Json.JsonNumber"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Explicit(RT.Util.Json.JsonNumber)~System.Int64">
            <summary>
                Converts the specified <see cref="T:RT.Util.Json.JsonNumber"/> to a 64-bit integer. See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Explicit(RT.Util.Json.JsonNumber)~System.Nullable{System.Int64}">
            <summary>
                Converts the specified <see cref="T:RT.Util.Json.JsonNumber"/> to a nullable 64-bit integer. See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Explicit(RT.Util.Json.JsonNumber)~System.Int32">
            <summary>
                Converts the specified <see cref="T:RT.Util.Json.JsonNumber"/> to a 32-bit integer. See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Explicit(RT.Util.Json.JsonNumber)~System.Nullable{System.Int32}">
            <summary>
                Converts the specified <see cref="T:RT.Util.Json.JsonNumber"/> to a nullable 32-bit integer. See <see cref="F:RT.Util.Json.NumericConversionOptions.Strict"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Implicit(System.Double)~RT.Util.Json.JsonNumber">
            <summary>Converts the specified double to a <see cref="T:RT.Util.Json.JsonNumber"/> value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Implicit(System.Nullable{System.Double})~RT.Util.Json.JsonNumber">
            <summary>Converts the specified nullable double to a <see cref="T:RT.Util.Json.JsonNumber"/> value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Implicit(System.Int64)~RT.Util.Json.JsonNumber">
            <summary>Converts the specified 64-bit integer to a <see cref="T:RT.Util.Json.JsonNumber"/> value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Implicit(System.Nullable{System.Int64})~RT.Util.Json.JsonNumber">
            <summary>Converts the specified nullable 64-bit integer to a <see cref="T:RT.Util.Json.JsonNumber"/> value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Implicit(System.Int32)~RT.Util.Json.JsonNumber">
            <summary>Converts the specified 32-bit integer to a <see cref="T:RT.Util.Json.JsonNumber"/> value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Implicit(System.Nullable{System.Int32})~RT.Util.Json.JsonNumber">
            <summary>Converts the specified nullable 32-bit integer to a <see cref="T:RT.Util.Json.JsonNumber"/> value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Explicit(System.Decimal)~RT.Util.Json.JsonNumber">
            <summary>
                Converts the specified decimal to a <see cref="T:RT.Util.Json.JsonNumber"/> value. This operator is slightly lossy; see
                Remarks on <see cref="T:RT.Util.Json.JsonNumber"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.op_Explicit(System.Nullable{System.Decimal})~RT.Util.Json.JsonNumber">
            <summary>
                Converts the specified nullable decimal to a <see cref="T:RT.Util.Json.JsonNumber"/> value. This operator is slightly lossy;
                see Remarks on <see cref="T:RT.Util.Json.JsonNumber"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.getDouble(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>double</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.getDecimal(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>decimal</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.getInt(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>int</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.getLong(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>long</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.getString(RT.Util.Json.StringConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>string</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.getBool(RT.Util.Json.BoolConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>bool</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.Equals(System.Object)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.Equals(RT.Util.Json.JsonValue)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.Equals(RT.Util.Json.JsonNumber)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.GetHashCode">
            <summary>Returns a hash code representing this object.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.ToEnumerable">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.ToEnumerable"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNumber.AppendIndented(System.Text.StringBuilder,System.Int32)">
            <summary>Converts the current JSON value to a JSON string that parses back to this value.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonNumber.RawValue">
            <summary>Returns the value of this number as either a <c>double</c> or a <c>long</c>.</summary>
        </member>
        <member name="T:RT.Util.Json.JsonNoValue">
            <summary>
                Represents a non-value when looking up a non-existent index or key in a list or dictionary.</summary>
            <remarks>
                <list type="bullet">
                    <item><description>
                        This is a singleton class; use <see cref="P:RT.Util.Json.JsonNoValue.Instance"/> to access it.</description></item>
                    <item><description>
                        This class overloads the <c>==</c> operator such that comparing with <c>null</c> returns <c>true</c>.</description></item></list></remarks>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.Equals(System.Object)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.Equals(RT.Util.Json.JsonValue)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.Equals(RT.Util.Json.JsonNoValue)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.op_Equality(RT.Util.Json.JsonNoValue,RT.Util.Json.JsonNoValue)">
            <summary>
                Always returns true.</summary>
            <remarks>
                <para>
                    This operator can only be invoked in three ways:</para>
                <list type="bullet">
                    <item><description>
                        <c>JsonNoValue.Instance == JsonNoValue.Instance</c></description></item>
                    <item><description>
                        <c>JsonNoValue.Instance == null</c></description></item>
                    <item><description>
                        <c>null == JsonNoValue.Instance</c></description></item></list>
                <para>
                    In all three cases, the intended comparison is <c>true</c>.</para></remarks>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.op_Inequality(RT.Util.Json.JsonNoValue,RT.Util.Json.JsonNoValue)">
            <summary>
                Always returns false.</summary>
            <seealso cref="M:RT.Util.Json.JsonNoValue.op_Equality(RT.Util.Json.JsonNoValue,RT.Util.Json.JsonNoValue)"/>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.GetHashCode">
            <summary>Returns a hash code representing this object.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.ToEnumerable">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.ToEnumerable"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.AppendIndented(System.Text.StringBuilder,System.Int32)">
            <summary>Converts the current JSON value to a JSON string that parses back to this value.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.getBool(RT.Util.Json.BoolConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>bool</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.getDecimal(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>decimal</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.getDouble(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>double</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.getInt(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>int</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.getLong(RT.Util.Json.NumericConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>long</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="M:RT.Util.Json.JsonNoValue.getString(RT.Util.Json.StringConversionOptions,System.Boolean)">
            <summary>
                Converts the current value to <c>string</c>.</summary>
            <param name="options">
                Specifies options for the conversion.</param>
            <param name="safe">
                Controls the behavior in case of conversion failure. If true, returns null; if false, throws.</param>
        </member>
        <member name="P:RT.Util.Json.JsonNoValue.Instance">
            <summary>Returns the singleton instance of this type.</summary>
        </member>
        <member name="T:RT.Util.Json.JsonSafeValue">
            <summary>
                Provides safe access to the indexers of a <see cref="T:RT.Util.Json.JsonValue"/>. See <see cref="P:RT.Util.Json.JsonValue.Safe"/> for details.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonSafeValue.#ctor(RT.Util.Json.JsonValue)">
            <summary>
                Constructor.</summary>
            <param name="value">
                Specifies the underlying JSON value to provide safe access to.</param>
        </member>
        <member name="M:RT.Util.Json.JsonSafeValue.GetHashCode">
            <summary>Returns a hash code representing this object.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonSafeValue.Equals(System.Object)">
            <summary>Determines whether the specified instance is equal to this one.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonSafeValue.Equals(RT.Util.Json.JsonSafeValue)">
            <summary>
                Determines whether the specified instance is equal to this one. (See remarks.)</summary>
            <remarks>
                Two instances of <see cref="T:RT.Util.Json.JsonSafeValue"/> are considered equal if the underlying values are equal. See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/> for details.</remarks>
        </member>
        <member name="P:RT.Util.Json.JsonSafeValue.Value">
            <summary>Gets the underlying JSON value associated with this object.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonSafeValue.Item(System.Int32)">
            <summary>
                If the underlying value is a list, and the specified <paramref name="index"/> exists within the list, returns
                the associated item; otherwise, returns a <see cref="T:RT.Util.Json.JsonNoValue"/> instance.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonSafeValue.Item(System.String)">
            <summary>
                If the underlying value is a dictionary, and the specified <paramref name="key"/> exists within the
                dictionary, gets the value associated with that key; otherwise, returns a <see cref="T:RT.Util.Json.JsonNoValue"/> instance.</summary>
        </member>
        <member name="T:RT.Util.Json.JsonRaw">
            <summary>
                A special type of value which is never produced as a result of parsing valid JSON. Its sole purpose is to allow
                embedding arbitrary JavaScript code using <see cref="M:RT.Util.Json.JsonValue.Fmt(System.String,RT.Util.Json.JsonValue[])"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonRaw.#ctor(System.String)">
            <summary>Constructs a <see cref="T:RT.Util.Json.JsonRaw"/> instance from the specified raw JSON.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonRaw.FromDate(System.DateTime)">
            <summary>Generates a <see cref="T:RT.Util.Json.JsonRaw"/> instance from the specified date/time stamp.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonRaw.ToEnumerable">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.ToEnumerable"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonRaw.Equals(System.Object)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonRaw.Equals(RT.Util.Json.JsonValue)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonRaw.Equals(RT.Util.Json.JsonRaw)">
            <summary>See <see cref="M:RT.Util.Json.JsonValue.Equals(RT.Util.Json.JsonValue)"/>.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonRaw.GetHashCode">
            <summary>Returns a hash code representing this object.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonRaw.AppendIndented(System.Text.StringBuilder,System.Int32)">
            <summary>Converts the current JSON value to a JSON string that parses back to this value.</summary>
        </member>
        <member name="P:RT.Util.Json.JsonRaw.Raw">
            <summary>Gets the raw JSON.</summary>
        </member>
        <member name="T:RT.Util.Json.JsonExtensions">
            <summary>Provides extension methods for the JSON types.</summary>
        </member>
        <member name="M:RT.Util.Json.JsonExtensions.ToJsonDict``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.String},System.Func{``0,RT.Util.Json.JsonValue})">
            <summary>
                Creates a <see cref="T:RT.Util.Json.JsonDict"/> from an input collection.</summary>
            <typeparam name="T">
                Type of the input collection.</typeparam>
            <param name="source">
                Input collection.</param>
            <param name="keySelector">
                Function to map each input element to a key for the resulting dictionary.</param>
            <param name="valueSelector">
                Function to map each input element to a value for the resulting dictionary.</param>
            <returns>
                The constructed <see cref="T:RT.Util.Json.JsonDict"/>.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonExtensions.ToJsonList``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,RT.Util.Json.JsonValue})">
            <summary>
                Creates a <see cref="T:RT.Util.Json.JsonList"/> from an input collection.</summary>
            <typeparam name="T">
                Type of the input collection.</typeparam>
            <param name="source">
                Input collection.</param>
            <param name="elementSelector">
                Function to map each input element to a <see cref="T:RT.Util.Json.JsonValue"/> for the resulting list.</param>
            <returns>
                The constructed <see cref="T:RT.Util.Json.JsonList"/>.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonExtensions.ToJsonList(System.Collections.Generic.IEnumerable{RT.Util.Json.JsonValue})">
            <summary>
                Creates a <see cref="T:RT.Util.Json.JsonList"/> from an input collection.</summary>
            <param name="source">
                Input collection.</param>
            <returns>
                The constructed <see cref="T:RT.Util.Json.JsonList"/>.</returns>
        </member>
        <member name="M:RT.Util.Json.JsonExtensions.ToJsonList(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
                Creates a <see cref="T:RT.Util.Json.JsonList"/> from an input collection.</summary>
            <param name="source">
                Input collection.</param>
            <returns>
                The constructed <see cref="T:RT.Util.Json.JsonList"/>.</returns>
        </member>
        <member name="T:RT.Util.Lingo.MemberDescriptionTr">
            <summary>Holds the translation of a member's description.</summary>
        </member>
        <member name="F:RT.Util.Lingo.MemberDescriptionTr.DisplayName">
            <summary>How this member should be named in the property grid.</summary>
        </member>
        <member name="F:RT.Util.Lingo.MemberDescriptionTr.Description">
            <summary>How this member should be described in the description section of the property grid.</summary>
        </member>
        <member name="M:RT.Util.Lingo.MemberDescriptionTr.ToString">
            <summary>Override, for debugging purposes only.</summary>
        </member>
        <member name="T:RT.Util.Lingo.MemberTr">
            <summary>Holds the translation of a member's category and description.</summary>
        </member>
        <member name="F:RT.Util.Lingo.MemberTr.Category">
            <summary>Translation of the name of the category that this member belongs to.</summary>
        </member>
        <member name="F:RT.Util.Lingo.MemberTr.DisplayName">
            <summary>How this member should be named in the property grid.</summary>
        </member>
        <member name="F:RT.Util.Lingo.MemberTr.Description">
            <summary>How this member should be described in the description section of the property grid.</summary>
        </member>
        <member name="M:RT.Util.Lingo.MemberTr.#ctor(RT.Util.Lingo.TrString,RT.Util.Lingo.MemberDescriptionTr)">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Lingo.MemberTr.#ctor(RT.Util.Lingo.TrString,RT.Util.Lingo.TrString,RT.Util.Lingo.TrString)">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Lingo.MemberTr.#ctor(RT.Util.Lingo.TrString)">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Lingo.MemberTr.#ctor(RT.Util.Lingo.TrString,RT.Util.Lingo.TrString)">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.Lingo.MemberTr.ToString">
            <summary>Override, for debugging purposes only.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LingoTypeDescriptionProvider`1">
            <summary>Provides a type descriptor which supports translation of various string values using the Lingo conventions (see remarks).</summary>
            <typeparam name="TTranslation">The type of the translation class.</typeparam>
            <remarks>
            Every property requiring translatable name/description/category should have a corresponding method in the same class. This method
            should be static, named the same as the property with a "Tr" suffix, take a translation instance and return a <see cref="T:RT.Util.Lingo.MemberTr"/>.
            </remarks>
        </member>
        <member name="M:RT.Util.Lingo.LingoTypeDescriptionProvider`1.#ctor(System.Func{`0})">
            <summary>Constructs a type description provider using the specified translation getter.</summary>
            <param name="getTranslation">A function that returns the currently active translation.</param>
        </member>
        <member name="M:RT.Util.Lingo.LingoTypeDescriptionProvider`1.GetTypeDescriptor(System.Type,System.Object)">
            <summary>Override; see base.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LingoEnumConverter`2">
            <summary>Provides a base implementation for enum converters intended to enable enum translation. See remarks.</summary>
            <typeparam name="TEnum">Type of the enum being translated.</typeparam>
            <typeparam name="TTranslation">Type of a translation class which has fields named the same as enum values.</typeparam>
            <remarks>Suggested use: define a separate Lingo string class for the enum. Inside this class, declare a nested class deriving
            from this base class. Specify a TypeConverter on the enum in question using the said nested class.</remarks>
        </member>
        <member name="M:RT.Util.Lingo.LingoEnumConverter`2.#ctor(System.Func{`1})">
            <summary>Constructor.</summary>
            <param name="getTranslation">A method which returns the currently active translation for this enum.</param>
        </member>
        <member name="M:RT.Util.Lingo.LingoEnumConverter`2.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LingoEnumConverter`2.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>Override; see base.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LanguageHelper`1">
            <summary>Helps an application using Lingo to display language selection UI.</summary>
            <typeparam name="TTranslation">The type of the class holding the program’s translation.</typeparam>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelper`1.#ctor(System.String,System.String,System.Boolean,System.Func{RT.Util.Lingo.Language})">
            <summary>Constructor.</summary>
            <param name="programTitle">The title of the program - to be displayed in the translation UI.</param>
            <param name="moduleName">Name of the module being translated - used to construct the filename for the translation file.</param>
            <param name="editable">Whether translation editing UI should be included.</param>
            <param name="getCurrentLanguage">A callback that returns the currently active language whenever called.</param>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelper`1.SetLanguage(RT.Util.Lingo.Language)">
            <summary>Changes the currently selected language in exactly the same way as using one of the UI elements would.</summary>
            <param name="language">The desired language. If not available, the default language will be set instead.</param>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelper`1.FireTranslationChanged(`0)">
            <summary>Triggers the <see cref="E:RT.Util.Lingo.LanguageHelper`1.TranslationChanged"/> event with the specified translation.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelper`1.MayExitApplication">
            <summary>Returns a value indicating whether it is okay to close the application. The user is asked if there are any unsaved changes.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelper`1.CloseWithoutPrompts">
            <summary>Closes the translation dialog (if it is visible) without any prompts regarding unsaved changes.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelper`1.ListCurrentEntries">
            <summary>
            Returns a list of UI control descriptors whose state is applicable at the time of invocation. This method should be invoked
            every time prior to displaying UI, to obtain the up-to-date UI state. The entries returned are not "live" and will not be updated
            to reflect any changes.
            </summary>
            <remarks>
            The list is guaranteed to have at least one item, the default language. Exactly one item will have <see cref="F:RT.Util.Lingo.LanguageHelper`1.Entry.IsCurrentLanguage"/> set to true.
            </remarks>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelper`1.CreateNewLanguage">
            <summary>Opens the dialog for creating a new language.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelper`1.EditCurrentLanguage">
            <summary>Opens the GUI for editing the translation in the current language.</summary>
        </member>
        <member name="E:RT.Util.Lingo.LanguageHelper`1.TranslationChanged">
            <summary>
            Occurs whenever the translation has been changed. The application must respond by updating *all* visible UI
            and storing the language of the selected translation for use on next program start.
            </summary>
        </member>
        <member name="T:RT.Util.Lingo.LanguageHelper`1.Entry">
            <summary>Describes a UI entry exposed by the language helper.</summary>
        </member>
        <member name="F:RT.Util.Lingo.LanguageHelper`1.Entry.Text">
            <summary>The label that the control should have. Hotkeys are prefixed with an ampersand; ampersands are escaped by doubling.</summary>
        </member>
        <member name="F:RT.Util.Lingo.LanguageHelper`1.Entry.SeparatorBefore">
            <summary>If true, a separator should be displayed before this control, if possible.</summary>
        </member>
        <member name="F:RT.Util.Lingo.LanguageHelper`1.Entry.IsCurrentLanguage">
            <summary>The UI control should appear highlighted or checked, because it represents the current language.</summary>
        </member>
        <member name="F:RT.Util.Lingo.LanguageHelper`1.Entry.Enabled">
            <summary>Whether the UI control should be enabled (that is, possible to trigger the <see cref="P:RT.Util.Lingo.LanguageHelper`1.Entry.Action"/>).</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelper`1.Entry.#ctor(RT.Util.Lingo.LanguageHelper{`0},RT.Util.Lingo.Language)">
            <summary>Constructor for language entries.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelper`1.Entry.#ctor(System.String,System.Action)">
            <summary>Constructor for arbitrary entries.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelper`1.Entry.ToString">
            <summary>Returns the UI control text.</summary>
        </member>
        <member name="P:RT.Util.Lingo.LanguageHelper`1.Entry.Language">
            <summary>If this UI entry activates a language, this is the language code. Otherwise null.</summary>
        </member>
        <member name="P:RT.Util.Lingo.LanguageHelper`1.Entry.Action">
            <summary>Activating the control should invoke this action.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LanguageHelperWinForms`1">
            <summary>Helps an application using Lingo to display language selection UI using WinForms controls.</summary>
            <typeparam name="TTranslation">The type of the class holding the program’s translation.</typeparam>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWinForms`1.#ctor(System.String,System.String,System.Boolean,RT.Util.Lingo.TranslationForm{`0}.Settings,System.Drawing.Icon,System.Func{RT.Util.Lingo.Language})">
            <summary>Constructor.</summary>
            <param name="programTitle">The title of the program - to be displayed in the translation UI.</param>
            <param name="moduleName">Name of the module being translated - used to construct the filename for the translation file.</param>
            <param name="editable">Whether translation editing UI should be included.</param>
            <param name="settings">Translation window settings, such as window position/size.</param>
            <param name="icon">The icon to use on the translation window.</param>
            <param name="getCurrentLanguage">A callback that returns the currently active language whenever called.</param>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWinForms`1.ShowContextMenu(System.Windows.Forms.Control,System.Drawing.Point)">
            <summary>Displays a context menu listing all available languages, and optionally controls to edit the translations.</summary>
            <param name="positionControl">The menu's position is specified relative to this control.</param>
            <param name="position">The menu's desired position relative to <paramref name="positionControl"/>.</param>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWinForms`1.MakeLanguageComboBox(System.Windows.Forms.ComboBox)">
            <summary>Initialises the combo box to list all available languages and change the application translation when one gets selected.</summary>
            <remarks>Do not call multiple times for the same combo box.</remarks>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWinForms`1.MakeLanguageMenu(System.Windows.Forms.ToolStripMenuItem)">
            <summary>Initialises the menu item to provide language selection UI and any translation editing UI.</summary>
            <remarks>Do not call multiple times for the same combo box.</remarks>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWinForms`1.CreateNewLanguage">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWinForms`1.EditCurrentLanguage">
            <summary>Override; see base.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LanguageHelperWpf`1">
            <summary>Helps an application using Lingo to display language selection UI using WPF controls.</summary>
            <typeparam name="TTranslation">The type of the class holding the program’s translation.</typeparam>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWpf`1.#ctor(System.String,System.String,System.Boolean,RT.Util.Lingo.TranslationWindow.Settings,System.Windows.Media.ImageSource,System.Func{RT.Util.Lingo.Language})">
            <summary>Constructor.</summary>
            <param name="programTitle">The title of the program - to be displayed in the translation UI.</param>
            <param name="moduleName">Name of the module being translated - used to construct the filename for the translation file.</param>
            <param name="editable">Whether translation editing UI should be included.</param>
            <param name="settings">Translation window settings, such as window position/size.</param>
            <param name="icon">The icon to use on the translation window.</param>
            <param name="getCurrentLanguage">A callback that returns the currently active language whenever called.</param>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWpf`1.PopulateMenuItems(System.Windows.Controls.ItemCollection)">
            <summary>Appends menu items for changing languages and, optionally, translation editing. The menu items are hooked with appropriate click handlers.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWpf`1.CreateNewLanguage">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWpf`1.EditCurrentLanguage">
            <summary>Override; see base.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LanguageHelperWpfOld`1">
            <summary>Helps an application using Lingo to display language selection UI using WPF controls but the WinForms translation UI.</summary>
            <remarks>This class is required for as long as the WPF translation UI is unfinished.</remarks>
            <typeparam name="TTranslation">The type of the class holding the program’s translation.</typeparam>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWpfOld`1.#ctor(System.String,System.String,System.Boolean,RT.Util.Lingo.TranslationForm{`0}.Settings,System.Drawing.Icon,System.Func{RT.Util.Lingo.Language})">
            <summary>Constructor.</summary>
            <param name="programTitle">The title of the program - to be displayed in the translation UI.</param>
            <param name="moduleName">Name of the module being translated - used to construct the filename for the translation file.</param>
            <param name="editable">Whether translation editing UI should be included.</param>
            <param name="settings">Translation window settings, such as window position/size.</param>
            <param name="icon">The icon to use on the translation window.</param>
            <param name="getCurrentLanguage">A callback that returns the currently active language whenever called.</param>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWpfOld`1.CreateNewLanguage">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWpfOld`1.EditCurrentLanguage">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageHelperWpfOld`1.PopulateMenuItems(System.Windows.Controls.ItemCollection)">
            <summary>Appends menu items for changing languages and, optionally, translation editing. The menu items are hooked with appropriate click handlers.</summary>
        </member>
        <member name="T:RT.Util.Lingo.Language">
            <summary>Lists all the languages that have an ISO-639-1 two-letter code, and a selection of languages with an ISO-639-2 three-letter code.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Afar">
            <summary>Represents the Afar language (aa).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Abkhazian">
            <summary>Represents the Abkhazian language (ab).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Avestan">
            <summary>Represents the Avestan language (ae).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Afrikaans">
            <summary>Represents the Afrikaans language (af).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Akan">
            <summary>Represents the Akan language (ak).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Amharic">
            <summary>Represents the Amharic language (am).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Aragonese">
            <summary>Represents the Aragonese language (an).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Arabic">
            <summary>Represents the Arabic language (ar).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Assamese">
            <summary>Represents the Assamese language (as).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Avaric">
            <summary>Represents the Avaric language (av).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Aymara">
            <summary>Represents the Aymara language (ay).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Azerbaijani">
            <summary>Represents the Azerbaijani language (az).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Bashkir">
            <summary>Represents the Bashkir language (ba).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Belarusian">
            <summary>Represents the Belarusian language (be).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Bulgarian">
            <summary>Represents the Bulgarian language (bg).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Bihari">
            <summary>Represents the Bihari language (bh).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Bislama">
            <summary>Represents the Bislama language (bi).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Bambara">
            <summary>Represents the Bambara language (bm).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Bengali">
            <summary>Represents the Bengali language (bn).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Tibetan">
            <summary>Represents the Tibetan language (bo).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Breton">
            <summary>Represents the Breton language (br).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Bosnian">
            <summary>Represents the Bosnian language (bs).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Catalan">
            <summary>Represents the Catalan language (ca).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Chechen">
            <summary>Represents the Chechen language (ce).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Chamorro">
            <summary>Represents the Chamorro language (ch).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Corsican">
            <summary>Represents the Corsican language (co).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Cree">
            <summary>Represents the Cree language (cr).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Czech">
            <summary>Represents the Czech language (cs).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.ChurchSlavic">
            <summary>Represents the Church Slavic language (cu).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Chuvash">
            <summary>Represents the Chuvash language (cv).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Welsh">
            <summary>Represents the Welsh language (cy).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Danish">
            <summary>Represents the Danish language (da).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.German">
            <summary>Represents the German language (de).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Divehi">
            <summary>Represents the Divehi language (dv).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Dzongkha">
            <summary>Represents the Dzongkha language (dz).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Ewe">
            <summary>Represents the Ewe language (ee).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Greek">
            <summary>Represents the Greek language (el).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.EnglishUK">
            <summary>Represents the English language (en), as spoken in the UK.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.EnglishUS">
            <summary>Represents the English language (en), as spoken in the USA.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Esperanto">
            <summary>Represents the Esperanto language (eo).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Spanish">
            <summary>Represents the Spanish language (es).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Estonian">
            <summary>Represents the Estonian language (et).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Basque">
            <summary>Represents the Basque language (eu).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Persian">
            <summary>Represents the Persian language (fa).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Fulah">
            <summary>Represents the Fulah language (ff).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Finnish">
            <summary>Represents the Finnish language (fi).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Fijian">
            <summary>Represents the Fijian language (fj).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Faroese">
            <summary>Represents the Faroese language (fo).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.French">
            <summary>Represents the French language (fr).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.WesternFrisian">
            <summary>Represents the Western Frisian language (fy).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Irish">
            <summary>Represents the Irish language (ga).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.ScottishGaelic">
            <summary>Represents the Scottish Gaelic language (gd).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Galician">
            <summary>Represents the Galician language (gl).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Guaraní">
            <summary>Represents the Guaraní language (gn).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Gujarati">
            <summary>Represents the Gujarati language (gu).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Manx">
            <summary>Represents the Manx language (gv).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Hausa">
            <summary>Represents the Hausa language (ha).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Hebrew">
            <summary>Represents the Hebrew language (he).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Hindi">
            <summary>Represents the Hindi language (hi).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.HiriMotu">
            <summary>Represents the Hiri Motu language (ho).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Croatian">
            <summary>Represents the Croatian language (hr).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Haitian">
            <summary>Represents the Haitian language (ht).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Hungarian">
            <summary>Represents the Hungarian language (hu).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Armenian">
            <summary>Represents the Armenian language (hy).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Herero">
            <summary>Represents the Herero language (hz).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Interlingua">
            <summary>Represents the Interlingua (International Auxiliary Language Association) language (ia).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Indonesian">
            <summary>Represents the Indonesian language (id).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Interlingue">
            <summary>Represents the Interlingue language (ie).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Igbo">
            <summary>Represents the Igbo language (ig).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.SichuanYi">
            <summary>Represents the Sichuan Yi language (ii).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Inupiaq">
            <summary>Represents the Inupiaq language (ik).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Ido">
            <summary>Represents the Ido language (io).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Icelandic">
            <summary>Represents the Icelandic language (is).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Italian">
            <summary>Represents the Italian language (it).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Inuktitut">
            <summary>Represents the Inuktitut language (iu).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Japanese">
            <summary>Represents the Japanese language (ja).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Javanese">
            <summary>Represents the Javanese language (jv).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Georgian">
            <summary>Represents the Georgian language (ka).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Kongo">
            <summary>Represents the Kongo language (kg).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Kikuyu">
            <summary>Represents the Kikuyu language (ki).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Kwanyama">
            <summary>Represents the Kwanyama language (kj).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Kazakh">
            <summary>Represents the Kazakh language (kk).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Kalaallisut">
            <summary>Represents the Kalaallisut language (kl).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Khmer">
            <summary>Represents the Khmer language (km).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Kannada">
            <summary>Represents the Kannada language (kn).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Korean">
            <summary>Represents the Korean language (ko).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Kanuri">
            <summary>Represents the Kanuri language (kr).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.KashmiriDevanagari">
            <summary>Represents the Kashmiri language (ks), written in Devanagari.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.KashmiriArabic">
            <summary>Represents the Kashmiri language (ks), written in Arabic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.KurdishLatin">
            <summary>Represents the Kurdish language (ku), written in Latin.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.KurdishArabic">
            <summary>Represents the Kurdish language (ku), written in Arabic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Komi">
            <summary>Represents the Komi language (kv).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Cornish">
            <summary>Represents the Cornish language (kw).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Kirghiz">
            <summary>Represents the Kirghiz language (ky).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Latin">
            <summary>Represents the Latin language (la).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Luxembourgish">
            <summary>Represents the Luxembourgish language (lb).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Ganda">
            <summary>Represents the Ganda language (lg).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Limburgish">
            <summary>Represents the Limburgish language (li).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Lingala">
            <summary>Represents the Lingala language (ln).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Lao">
            <summary>Represents the Lao language (lo).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Lithuanian">
            <summary>Represents the Lithuanian language (lt).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.LubaKatanga">
            <summary>Represents the Lithuanian language (lt).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Latvian">
            <summary>Represents the Latvian language (lv).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Malagasy">
            <summary>Represents the Malagasy language (mg).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Marshallese">
            <summary>Represents the Marshallese language (mh).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Māori">
            <summary>Represents the Māori language (mi).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Macedonian">
            <summary>Represents the Macedonian language (mk).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Malayalam">
            <summary>Represents the Malayalam language (ml).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Mongolian">
            <summary>Represents the Mongolian language (mn).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Marathi">
            <summary>Represents the Marathi language (mr).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Malay">
            <summary>Represents the Malay language (ms).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Maltese">
            <summary>Represents the Maltese language (mt).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Burmese">
            <summary>Represents the Burmese language (my).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Nauru">
            <summary>Represents the Nauru language (na).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.NorwegianBokmål">
            <summary>Represents the Norwegian Bokmål language (nb).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.NorthNdebele">
            <summary>Represents the North Ndebele language (nd).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Nepali">
            <summary>Represents the Nepali language (ne).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Ndonga">
            <summary>Represents the Ndonga language (ng).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Dutch">
            <summary>Represents the Dutch language (nl).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.NorwegianNynorsk">
            <summary>Represents the Norwegian Nynorsk language (nn).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.SouthNdebele">
            <summary>Represents the South Ndebele language (nr).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Navajo">
            <summary>Represents the Navajo language (nv).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Chichewa">
            <summary>Represents the Chichewa language (ny).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Occitan">
            <summary>Represents the Occitan language (oc).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Ojibwa">
            <summary>Represents the Ojibwa language (oj).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Oromo">
            <summary>Represents the Oromo language (om).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Oriya">
            <summary>Represents the Oriya language (or).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Ossetian">
            <summary>Represents the Ossetian language (os).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.PanjabiDevanagari">
            <summary>Represents the Panjabi language (pa), written in Devanagari.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.PanjabiArabic">
            <summary>Represents the Panjabi language (pa), written in Arabic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Pāli">
            <summary>Represents the Pāli language (pi).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Polish">
            <summary>Represents the Polish language (pl).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Pashto">
            <summary>Represents the Pashto language (ps).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Portuguese">
            <summary>Represents the Portuguese variety of the Portuguese language (pt).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.BrazilianPortuguese">
            <summary>Represents the Brazilian variety of the Portuguese language (pt).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Quechua">
            <summary>Represents the Quechua language (qu).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.RaetoRomance">
            <summary>Represents the Raeto-Romance language (rm).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Kirundi">
            <summary>Represents the Kirundi language (rn).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Romanian">
            <summary>Represents the Romanian language (ro).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Russian">
            <summary>Represents the Russian language (ru).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Kinyarwanda">
            <summary>Represents the Kinyarwanda language (rw).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Sanskrit">
            <summary>Represents the Sanskrit language (sa).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Sardinian">
            <summary>Represents the Sardinian language (sc).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.SindhiDevanagari">
            <summary>Represents the Sindhi language (sd), written in Devanagari.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.SindhiArabic">
            <summary>Represents the Sindhi language (sd), written in Arabic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.NorthernSami">
            <summary>Represents the Northern Sami language (se).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Sango">
            <summary>Represents the Sango language (sg).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Sinhala">
            <summary>Represents the Sinhala language (si).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Slovak">
            <summary>Represents the Slovak language (sk).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Slovenian">
            <summary>Represents the Slovenian language (sl).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Samoan">
            <summary>Represents the Samoan language (sm).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Shona">
            <summary>Represents the Shona language (sn).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Somali">
            <summary>Represents the Somali language (so).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Albanian">
            <summary>Represents the Albanian language (sq).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Serbian">
            <summary>Represents the Serbian language (sr).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Swati">
            <summary>Represents the Swati language (ss).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.SouthernSotho">
            <summary>Represents the Southern Sotho language (st).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Sundanese">
            <summary>Represents the Sundanese language (su).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Swedish">
            <summary>Represents the Swedish language (sv).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Swahili">
            <summary>Represents the Swahili language (sw).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Tamil">
            <summary>Represents the Tamil language (ta).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Telugu">
            <summary>Represents the Telugu language (te).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.TajikCyrillic">
            <summary>Represents the Tajik language (tg), written in Cyrillic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.TajikArabic">
            <summary>Represents the Tajik language (tg), written in Arabic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Thai">
            <summary>Represents the Thai language (th).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Tigrinya">
            <summary>Represents the Tigrinya language (ti).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.TurkmenLatin">
            <summary>Represents the Turkmen language (tk), written in Latin.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.TurkmenCyrillic">
            <summary>Represents the Turkmen language (tk), written in Cyrillic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Tagalog">
            <summary>Represents the Tagalog language (tl).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Tswana">
            <summary>Represents the Tswana language (tn).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Tonga">
            <summary>Represents the Tonga language (to).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Turkish">
            <summary>Represents the Turkish language (tr).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Tsonga">
            <summary>Represents the Tsonga language (ts).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.TatarCyrillic">
            <summary>Represents the Tatar language (tt), written in Cyrillic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.TatarLatin">
            <summary>Represents the Tatar language (tt), written in Latin.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.TatarArabic">
            <summary>Represents the Tatar language (tt), written in Arabic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Twi">
            <summary>Represents the Twi language (tw).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Tahitian">
            <summary>Represents the Tahitian language (ty).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.UighurLatin">
            <summary>Represents the Uighur language (ug), written in Latin.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.UighurArabic">
            <summary>Represents the Uighur language (ug), written in Arabic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Ukrainian">
            <summary>Represents the Ukrainian language (uk).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Urdu">
            <summary>Represents the Urdu language (ur).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.UzbekLatin">
            <summary>Represents the Uzbek language (uz), written in Latin.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.UzbekCyrillic">
            <summary>Represents the Uzbek language (uz), written in Cyrillic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.UzbekArabic">
            <summary>Represents the Uzbek language (uz), written in Arabic.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Venda">
            <summary>Represents the Venda language (ve).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Vietnamese">
            <summary>Represents the Vietnamese language (vi).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Volapük">
            <summary>Represents the Volapük language (vo).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Walloon">
            <summary>Represents the Walloon language (wa).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Wolof">
            <summary>Represents the Wolof language (wo).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Xhosa">
            <summary>Represents the Xhosa language (xh).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Yiddish">
            <summary>Represents the Yiddish language (yi).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Yoruba">
            <summary>Represents the Yoruba language (yo).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Zhuang">
            <summary>Represents the Zhuang language (za).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.ChineseTraditional">
            <summary>Represents the Chinese language (zh), written with traditional characters.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.ChineseSimplified">
            <summary>Represents the Chinese language (zh), written with simplified characters.</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Zulu">
            <summary>Represents the Zulu language (zu).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Klingon">
            <summary>Represents the Klingon language (tlh).</summary>
        </member>
        <member name="F:RT.Util.Lingo.Language.Lojban">
            <summary>Represents the Lojban language (jbo).</summary>
        </member>
        <member name="T:RT.Util.Lingo.LanguageMethods">
            <summary>
            Extension methods for the <see cref="T:RT.Util.Lingo.Language"/> enum.
            </summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageMethods.GetNumberSystem(RT.Util.Lingo.Language)">
            <summary>Gets the number system associated with the specified language.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageMethods.GetNativeName(RT.Util.Lingo.Language)">
            <summary>Gets the native name of the specified language.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageMethods.GetEnglishName(RT.Util.Lingo.Language)">
            <summary>Gets the English name of the specified language.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageMethods.GetIsoLanguageCode(RT.Util.Lingo.Language)">
            <summary>Gets the ISO language code of the specified language.</summary>
        </member>
        <member name="T:RT.Util.Lingo.SetTranslation`1">
            <summary>Used for functions which change the language of the program.</summary>
            <typeparam name="TTranslation">The type of the translation class.</typeparam>
            <param name="translation">The new translation to be used by the program.</param>
        </member>
        <member name="T:RT.Util.Lingo.Lingo">
            <summary>
            Static class with helper methods to support multi-language applications.
            </summary>
        </member>
        <member name="F:RT.Util.Lingo.Lingo.AlsoSaveTranslationsTo">
            <summary>
            If not null, whenever a translation is saved, Lingo will also attempt to save it in this directory. Use an absolute path. Lingo will
            quietly ignore any errors when saving here, and will do nothing if the path is missing. Lingo will overwrite read-only files without prompts.
            </summary>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.LoadTranslationOrDefault``1(System.String,RT.Util.Lingo.Language@)">
            <summary>Attempts to load the translation for the specified module and language. The translation must exist in the application 
            executable directory under a subdirectory called "Translations". If the translation loaded successfully, returns the translation instance.
            Otherwise, the <typeparamref name="TTranslation"/> default constructor is called and the result returned, and
            <paramref name="language"/> is set to the default language returned by this constructor.</summary>
            <typeparam name="TTranslation">The type of the translation class to load the translation into.</typeparam>
            <param name="module">The name of the module whose translation to load.</param>
            <param name="language">The language code of the language to load. This is set to the default language if the specified language cannot be loaded.</param>
            <returns>The loaded or default translation.</returns>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.LoadTranslation``1(System.String,RT.Util.Lingo.Language)">
            <summary>Loads and returns the translation for the specified module and language. The translation must exist in the application 
            executable directory under a subdirectory called "Translations". If the translation cannot be loaded successfully, an exception is thrown.</summary>
            <typeparam name="TTranslation">The type of the translation class to load the translation into.</typeparam>
            <param name="module">The name of the module whose translation to load.</param>
            <param name="language">The language code of the language to load.</param>
            <returns>The loaded translation.</returns>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.LoadTranslation(System.Type,System.String,RT.Util.Lingo.Language)">
            <summary>Loads and returns the translation for the specified module and language. The translation must exist in the application 
            executable directory under a subdirectory called "Translations". If the translation cannot be loaded successfully, an exception is thrown.</summary>
            <param name="translationType">The type of the translation class to load the translation into.</param>
            <param name="module">The name of the module whose translation to load.</param>
            <param name="language">The language code of the language to load.</param>
            <returns>The loaded translation.</returns>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.SaveTranslation``1(System.String,``0)">
            <summary>Writes the specified translation for the specified module to an XML file in the application directory.</summary>
            <typeparam name="TTranslation">Translation class to write.</typeparam>
            <param name="moduleName">Name of the module for which this is a translation.</param>
            <param name="translation">The translation to save.</param>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.SaveTranslation(System.Type,System.String,RT.Util.Lingo.TranslationBase)">
            <summary>Writes the specified translation for the specified module to an XML file in the application directory.</summary>
            <param name="translationType">Translation class to write.</param>
            <param name="moduleName">Name of the module for which this is a translation.</param>
            <param name="translation">The translation to save.</param>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.LanguageFromIsoCode(System.String)">
            <summary>Returns the language from the <see cref="T:RT.Util.Lingo.Language"/> enum which corresponds to the specified ISO code, or null if none matches.</summary>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.TranslateControl(System.Windows.Forms.Control,System.Object)">
            <summary>Translates the text of the specified control and all its sub-controls using the specified translation object.</summary>
            <param name="control">Control whose text is to be translated.</param>
            <param name="translation">Object containing the translations.</param>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.PostBuildStep``1(RT.Util.IPostBuildReporter,System.Reflection.Assembly[])">
            <summary>Checks the specified assemblies for any obvious Lingo-related problems, including unused strings, mismatched enum translations.</summary>
            <typeparam name="TTranslation">The type of the translation class.</typeparam>
            <param name="rep">Post-build step reporter.</param>
            <param name="assemblies">A list of assemblies to check. The Lingo assembly is included automatically to ensure correct operation.</param>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.checkEnumTranslation(RT.Util.IPostBuildReporter,System.Type,System.Type)">
            <summary>Checks that the enum values declared in the specified enum type and the TrString fields declared in the specified translation type match exactly.</summary>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.TranslateWindow(System.Windows.Window,System.Object)">
            <summary>Translates the text of the specified control and all its sub-controls using the specified translation object.</summary>
            <param name="window">Control whose text is to be translated.</param>
            <param name="translation">Object containing the translations.</param>
        </member>
        <member name="T:RT.Util.Lingo.Lingo.TranslationFileGenerator">
            <summary>Contains utility methods to generate C# code for translation strings required for automated translation of forms and controls.</summary>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.TranslationFileGenerator.#ctor(System.String)">
            <summary>Constructor.</summary>
            <param name="filename">Path and filename where to store the auto-generated code.</param>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.TranslationFileGenerator.TranslateControl(System.Windows.Forms.Control,System.Object)">
            <summary>Translates the text of the specified control and all its sub-controls using the specified translation object, while simultaneously generating C# code for the required translation strings.</summary>
            <param name="control">Control whose text is to be translated.</param>
            <param name="translation">Object containing the translations.</param>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.TranslationFileGenerator.TranslateWindow(System.Windows.Window,System.Object)">
            <summary>Translates the text of the specified WPF window and all its sub-controls using the specified translation object, while simultaneously generating C# code for the required translation strings.</summary>
            <param name="window">Window whose controls are to be translated.</param>
            <param name="translation">Object containing the translations.</param>
        </member>
        <member name="M:RT.Util.Lingo.Lingo.TranslationFileGenerator.Dispose">
            <summary>Generates the file.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LingoNotesAttribute">
            <summary>Specifies notes to the translator, detailing the purpose, context, or format of a translatable string.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LingoNotesAttribute.#ctor(System.String)">
            <summary>Constructor for a <see cref="T:RT.Util.Lingo.LingoNotesAttribute"/> attribute.</summary>
            <param name="notes">Specifies notes to the translator, detailing the purpose, context, or format of a translatable string.</param>
        </member>
        <member name="P:RT.Util.Lingo.LingoNotesAttribute.Notes">
            <summary>Gets the associated notes to the translator, detailing the purpose, context, or format of a translatable string.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LingoInGroupAttribute">
            <summary>Specifies that a translatable string is in a particular group.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LingoInGroupAttribute.#ctor(System.Object)">
            <summary>Constructor for a <see cref="T:RT.Util.Lingo.LingoInGroupAttribute"/> attribute.</summary>
            <param name="group">Specifies that a translatable string is in a particular group.</param>
        </member>
        <member name="P:RT.Util.Lingo.LingoInGroupAttribute.Group">
            <summary>Gets the group a translatable string is in.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LingoStringClassAttribute">
            <summary>Specifies that a class is a class containing translatable strings.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LingoIgnoreAttribute">
            <summary>Marks a field in a translation class as one that does not represent a translatable string or a set of such strings.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LingoGroupAttribute">
            <summary>Specifies information about a group of translatable strings. Use this on a field in an enum type which enumerates the available groups of strings.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LingoGroupAttribute.#ctor(System.String,System.String)">
            <summary>Constructor.</summary>
            <param name="groupName">Specifies a short name for the group, to be used in the listbox in the translation window.</param>
            <param name="description">Specifies a long description for the group, to be displayed above the list of string codes while the group is selected.</param>
        </member>
        <member name="P:RT.Util.Lingo.LingoGroupAttribute.GroupName">
            <summary>Specifies a short name for the group, to be used in the listbox in the translation window.</summary>
        </member>
        <member name="P:RT.Util.Lingo.LingoGroupAttribute.Description">
            <summary>Specifies a long description for the group, to be displayed above the list of string codes while the group is selected.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LingoAutoGeneratedAttribute">
            <summary>This attribute is automatically added by <see cref="M:RT.Util.Lingo.Lingo.TranslationFileGenerator.TranslateControl(System.Windows.Forms.Control,System.Object)"/> to indicate fields of string classes that were generated automatically.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LingoAutoGeneratedAttribute.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LanguageInfoAttribute">
            <summary>Provides information about a language. Used on the values in the <see cref="T:RT.Util.Lingo.Language"/> enum.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LanguageInfoAttribute.#ctor(System.String,System.String,System.String,System.Type)">
            <summary>Constructor.</summary>
            <param name="languageCode">Specifies the ISO-639 language code of the language.</param>
            <param name="englishName">Specifies the English name of the language.</param>
            <param name="nativeName">Specifies the native name of the language.</param>
            <param name="numberSystem">Specifies the number system of the language.</param>
        </member>
        <member name="P:RT.Util.Lingo.LanguageInfoAttribute.LanguageCode">
            <summary>Specifies the ISO-639 language code of the language.</summary>
        </member>
        <member name="P:RT.Util.Lingo.LanguageInfoAttribute.EnglishName">
            <summary>Specifies the English name of the language.</summary>
        </member>
        <member name="P:RT.Util.Lingo.LanguageInfoAttribute.NativeName">
            <summary>Specifies the native name of the language.</summary>
        </member>
        <member name="P:RT.Util.Lingo.LanguageInfoAttribute.NumberSystem">
            <summary>Specifies the number system of the language.</summary>
        </member>
        <member name="T:RT.Util.Lingo.NumberSystem">
            <summary>Abstract class to represent a number system.</summary>
        </member>
        <member name="M:RT.Util.Lingo.NumberSystem.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.NumberSystem.GetString(System.Double)">
            <summary>Determines which string (numbered from 0) should be used for the fractional number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.NumberSystem.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.NumberSystem.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.OneStringNumberSystem">
            <summary>Number system with only one string for all numbers (e.g. Japanese, Korean, Vietnamese, Turkish).</summary>
        </member>
        <member name="M:RT.Util.Lingo.OneStringNumberSystem.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.OneStringNumberSystem.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.OneStringNumberSystem.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.Singular1PluralNumberSystem">
            <summary>Number system with a string for 1 and another for all other numbers (e.g. Danish, Dutch, English, Faroese, German, Norwegian, Swedish, Estonian, Finnish, Greek, Hebrew, Italian, Portuguese, Spanish, Esperanto).</summary>
        </member>
        <member name="M:RT.Util.Lingo.Singular1PluralNumberSystem.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.Singular1PluralNumberSystem.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.Singular1PluralNumberSystem.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.Singular01PluralNumberSystem">
            <summary>Number system with a string for 0 and 1 and another for all other numbers (e.g. French, Brazilian Portuguese).</summary>
        </member>
        <member name="M:RT.Util.Lingo.Singular01PluralNumberSystem.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.Singular01PluralNumberSystem.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.Singular01PluralNumberSystem.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LatvianNumberSystem">
            <summary>Number system for Latvian: one string for numbers ending in 1 but not 11; one for everything else but 0; and one for 0.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LatvianNumberSystem.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LatvianNumberSystem.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.LatvianNumberSystem.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.IrishNumberSystem">
            <summary>Number system for Irish: one string for numbers ending in 1-6, one for numbers ending in 7-9, one for numbers ending in 0.</summary>
        </member>
        <member name="M:RT.Util.Lingo.IrishNumberSystem.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.IrishNumberSystem.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.IrishNumberSystem.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.RomanianNumberSystem">
            <summary>Number system for Romanian: one string for 1; one for 0 and for all numbers ending in something between 01 and 19; and one for all other numbers.</summary>
        </member>
        <member name="M:RT.Util.Lingo.RomanianNumberSystem.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.RomanianNumberSystem.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.RomanianNumberSystem.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.LithuanianNumberSystem">
            <summary>Number system for Lithuanian: one string for numbers ending in 1 but not 11; one for numbers ending in 2-9 but not 12-19; and one for all other numbers.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LithuanianNumberSystem.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.LithuanianNumberSystem.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.LithuanianNumberSystem.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.SlavicNumberSystem1">
            <summary>One string for numbers ending in 1 but not 11; one for numbers ending in 2-4 but not 12-14; and one for all other numbers (e.g. Croatian, Serbian, Russian, Ukrainian).</summary>
        </member>
        <member name="M:RT.Util.Lingo.SlavicNumberSystem1.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.SlavicNumberSystem1.GetString(System.Double)">
            <summary>Determines which string (numbered from 0) should be used for the fractional number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.SlavicNumberSystem1.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.SlavicNumberSystem1.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.SlavicNumberSystem2">
            <summary>One string for 1, one for 2-4, and one for all other numbers (e.g. Slovak, Czech).</summary>
        </member>
        <member name="M:RT.Util.Lingo.SlavicNumberSystem2.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.SlavicNumberSystem2.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.SlavicNumberSystem2.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.PolishNumberSystem">
            <summary>Number system for Polish: one string for 1; one for numbers ending in 2-4 but not 12-14; and one for all other numbers.</summary>
        </member>
        <member name="M:RT.Util.Lingo.PolishNumberSystem.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.PolishNumberSystem.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.PolishNumberSystem.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.SlovenianNumberSystem">
            <summary>Number system for Slovenian: one string for 1; one for 2; one for 3 and 4; and one for all other numbers.</summary>
        </member>
        <member name="M:RT.Util.Lingo.SlovenianNumberSystem.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.SlovenianNumberSystem.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.SlovenianNumberSystem.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.TagalogNumberSystem">
            <summary>Number system for Tagalog (Filipino): one string for numbers ending in 4, 6, or 9; one for all other numbers.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TagalogNumberSystem.GetString(System.Int32)">
            <summary>Determines which string (numbered from 0) should be used for the number <paramref name="n"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TagalogNumberSystem.GetDescription(System.Int32)">
            <summary>Gets a short textual representation of the <paramref name="n"/>th string (e.g. sglr, plrl).</summary>
        </member>
        <member name="P:RT.Util.Lingo.TagalogNumberSystem.NumStrings">
            <summary>Returns the number of strings required by this number system.</summary>
        </member>
        <member name="T:RT.Util.Lingo.TranslationCreateForm">
            <summary>Provides a dialog in which the user can create a new translation of the software.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TranslationCreateForm.CreateTranslation``1(System.String,System.String,System.Single)">
            <summary>Presents the user with a dialog to select a language from, and (if they click "OK") creates a new XML file for the new translation.</summary>
            <typeparam name="TTranslation">Class containing the translatable strings.</typeparam>
            <param name="moduleName">Name of the module being translated (forms part of the translation's XML file).</param>
            <param name="fontName">Specifies the name of the font to use in this dialog, or null for the default font.</param>
            <param name="fontSize">Specifies the size of the font to use in this dialog. Ignored if <paramref name="fontName"/> is null.</param>
            <returns>If the user clicked OK, creates a new XML file and returns the translation. If the user clicked Cancel, returns null.</returns>
        </member>
        <member name="M:RT.Util.Lingo.TranslationCreateForm.#ctor">
            <summary>Main constructor.</summary>
        </member>
        <member name="P:RT.Util.Lingo.TranslationCreateForm.SelectedLanguage">
            <summary>Gets the language selected by the user.</summary>
        </member>
        <member name="T:RT.Util.Lingo.ITranslationDialog">
            <summary>Contains methods and properties to be implemented by the different implementations of the Lingo translation GUI.</summary>
        </member>
        <member name="M:RT.Util.Lingo.ITranslationDialog.SaveChanges(System.Boolean)">
            <summary>Saves the current translation.</summary>
            <param name="fireTranslationChanged">True if the TranslationChanged event is to be fired; false if not.</param>
        </member>
        <member name="M:RT.Util.Lingo.ITranslationDialog.CloseWithoutPrompts">
            <summary>Closes the dialog without prompting for saving or discarding unsaved changes.</summary>
        </member>
        <member name="P:RT.Util.Lingo.ITranslationDialog.AnyChanges">
            <summary>Determines whether any changes have been made to the translation by the user since the last save.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TrStringNumInfo.#ctor">
            <summary>For XAML. Do not call.</summary>
        </member>
        <member name="T:RT.Util.Lingo.TranslationInfoState">
            <summary>Describes the state of a single translation (a <see cref="T:RT.Util.Lingo.TrString"/> or <see cref="T:RT.Util.Lingo.TrStringNum"/> instance).</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationInfoState.UpToDateAndSaved">
            <summary>The string is up to date and has been saved to the translation file.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationInfoState.OutOfDate">
            <summary>The string is out of date, i.e. the original text has changed since the translation was written (or the user has explicitly marked it as out-of-date).</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationInfoState.Unsaved">
            <summary>The user has made changes to the string which have as yet not been saved to the translation file.</summary>
        </member>
        <member name="T:RT.Util.Lingo.TranslationForm`1">
            <summary>Provides a GUI for the user to edit a translation for the application.</summary>
            <typeparam name="TTranslation">The type containing the <see cref="T:RT.Util.Lingo.TrString"/> and <see cref="T:RT.Util.Lingo.TrStringNum"/> fields to be translated.</typeparam>
        </member>
        <member name="M:RT.Util.Lingo.TranslationForm`1.#ctor(RT.Util.Lingo.TranslationForm{`0}.Settings,System.Drawing.Icon,System.String,System.String,RT.Util.Lingo.Language)">
            <summary>Main constructor.</summary>
            <param name="settings">Settings of the <see cref="T:RT.Util.Lingo.TranslationForm`1"/>.</param>
            <param name="icon">Application icon to use.</param>
            <param name="programTitle">Title of the program. Used in the title bar.</param>
            <param name="moduleName">Used for locating the translation file to be edited under the Translations directory.</param>
            <param name="language">The language to be edited.</param>
        </member>
        <member name="M:RT.Util.Lingo.TranslationForm`1.CloseWithoutPrompts">
            <summary>
            Closes the translation form without asking the user's confirmation when unsaved changes exist.
            </summary>
        </member>
        <member name="M:RT.Util.Lingo.TranslationForm`1.SaveChanges(System.Boolean)">
            <summary>Saves the changes to the translation currently being edited.</summary>
            <param name="fireTranslationChanged">If true, the <see cref="E:RT.Util.Lingo.TranslationForm`1.TranslationChanged"/> event is fired if any changes were made. If false, the event is not fired.</param>
        </member>
        <member name="E:RT.Util.Lingo.TranslationForm`1.TranslationChanged">
            <summary>
            Fires every time the translation is updated on the disk (i.e. when the user clicks either "Save &amp; Close" or "Apply changes").
            </summary>
        </member>
        <member name="P:RT.Util.Lingo.TranslationForm`1.AnyChanges">
            <summary>
            Returns true if the user has made any changes that are currently unsaved.
            </summary>
        </member>
        <member name="T:RT.Util.Lingo.TranslationForm`1.Settings">
            <summary>Holds the settings of the <see cref="T:RT.Util.Lingo.TranslationForm`1"/>.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationForm`1.Settings.SplitterDistance">
            <summary>Remembers the position of the horizontal splitter (between the tree view and the main interface).</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationForm`1.Settings.LastFindQuery">
            <summary>Remembers the string last typed in the Find dialog.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationForm`1.Settings.LastFindOrig">
            <summary>Remembers the last settings of the "Search Original" option in the Find dialog.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationForm`1.Settings.LastFindTrans">
            <summary>Remembers the last settings of the "Search Translation" option in the Find dialog.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationForm`1.Settings.FontName">
            <summary>Remembers the name of the last font used.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationForm`1.Settings.FontSize">
            <summary>Remembers the size of the last font used.</summary>
        </member>
        <member name="T:RT.Util.Lingo.TranslationWindow">
            <summary>
            Interaction logic for TranslationWindow.xaml
            </summary>
            <summary>
            TranslationWindow
            </summary>
        </member>
        <member name="M:RT.Util.Lingo.TranslationWindow.#ctor(System.Type,RT.Util.Lingo.TranslationWindow.Settings,System.Windows.Media.ImageSource,System.String,System.String,RT.Util.Lingo.Language)">
            <summary>Main constructor.</summary>
            <param name="translationType">The type containing the <see cref="T:RT.Util.Lingo.TrString"/> and <see cref="T:RT.Util.Lingo.TrStringNum"/> fields to be translated.</param>
            <param name="settings">Settings of the <see cref="T:RT.Util.Lingo.TranslationWindow"/>.</param>
            <param name="icon">Application icon to use.</param>
            <param name="programTitle">Title of the program. Used in the title bar.</param>
            <param name="moduleName">Used for locating the translation file to be edited under the Translations directory.</param>
            <param name="language">The language to be edited.</param>
        </member>
        <member name="M:RT.Util.Lingo.TranslationWindow.SaveChanges(System.Boolean)">
            <summary>TODO: comment</summary>
        </member>
        <member name="M:RT.Util.Lingo.TranslationWindow.CloseWithoutPrompts">
            <summary>TODO: comment</summary>
        </member>
        <member name="M:RT.Util.Lingo.TranslationWindow.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="E:RT.Util.Lingo.TranslationWindow.TranslationChanged">
            <summary>
            Fires every time the translation is updated on the disk (i.e. when the user clicks either "Save &amp; Close" or "Apply changes").
            </summary>
        </member>
        <member name="P:RT.Util.Lingo.TranslationWindow.AnyChanges">
            <summary>Gets a value indicating whether any changes have been made by the user since the last save.</summary>
        </member>
        <member name="T:RT.Util.Lingo.TranslationWindow.Settings">
            <summary>Holds the settings of the <see cref="T:RT.Util.Lingo.TranslationForm`1"/>.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationWindow.Settings.SplitterDistance">
            <summary>Remembers the position of the horizontal splitter (between the tree view and the main interface).</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationWindow.Settings.LastFindQuery">
            <summary>Remembers the string last typed in the Find dialog.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationWindow.Settings.LastFindOrig">
            <summary>Remembers the last settings of the "Search Original" option in the Find dialog.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationWindow.Settings.LastFindTrans">
            <summary>Remembers the last settings of the "Search Translation" option in the Find dialog.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationWindow.Settings.FontName">
            <summary>Remembers the name of the last font used.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TranslationWindow.Settings.FontSize">
            <summary>Remembers the size of the last font used.</summary>
        </member>
        <member name="T:RT.Util.Lingo.TrString">
            <summary>Represents a translatable string.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TrString.Translation">
            <summary>Contains the current translation of this string, or for the original language, the current original text.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TrString.Old">
            <summary>Contains the original text this string was last translated from, or for the original language, null.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TrString.#ctor">
            <summary>Default constructor (required for Classify).</summary>
        </member>
        <member name="M:RT.Util.Lingo.TrString.#ctor(System.String)">
            <summary>Constructs a new translatable string given the specified translation.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TrString.op_Implicit(System.String)~RT.Util.Lingo.TrString">
            <summary>Implicit cast from string to TrString.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TrString.op_Implicit(RT.Util.Lingo.TrString)~System.String">
            <summary>Implicit cast from TrString to string.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TrString.Fmt(System.Object[])">
            <summary>Formats a string using <see cref="M:System.String.Format(System.String,System.Object[])"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TrString.FmtEnumerable(System.Object[])">
            <summary>Formats a string using <see cref="M:RT.Util.ExtensionMethods.StringExtensions.FmtEnumerable(System.String,System.Object[])"/>.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TrString.ToString">
            <summary>
                Returns the translation.</summary>
            <returns>
                The translation.</returns>
        </member>
        <member name="M:RT.Util.Lingo.TrString.Color(System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
                Returns the translation in the specified console color.</summary>
            <param name="foreground">
                The foreground color in which to color the translation, or <c>null</c> to use the console’s default foreground color.</param>
            <param name="background">
                The background color in which to color the translation, or <c>null</c> to use the console’s default background color.</param>
            <returns>
                A potentially colourful string.</returns>
        </member>
        <member name="T:RT.Util.Lingo.TrStringNum">
            <summary>
                Represents a translatable string into which numbers are interpolated, requiring grammatical morphology according
                to a language's <see cref="T:RT.Util.Lingo.NumberSystem"/>.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TrStringNum.IsNumber">
            <summary>Specifies which of the interpolated objects are integers.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TrStringNum.Translations">
            <summary>Contains the current translation of this string, or for the original language, the current original text.</summary>
        </member>
        <member name="F:RT.Util.Lingo.TrStringNum.Old">
            <summary>Contains the original text this string was last translated from. Null for the original language.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TrStringNum.#ctor">
            <summary>Default constructor (required for Classify).</summary>
        </member>
        <member name="M:RT.Util.Lingo.TrStringNum.#ctor(System.String[],System.Boolean[])">
            <summary>
                Constructs a new translatable string with the specified translations.</summary>
            <param name="translations">
                Specifies the translations for this string. The number of elements is expected to be equal to the number of
                strings as defined by your native language's NumberSystem, multiplied by the number of elements in <paramref
                name="isNumber"/> that are true.</param>
            <param name="isNumber">
                Specifies which of the interpolated variables are integers.</param>
            <example>
                <para>
                    The following example code demonstrates how to instantiate a string that interpolates both a string (file
                    name) and an integer (number of bytes) correctly.</para>
                <code>
                    TrStringNum MyString = new TrStringNum(
                        new[] { "The file {0} contains {1} byte.", "The file {0} contains {1} bytes." },
                        new[] { false, true }
                    );</code></example>
        </member>
        <member name="M:RT.Util.Lingo.TrStringNum.#ctor(System.String[])">
            <summary>
                Constructs a new translatable string with one interpolated integer and no other interpolated arguments, and
                the specified translations.</summary>
        </member>
        <member name="M:RT.Util.Lingo.TrStringNum.Fmt(RT.Util.Lingo.TranslationBase,System.Object[])">
            <summary>
                Selects the correct string and interpolates the specified arguments.</summary>
            <param name="tr">
                Current translation. Its language’s number system will be used to interpolate the translation.</param>
            <param name="args">
                Arguments to be interpolated into the translation.</param>
        </member>
        <member name="M:RT.Util.Lingo.TrStringNum.Fmt(RT.Util.Lingo.Language,System.Object[])">
            <summary>
                Selects the correct string and interpolates the specified arguments.</summary>
            <param name="lang">
                Current translation’s language. Its number system will be used to interpolate the translation.</param>
            <param name="args">
                Arguments to be interpolated into the translation.</param>
        </member>
        <member name="M:RT.Util.Lingo.TrStringNum.Fmt(RT.Util.Lingo.NumberSystem,System.Object[])">
            <summary>
                Selects the correct string and interpolates the specified arguments.</summary>
            <param name="ns">
                Number system to use to interpolate the translation.</param>
            <param name="args">
                Arguments to be interpolated into the translation.</param>
        </member>
        <member name="T:RT.Util.LogType">
            <summary>Specifies the type of a log message logged using a subclass of <see cref="T:RT.Util.LoggerBase"/>.</summary>
        </member>
        <member name="F:RT.Util.LogType.Info">
            <summary>Specifies an informational log message.</summary>
        </member>
        <member name="F:RT.Util.LogType.Warning">
            <summary>Specifies a warning message.</summary>
        </member>
        <member name="F:RT.Util.LogType.Error">
            <summary>Specifies an error message.</summary>
        </member>
        <member name="F:RT.Util.LogType.Debug">
            <summary>Specifies a debug message.</summary>
        </member>
        <member name="T:RT.Util.LoggerBase">
            <summary>
                Abstract base class for all loggers. Implements some common functionality.</summary>
            <remarks>
                Use a lock on this object to make several consecutive logging operations atomic.</remarks>
        </member>
        <member name="F:RT.Util.LoggerBase.VerbosityLimit">
            <summary>
                Holds the current verbosity limit for each of the log types. Only messages with same or lower verbosity will
                be printed. Defaults to level 1 for all messages except debug, which defaults to 0.</summary>
            <remarks>
                Applications can print a message with a verbosity level of 0 - such messages cannot be disabled.</remarks>
        </member>
        <member name="F:RT.Util.LoggerBase.TimestampFormat">
            <summary>
                Holds a format string for printing the date/time at which a log entry was added. Defaults to a full
                ISO-formatted date/time string with milliseconds.</summary>
        </member>
        <member name="F:RT.Util.LoggerBase.MessageFormat">
            <summary>
                Holds a format string for the log information message. This will receive the following arguments: {0}:
                timestamp, {1}: message type string, {2}: message verbosity level. The actual message will be printed
                immediately after the log information message.</summary>
        </member>
        <member name="F:RT.Util.LoggerBase.IndentFormatSuffix">
            <summary>
                When printing multi-line (e.g. wrapped) messages, the indent text will consist of a number of spaces and end
                with this suffix.</summary>
        </member>
        <member name="F:RT.Util.LoggerBase.TimestampInUTC">
            <summary>If true, the timestamps will be printed in UTC. Otherwise in local time. Defaults to false.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.#ctor">
            <summary>Initialises some members to their default values.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.GetMessageTypeString(RT.Util.LogType)">
            <summary>Specifies a short string describing each log type (INFO, WARN, ERROR, or DEBUG).</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.ConfigureVerbosity(System.String)">
            <summary>
                Takes a string which encodes verbosity limit configuration, parses it and sets the limits accordingly. On
                failure throws an ArgumentException with a fairly detailed description of the string format.</summary>
            <remarks>
                <para>
                    Examples of valid strings:</para>
                <list type="table">
                    <item><term>
                        ""</term>
                    <description>
                        sets default values</description></item>
                    <item><term>
                        "3"</term>
                    <description>
                        sets all limits to 3</description></item>
                    <item><term>
                        "2d0"</term>
                    <description>
                        sets all limits to 2, then set the debug limit to 0</description></item>
                    <item><term>
                        "i0w1e2d3"</term>
                    <description>
                        sets info=0, warning=1, error=2, debug=3</description></item></list>
                <para>
                    Intended use: configuring the logger via a command-line option.</para></remarks>
        </member>
        <member name="M:RT.Util.LoggerBase.GetFormattedStrings(System.String@,System.String@,System.UInt32,RT.Util.LogType)">
            <summary>
                Helps prepare a log message to the derived classes. Takes the parameters supplied by a call to one of the Log
                methods and generates two strings: the <paramref name="fmtInfo"/> which is the message header and the
                <paramref name="indent"/> which is the indent text.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.Log(System.UInt32,RT.Util.LogType,System.String)">
            <summary>
                Appends an entry to the log. Derived classes implement this to put the log data where necessary.</summary>
            <remarks>
                Note that the various specialised functions such as <see cref="M:RT.Util.LoggerBase.Warn(System.String)"/> simply call this method to do
                the work.</remarks>
            <param name="verbosity">
                Verbosity level of this message.</param>
            <param name="type">
                Message type (info, warning, error or debug).</param>
            <param name="message">
                The message itself.</param>
            <seealso cref="M:RT.Util.LoggerBase.GetFormattedStrings(System.String@,System.String@,System.UInt32,RT.Util.LogType)"/>
        </member>
        <member name="M:RT.Util.LoggerBase.Separator">
            <summary>Creates a visual separation in the log, for example if a new section starts.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.IsLogOn(System.UInt32,RT.Util.LogType)">
            <summary>Returns true if a message of the specified verbosity and type will actually end up being logged.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.Info(System.String)">
            <summary>Appends an informational message to the log.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.Info(System.UInt32,System.String)">
            <summary>Appends an informational message to the log.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.Warn(System.String)">
            <summary>Appends a warning message to the log.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.Warn(System.UInt32,System.String)">
            <summary>Appends a warning message to the log.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.Error(System.String)">
            <summary>Appends an error message to the log.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.Error(System.UInt32,System.String)">
            <summary>Appends an error message to the log.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.Debug(System.String)">
            <summary>Appends a debug message to the log.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.Debug(System.UInt32,System.String)">
            <summary>Appends a debug message to the log.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.IsInfoOn(System.UInt32)">
            <summary>Determines whether an informational message would be visible at specified verbosity.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.IsWarnOn(System.UInt32)">
            <summary>Determines whether a warning message would be visible at specified verbosity.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.IsErrorOn(System.UInt32)">
            <summary>Determines whether an error message would be visible at specified verbosity.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.IsDebugOn(System.UInt32)">
            <summary>Determines whether a debug message would be visible at specified verbosity.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.Exception(System.Exception,RT.Util.LogType)">
            <summary>Logs an exception with a stack trace.</summary>
        </member>
        <member name="M:RT.Util.LoggerBase.Exception(System.Exception,System.UInt32,RT.Util.LogType)">
            <summary>
                Logs an exception with a stack trace at the specified verbosity and message type. Any InnerExceptions are also
                logged as appropriate.</summary>
        </member>
        <member name="T:RT.Util.NullLogger">
            <summary>
                Implements a logger which doesn't do anything with the log messages. Use this as the default logger where no
                logging is wanted by default, to avoid checks for null in every log message.</summary>
        </member>
        <member name="F:RT.Util.NullLogger.Instance">
            <summary>Provides a preallocated instance of <see cref="T:RT.Util.NullLogger"/>.</summary>
        </member>
        <member name="M:RT.Util.NullLogger.Log(System.UInt32,RT.Util.LogType,System.String)">
            <summary>Does nothing.</summary>
        </member>
        <member name="M:RT.Util.NullLogger.Separator">
            <summary>Does nothing.</summary>
        </member>
        <member name="T:RT.Util.ConsoleLogger">
            <summary>
                Implements a logger which outputs messages to the console, word-wrapping long messages. Can use different colors
                for the different message types.</summary>
        </member>
        <member name="F:RT.Util.ConsoleLogger.WordWrap">
            <summary>Set this to false to disable the word-wrapping of messages to the width of the console window.</summary>
        </member>
        <member name="F:RT.Util.ConsoleLogger.ErrorsToStdErr">
            <summary>
                Set this to false to ensure that all messages are printed to StdOut (aka Console.Out). By default error
                messages will be printed to StdErr instead (aka Console.Error).</summary>
        </member>
        <member name="M:RT.Util.ConsoleLogger.#ctor">
            <summary>Constructs a new console logger.</summary>
        </member>
        <member name="F:RT.Util.ConsoleLogger.InterpretMessagesAsEggsML">
            <summary>Set this to true to interpret all the messages as EggsML.</summary>
        </member>
        <member name="M:RT.Util.ConsoleLogger.GetMessageTypeColor(RT.Util.LogType)">
            <summary>Gets a text color for each of the possible message types.</summary>
        </member>
        <member name="M:RT.Util.ConsoleLogger.Log(System.UInt32,RT.Util.LogType,System.String)">
            <summary>Logs a message to the console.</summary>
        </member>
        <member name="M:RT.Util.ConsoleLogger.Separator">
            <summary>Creates a visual separation in the log, for example if a new section starts.</summary>
        </member>
        <member name="T:RT.Util.StreamLogger">
            <summary>
                Implements a logger which puts messages into any <see cref="P:RT.Util.StreamLogger.Stream"/> by creating a TextWriter wrapper around it.
                Use this logger only if the stream will remain open for the duration of the execution.</summary>
        </member>
        <member name="M:RT.Util.StreamLogger.#ctor">
            <summary>Creates a new instance.</summary>
        </member>
        <member name="M:RT.Util.StreamLogger.#ctor(System.IO.Stream)">
            <summary>Creates a new instance.</summary>
        </member>
        <member name="M:RT.Util.StreamLogger.Log(System.UInt32,RT.Util.LogType,System.String)">
            <summary>Logs a message to the underlying stream.</summary>
        </member>
        <member name="M:RT.Util.StreamLogger.Separator">
            <summary>Creates a visual separation in the log, for example if a new section starts.</summary>
        </member>
        <member name="P:RT.Util.StreamLogger.Stream">
            <summary>Gets or sets the stream to which messages are logged.</summary>
        </member>
        <member name="P:RT.Util.StreamLogger.StreamWriter">
            <summary>
                Gets the <see cref="T:System.IO.StreamWriter"/> used by this StreamLogger for writing text. Intended use is to
                enable the caller to write arbitrary text to the underlying stream.</summary>
        </member>
        <member name="T:RT.Util.FileAppendLogger">
            <summary>
                Implements a logger which appends messages to a file by opening and closing the file each time. This is in
                contrast to <see cref="T:RT.Util.StreamLogger"/>, which keeps the stream open.</summary>
        </member>
        <member name="M:RT.Util.FileAppendLogger.#ctor">
            <summary>Creates a new instance.</summary>
        </member>
        <member name="M:RT.Util.FileAppendLogger.#ctor(System.String)">
            <summary>Creates a new instance.</summary>
        </member>
        <member name="M:RT.Util.FileAppendLogger.Log(System.UInt32,RT.Util.LogType,System.String)">
            <summary>Logs a message to the underlying stream.</summary>
        </member>
        <member name="M:RT.Util.FileAppendLogger.Separator">
            <summary>Creates a visual separation in the log, for example if a new section starts.</summary>
        </member>
        <member name="P:RT.Util.FileAppendLogger.Filename">
            <summary>Gets or sets the path to the file to which messages are logged.</summary>
        </member>
        <member name="P:RT.Util.FileAppendLogger.SharingVioWait">
            <summary>Gets or sets the amount of time to wait when the log file is in use. <c>null</c> waits indefinitely.</summary>
        </member>
        <member name="T:RT.Util.MulticastLogger">
            <summary>
                Implements a logger which can log messages to several other loggers. The underlying loggers can be configured as
                necessary; their settings will be respected.</summary>
        </member>
        <member name="F:RT.Util.MulticastLogger.Loggers">
            <summary>Add or remove the underlying loggers here. Every logger in this dictionary will be logged to.</summary>
        </member>
        <member name="M:RT.Util.MulticastLogger.#ctor">
            <summary>
                Initializes a <see cref="T:RT.Util.MulticastLogger"/> with initially no loggers configured. Use <see cref="F:RT.Util.MulticastLogger.Loggers"/> to
                add them.</summary>
        </member>
        <member name="M:RT.Util.MulticastLogger.Log(System.UInt32,RT.Util.LogType,System.String)">
            <summary>Logs a message to the underlying loggers.</summary>
        </member>
        <member name="M:RT.Util.MulticastLogger.Separator">
            <summary>Creates a visual separation in the log, for example if a new section starts.</summary>
        </member>
        <member name="M:RT.Util.MulticastLogger.IsLogOn(System.UInt32,RT.Util.LogType)">
            <summary>
                Returns false if logging a message with the specified settings would not actually result in any logger
                producing any output. When this is false it is safe for a program to skip logging a message with these
                settings.</summary>
        </member>
        <member name="M:RT.Util.MulticastLogger.ConfigureVerbosity(System.String)">
            <summary>
                Configures the verbosity of every underlying logger. See <see cref="M:RT.Util.LoggerBase.ConfigureVerbosity(System.String)"/> for more
                info.</summary>
        </member>
        <member name="T:RT.Util.MultipartFormDataHelper">
            <summary>
                Simplifies submitting POST requests with data encoded in the multipart/form-data format. See Remarks.</summary>
            <remarks>
                The simplest use example is to create a web request using <c>(HttpWebRequest) WebRequest.Create(...)</c>, add the data
                using <see cref="M:RT.Util.MultipartFormDataHelper.AddField(System.String,System.String)"/> and <see cref="M:RT.Util.MultipartFormDataHelper.AddFile(System.String,System.String,System.String)"/> methods, and complete the request using
                <see cref="M:RT.Util.MultipartFormDataHelper.GetResponse"/>.</remarks>
        </member>
        <member name="M:RT.Util.MultipartFormDataHelper.#ctor(System.Net.HttpWebRequest)">
            <summary>
                Constructor.</summary>
            <param name="request">
                The request to be used for the form data submission. This class automatically sets several fields which should not
                be modified by the caller afterwards. These are: Method, ContentType. You MUST NOT call <see cref="M:System.Net.HttpWebRequest.GetRequestStream"/> or <see cref="M:System.Net.HttpWebRequest.GetResponse"/> on this request. You may
                modify request headers until the first call to an Add* method.</param>
        </member>
        <member name="M:RT.Util.MultipartFormDataHelper.GetResponse">
            <summary>
                Finalizes the request and sends it to the remote host (or, if the request is not buffered, ensures the entire
                request has been sent). Waits for response and returns the response object.</summary>
        </member>
        <member name="M:RT.Util.MultipartFormDataHelper.AddField(System.String,System.String)">
            <summary>
                Adds a named text value to the POST request.</summary>
            <param name="name">
                The name of the value to add. For maximum compatibility with servers, use only printable ASCII characters in this
                name. This field is encoded using UTF-8, which is supported by some modern servers, but not by others.</param>
            <param name="value">
                The content to add as the value. Note that this is interpreted as Unicode text, and is a poor choice for binary
                data. For binary data, see <see cref="M:RT.Util.MultipartFormDataHelper.AddFile(System.String,System.String,System.String)"/>.</param>
        </member>
        <member name="M:RT.Util.MultipartFormDataHelper.AddFile(System.String,System.String,System.String)">
            <summary>
                Adds a named file (or, generally, a binary data field) to the POST request.</summary>
            <param name="name">
                The name of the value to add. For maximum compatibility with servers, use only printable ASCII characters in this
                name. This field is encoded using UTF-8, which is supported by some modern servers, but not by others.</param>
            <param name="filename">
                The filename to use. The server may interpret this as it pleases, but this value will often end up being exposed
                as the name of the uploaded file. For maximum compatibility with servers, use only printable ASCII characters in
                this name. This field is encoded using UTF-8, which is supported by some modern servers, but not by
                others.</param>
            <param name="contentType">
                The content type to specify for this data/file. Some servers decide whether to accept or reject an upload based on
                the content type. Specify <c>null</c> to prevent the inclusion of the Content-Type header.</param>
            <returns>
                A stream into which the binary data is to be written. You may close this stream when done, but if you don't, it
                will be closed automatically next time you add a field or a file, or if you call <see cref="M:RT.Util.MultipartFormDataHelper.GetResponse"/> (which
                prevents further writing).</returns>
        </member>
        <member name="M:RT.Util.MultipartFormDataHelper.AddFile(System.String,System.String,System.Byte[],System.String)">
            <summary>
                Adds a named file (or, generally, a binary data field) to the POST request.</summary>
            <param name="name">
                The name of the value to add. For maximum compatibility with servers, use only printable ASCII characters in this
                name. This field is encoded using UTF-8, which is supported by some modern servers, but not by others.</param>
            <param name="filename">
                The filename to use. The server may interpret this as it pleases, but this value will often end up being exposed
                as the name of the uploaded file. For maximum compatibility with servers, use only printable ASCII characters in
                this name. This field is encoded using UTF-8, which is supported by some modern servers, but not by
                others.</param>
            <param name="data">
                The binary data to send as the content of this file.</param>
            <param name="contentType">
                The content type to specify for this data/file. Some servers decide whether to accept or reject an upload based on
                the content type. Specify <c>null</c> to prevent the inclusion of the Content-Type header.</param>
        </member>
        <member name="T:RT.Util.MultipartFormDataHelper.MultipartFileStream">
            <summary>
                Encapsulates a stream used for writing a file body into a multipart/form-data stream.</summary>
            <remarks>
                The main purpose is to prevent the caller accidentally closing the request stream (which results in an exception
                whose cause is pretty tricky to establish).</remarks>
        </member>
        <member name="M:RT.Util.MultipartFormDataHelper.MultipartFileStream.Close">
            <summary>
                Closes the stream and prevents further writing to this stream. You may call this explicitly; you may call <see cref="M:System.IO.Stream.Dispose"/> instead, or you could just leave it up to <see cref="T:RT.Util.MultipartFormDataHelper"/> to
                close this stream automatically next time a new field or file is added, or when the helper itself is
                closed.</summary>
        </member>
        <member name="M:RT.Util.MultipartFormDataHelper.MultipartFileStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>Writes file data to the request stream.</summary>
        </member>
        <member name="M:RT.Util.MultipartFormDataHelper.MultipartFileStream.Flush">
            <summary>Flushes the request stream.</summary>
        </member>
        <member name="M:RT.Util.MultipartFormDataHelper.MultipartFileStream.SetLength(System.Int64)">
            <summary>Throws a <c>NotSupportedException</c>.</summary>
        </member>
        <member name="M:RT.Util.MultipartFormDataHelper.MultipartFileStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>Throws a <c>NotSupportedException</c>.</summary>
        </member>
        <member name="M:RT.Util.MultipartFormDataHelper.MultipartFileStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>Throws a <c>NotSupportedException</c>.</summary>
        </member>
        <member name="P:RT.Util.MultipartFormDataHelper.MultipartFileStream.CanWrite">
            <summary>Always <c>true</c>.</summary>
        </member>
        <member name="P:RT.Util.MultipartFormDataHelper.MultipartFileStream.CanRead">
            <summary>Always <c>false</c>.</summary>
        </member>
        <member name="P:RT.Util.MultipartFormDataHelper.MultipartFileStream.CanSeek">
            <summary>Always <c>false</c>.</summary>
        </member>
        <member name="P:RT.Util.MultipartFormDataHelper.MultipartFileStream.Length">
            <summary>Throws a <c>NotSupportedException</c>.</summary>
        </member>
        <member name="P:RT.Util.MultipartFormDataHelper.MultipartFileStream.Position">
            <summary>Throws a <c>NotSupportedException</c>.</summary>
        </member>
        <member name="T:RT.Util.NameGenerator">
            <summary>Generates a sequence of short names starting with “a” through “z”, followed by two-letter names etc.</summary>
        </member>
        <member name="M:RT.Util.NameGenerator.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.NameGenerator.NextName">
            <summary>Generates the next name in the sequence.</summary>
        </member>
        <member name="T:RT.Util.Paths.PathManager">
            <summary>
                Maintains a selection of paths in the filesystem and offers methods for enumerating all the included paths and/or
                files.</summary>
            <remarks>
                <para>
                    Initially empty. Paths may be added to the set (with all subpaths) by calling <see cref="M:RT.Util.Paths.PathManager.AddIncludePath(System.String)"/>, and
                    removed from the set using <see cref="M:RT.Util.Paths.PathManager.AddExcludePath(System.String)"/> (again, with subpaths). The order of these calls is
                    important.</para>
                <para>
                    There is currently no support for including or excluding non-recursively, nor for including/excluding specific
                    files.</para></remarks>
        </member>
        <member name="M:RT.Util.Paths.PathManager.#ctor">
            <summary>Constructs an empty instance.</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.#ctor(System.String[])">
            <summary>Constructs an instance containing all of the specified paths (with all subpaths).</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.#ctor(System.Collections.Generic.IEnumerable{System.String})">
            <summary>Constructs an instance containing all of the specified paths (with all subpaths).</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.Clone">
            <summary>Creates a deep clone of this class.</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.findPathEntry(System.String)">
            <summary>Returns the index of the specified path or -1 if not found</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.addPathEntry(System.String,System.Boolean)">
            <summary>Adds an include/exclude entry</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.deleteSubpathEntries(System.String)">
            <summary>Deletes all entries which are subpaths of the specified path.</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.AddIncludePath(System.String)">
            <summary>
                Makes the specified path and all subpaths included into the set of paths.</summary>
            <remarks>
                The exact way in which this call affects <see cref="P:RT.Util.Paths.PathManager.Paths"/> is not part of the contract. This method only
                guarantees that this path and all subpaths will be part of the set after the call returns.</remarks>
        </member>
        <member name="M:RT.Util.Paths.PathManager.AddExcludePath(System.String)">
            <summary>
                Makes the specified path and all subpaths excluded from the set of paths.</summary>
            <remarks>
                The exact way in which this call affects <see cref="P:RT.Util.Paths.PathManager.Paths"/> is not part of the contract. This method only
                guarantees that this path and all subpaths will not be part of the set after the call returns.</remarks>
        </member>
        <member name="M:RT.Util.Paths.PathManager.Include(System.String)">
            <summary>A synonym for <see cref="M:RT.Util.Paths.PathManager.AddIncludePath(System.String)"/>, only chainable (returns <c>this</c>).</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.Exclude(System.String)">
            <summary>A synonym for <see cref="M:RT.Util.Paths.PathManager.AddExcludePath(System.String)"/>, only chainable (returns <c>this</c>).</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.Reset">
            <summary>Resets the set of paths to a state where all paths are excluded.</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.IsPathIncluded(System.String)">
            <summary>Returns true iff the specified path is part of the path set.</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.IsPathIncludedWithAllSubpaths(System.String)">
            <summary>Returns true iff the specified path and all the subpaths are part of the path set.</summary>
        </member>
        <member name="F:RT.Util.Paths.PathManager.ReportFail">
            <summary>
                If assigned, this delegate will be called whenever a directory cannot be enumerated, e.g. due to being unreadable
                etc. This function must return "false" in order to terminate scanning or "true" to continue.</summary>
        </member>
        <member name="F:RT.Util.Paths.PathManager.FailedFiles">
            <summary>Paths which could not be read while enumerating PathManager. Automatically cleared before each enumeration.</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.GetEntries">
            <summary>
                Enumerates all files and directories according to the paths that were added using <see cref="M:RT.Util.Paths.PathManager.AddIncludePath(System.String)"/> and
                <see cref="M:RT.Util.Paths.PathManager.AddExcludePath(System.String)"/>. If any paths cannot be enumerated, they are added to the <see cref="F:RT.Util.Paths.PathManager.FailedFiles"/>
                list, which is cleared before enumeration begins.</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.GetFiles">
            <summary>
                Enumerates all files (not folders) according to the paths that were added using <see cref="M:RT.Util.Paths.PathManager.AddIncludePath(System.String)"/> and
                <see cref="M:RT.Util.Paths.PathManager.AddExcludePath(System.String)"/>. If any paths cannot be enumerated, they are added to the <see cref="F:RT.Util.Paths.PathManager.FailedFiles"/>
                list, which is cleared before enumeration begins.</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.GetDirectories">
            <summary>
                Enumerates all directories (not files) according to the paths that were added using <see cref="M:RT.Util.Paths.PathManager.AddIncludePath(System.String)"/>
                and <see cref="M:RT.Util.Paths.PathManager.AddExcludePath(System.String)"/>. If any paths cannot be enumerated, they are added to the <see cref="F:RT.Util.Paths.PathManager.FailedFiles"/> list, which is cleared before enumeration begins.</summary>
        </member>
        <member name="M:RT.Util.Paths.PathManager.pathLevelDistance(System.String,System.String)">
            <summary>
                Determines the number of sublevels <paramref name="path"/> is away from <paramref name="ref_path"/>. Positive
                numbers indicate that <paramref name="path"/> is deeper than <paramref name="ref_path"/>; negative that it's above
                <paramref name="ref_path"/>.</summary>
            <param name="ref_path">
                Reference path</param>
            <param name="path">
                Path to be compared</param>
            <returns>
                The number of sublevels, or int.MaxValue if neither path is a subpath of the other.</returns>
        </member>
        <member name="P:RT.Util.Paths.PathManager.Paths">
            <summary>Contains the list of all included and excluded paths.</summary>
        </member>
        <member name="T:RT.Util.Paths.PathManager.PathInfo">
            <summary>The structure used to store path information</summary>
        </member>
        <member name="P:RT.Util.Paths.PathManager.PathInfo.Path">
            <summary>An absolute path to a directory.</summary>
        </member>
        <member name="P:RT.Util.Paths.PathManager.PathInfo.Include">
            <summary>Whether everything under the specified path is included or excluded from the set.</summary>
        </member>
        <member name="T:RT.Util.PathException">
            <summary>Represents a path-related exception.</summary>
        </member>
        <member name="M:RT.Util.PathException.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.PathException.#ctor(System.String)">
            <summary>
                Constructor.</summary>
            <param name="message">
                Exception message.</param>
        </member>
        <member name="T:RT.Util.PathUtil">
            <summary>Provides path-related utilities.</summary>
        </member>
        <member name="F:RT.Util.PathUtil._cachedAppPath">
            <summary>Stores a copy of the value generated by AppPath. This way AppPath only needs to generate it once.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.AppPathCombine(System.String)">
            <summary>
                Combines the full path containing the running executable with the specified string. Ensures that only a single
                <see cref="F:System.IO.Path.DirectorySeparatorChar"/> separates the two.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.AppPathCombine(System.String[])">
            <summary>
                Combines the full path containing the running executable with one or more strings. Ensures that only a single
                <see cref="F:System.IO.Path.DirectorySeparatorChar"/> separates the executable path and every string.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.OverrideAppPath(System.String)">
            <summary>Makes all AppPath* functions of PathUtil use the specified value as the application path.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.NormPath(System.String)">
            <summary>
                Normalises the specified path. A "normalised path" is a path to a directory (not a file!) which always ends
                with a slash.</summary>
            <param name="path">
                Path to be normalised.</param>
            <returns>
                Normalised version of <paramref name="path"/>, or null if the input was null.</returns>
        </member>
        <member name="M:RT.Util.PathUtil.IsSubpathOf(System.String,System.String)">
            <summary>Checks whether <paramref name="subpath"/> refers to a subdirectory inside <paramref name="parentPath"/>.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.IsSubpathOfOrSame(System.String,System.String)">
            <summary>
                Checks whether <paramref name="subpath"/> refers to a subdirectory inside <paramref name="parentPath"/> or the
                same directory.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.ExpandPath(System.String)">
            <summary>
                Expands all occurrences of "$(NAME)" in the specified string with the special folder path for the current
                machine/user. See remarks for details.</summary>
            <remarks>
                <para>
                    Expands all occurrences of "$(NAME)", where NAME is the name of one of the values of the <see cref="T:System.Environment.SpecialFolder"/> enum. There is no support for escaping such a replacement, and invalid
                    names are ignored.</para>
                <para>
                    The following additional names are also recognised:</para>
                <list type="table">
                    <item><term>
                        $(Temp)</term>
                    <description>
                        expands to the system's temporary folder path (Path.GetTempPath()).</description></item>
                    <item><term>
                        $(AppPath)</term>
                    <description>
                        expands to the directory containing the entry assembly (Assembly.GetEntryAssembly()). Throws an <see cref="T:System.InvalidOperationException"/> if there is no entry assembly (e.g. in a secondary app domain).</description></item></list></remarks>
        </member>
        <member name="M:RT.Util.PathUtil.UnexpandPath(System.String)">
            <summary>
                Checks to see whether the specified path starts with any of the standard paths supported by <see cref="M:RT.Util.PathUtil.ExpandPath(System.String)"/>, and if so, replaces the prefix with a "$(NAME)" string and returns the resulting value.
                The value passed in should be an absolute path for the substitution to work.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.DeleteEmptyDirs(System.String)">
            <summary>
                Deletes the specified directory only if it is empty, and then checks all parents to see if they have become
                empty too. If so, deletes them too. Does not throw any exceptions.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.ExtractParent(System.String)">
            <summary>
                Returns the "parent" path of the specified path by removing the last name from the path, separated by either
                forward or backslash. If the original path ends in slash, the returned path will also end with a slash.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.ExtractParent(System.String,System.Char)">
            <summary>
                Returns the "parent" path of the specified path by removing the last group from the path, separated by the
                "separator" character. If the original path ends in slash, the returned path will also end with a slash.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.ExtractNameAndExt(System.String)">
            <summary>
                Returns the name and extension of the last group in the specified path, separated by either of the two
                slashes.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.Combine(System.String,System.String)">
            <summary>
                Joins the two paths using the OS separator character. If the second path is absolute, only the second path is
                returned.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.Combine(System.String,System.String,System.String[])">
            <summary>
                Joins multiple paths using the OS separator character. If any of the paths is absolute, all preceding paths
                are discarded.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.CreatePathToFile(System.String)">
            <summary>
                Creates all directories in the path to the specified file if they don't exist. Accepts filenames relative to
                the current directory.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.StripTrailingSeparator(System.String)">
            <summary>
                Strips a single trailing directory separator, whether it's the forward- or backslash. Preserves the single
                separator at the end of paths referring to the root of a drive, such as "C:\". Removes at most a single
                separator, never more.</summary>
        </member>
        <member name="M:RT.Util.PathUtil.ToggleRelative(System.String,System.String)">
            <summary>
                Changes a relative <paramref name="toggledPath"/> to an absolute and vice versa, with respect to <paramref name="basePath"/>. Neither path must be an empty string. Any trailing slashes are ignored and the result won't
                have one except for root "C:\"-style paths. Forward slashes, multiple repeated slashes, and any redundant "."
                or ".." elements are correctly interpreted and eliminated. See Remarks for some special cases.</summary>
            <remarks>
                Relative paths that specify a drive letter "C:thing" are not supported and result in undefined behaviour. If
                the toggled path is relative then all ".." levels that expand beyond the root directory are silently
                discarded.</remarks>
            <param name="basePath">
                An absolute path to the directory which serves as the base for absolute/relative conversion.</param>
            <param name="toggledPath">
                An absolute or a relative path to be converted.</param>
            <returns>
                The converted path.</returns>
            <exception cref="T:RT.Util.ToggleRelativeException">
                Conversion could not be performed for the reason specified in the exception object.</exception>
        </member>
        <member name="M:RT.Util.PathUtil.AppendBeforeExtension(System.String,System.String)">
            <summary>
                Appends the specified value to the filename part before extension.</summary>
            <param name="filename">
                Filename to which the value should be appended.</param>
            <param name="value">
                The value to append.</param>
        </member>
        <member name="M:RT.Util.PathUtil.ExpandWildcards(System.String,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
                Given a filename or a pattern containing * or ? wildcards, enumerates all names matching the wildcard.</summary>
            <param name="filenameOrPattern">
                The filename or pattern to expand. If this doesn't contain any wildcards, it is returned unchanged, even if
                the named file/directory does not exist in the file system. The pattern may include an absolute or a relative
                path, or contain just a name; the results will be relative iff the pattern was relative, and will contain no
                path iff the pattern didn't.</param>
            <param name="matchFiles">
                Specifies that the pattern should match existing files.</param>
            <param name="matchDirectories">
                Specifies that the pattern should match existing directories.</param>
            <param name="includeSubdirectories">
                Indicates that files contained in subdirectories should be included.</param>
        </member>
        <member name="M:RT.Util.PathUtil.GetFullPath(System.String)">
            <summary>
                Returns the full path pointing to the same file/directory as <paramref name="path"/>. Converts relative paths
                to absolute paths where necessary, relative to the current working directory. This is the same as <see cref="M:System.IO.Path.GetFullPath(System.String)"/>, except that this function returns the actual on-disk capitalization for each
                segment, regardless of how they are capitalized in <paramref name="path"/>. If the path does not exist in
                full, corrects the capitalization of the segments that do exist. Always capitalizes the drive letter.</summary>
        </member>
        <member name="P:RT.Util.PathUtil.AppPath">
            <summary>
                Returns the full path to the directory containing the application's entry assembly. Will succeed for the main
                AppDomain of an application started as an .exe; will throw for anything that doesn't have an entry assembly,
                such as a manually created AppDomain.</summary>
            <seealso cref="M:RT.Util.PathUtil.AppPathCombine(System.String[])"/>
        </member>
        <member name="T:RT.Util.ToggleRelativeProblem">
            <summary>Details a problem that occurred while using <see cref="M:RT.Util.PathUtil.ToggleRelative(System.String,System.String)"/>.</summary>
        </member>
        <member name="F:RT.Util.ToggleRelativeProblem.BasePathNotAbsolute">
            <summary>The base path is not an absolute path.</summary>
        </member>
        <member name="F:RT.Util.ToggleRelativeProblem.PathsOnDifferentDrives">
            <summary>
                The two paths are both absolute and on different drives, making it impossible to make one of them relative to
                the other.</summary>
        </member>
        <member name="F:RT.Util.ToggleRelativeProblem.InvalidBasePath">
            <summary>The base path is not a valid path and/or contains invalid characters.</summary>
        </member>
        <member name="F:RT.Util.ToggleRelativeProblem.InvalidToggledPath">
            <summary>The toggled path is not a valid path and/or contains invalid characters.</summary>
        </member>
        <member name="T:RT.Util.ToggleRelativeException">
            <summary>Indicates an error that occurred while using <see cref="M:RT.Util.PathUtil.ToggleRelative(System.String,System.String)"/>.</summary>
        </member>
        <member name="M:RT.Util.ToggleRelativeException.#ctor(RT.Util.ToggleRelativeProblem)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.ToggleRelativeException.Problem">
            <summary>Details the problem that occurred.</summary>
        </member>
        <member name="T:RT.Util.CommandRunner">
            <summary>
                Provides features to execute cmd.exe commands in a hidden window and retrieve their output. This class is geared
                heavily towards executing console programs, batch files and console scripts, but can also execute built-in
                commands and non-console programs. Because the command goes through cmd.exe, the PATH, PATHEXT and file
                associations are all automatically taken care of.</summary>
            <remarks>
                <para>
                    When the command completes, whether by exiting naturally or by being aborted, the <see cref="P:RT.Util.CommandRunner.State"/> changes
                    first. Then the <see cref="E:RT.Util.CommandRunner.CommandEnded"/> event fires. Finally, the <see cref="P:RT.Util.CommandRunner.EndedWaitHandle"/> is
                    signalled. By the time the <see cref="P:RT.Util.CommandRunner.State"/> has changed to <see cref="F:RT.Util.CommandRunnerState.Exited"/>, it is
                    guaranteed that all the output has been processed and the <see cref="P:RT.Util.CommandRunner.ExitCode"/> can be retrieved.</para>
                <para>
                    This class is thread-safe: all public members may be used from any thread.</para></remarks>
        </member>
        <member name="M:RT.Util.CommandRunner.SetCommand(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
                Sets the <see cref="P:RT.Util.CommandRunner.Command"/> property by concatenating the command and any arguments while escaping values
                with spaces. Each value must be a single command / executable / script / argument. Null values are allowed and
                are skipped as if they weren't present. See Remarks.</summary>
            <remarks>
                Example: <c>SetCommand(new[] { @"C:\Program Files\Foo\Foo.exe", "-f", @"C:\Some Path\file.txt" });</c></remarks>
        </member>
        <member name="M:RT.Util.CommandRunner.SetCommand(System.String[])">
            <summary>
                Sets the <see cref="P:RT.Util.CommandRunner.Command"/> property by concatenating the command and any arguments while escaping values
                with spaces. Each value must be a single command / executable / script / argument. Null values are allowed and
                are skipped as if they weren't present. See Remarks.</summary>
            <remarks>
                Example: <c>SetCommand(new[] { @"C:\Program Files\Foo\Foo.exe", "-f", @"C:\Some Path\file.txt" });</c></remarks>
        </member>
        <member name="M:RT.Util.CommandRunner.Start">
            <summary>Starts the command with all the settings as configured.</summary>
        </member>
        <member name="M:RT.Util.CommandRunner.Abort">
            <summary>
                Aborts the command by killing the process and all its children, if any. Throws if the command has not been
                started yet. Does nothing if the command has already ended. See Remarks.</summary>
            <remarks>
                It is theoretically possible that this method will fail to terminate a child, if called at exactly the wrong
                time while a child process is being spawned. To avoid this possibility, pause the process tree first by
                calling <see cref="M:RT.Util.CommandRunner.Pause(System.Nullable{System.TimeSpan})"/> (but see its remarks too).</remarks>
        </member>
        <member name="M:RT.Util.CommandRunner.Pause(System.Nullable{System.TimeSpan})">
            <summary>
                Pauses the command for the specified duration by suspending every thread in every process in the process tree.
                Throws if the command hasn't been started or has been aborted. Does nothing if the command has exited. If
                called when already paused, will make sure the command is paused for at least the specified duration, but will
                not shorten the resume timer. See Remarks.</summary>
            <param name="duration">
                Pause duration. Zero and negative intervals do not pause the command at all. Use <c>TimeSpan.MaxValue</c> or
                <c>null</c> for an indefinite pause.</param>
            <remarks>
                It is theoretically possible for this to fail to suspend all threads in all processes, if a new thread is
                created while the threads are being suspended. The current code does not address this scenario, but this can
                be fixed, if necessary.</remarks>
        </member>
        <member name="M:RT.Util.CommandRunner.ResumePaused">
            <summary>
                Resumes the command after it has been paused. If the command was paused with a timeout, the timer is cleared.
                Throws if the command has not been started yet or has been aborted. Does nothing if the command is not paused.</summary>
        </member>
        <member name="M:RT.Util.CommandRunner.Run(System.String[])">
            <summary>
                Executes the specified command using a fluid syntax. Use method chaining to configure any options, then invoke
                <see cref="M:RT.Util.FluidCommandRunner.Go"/> (or one of its variants) to execute the command. See Remarks.</summary>
            <param name="args">
                The command and its arguments, if any. Each value is automatically escaped as needed. See <see cref="M:RT.Util.CommandRunner.SetCommand(System.String[])"/> for further information. See <see cref="M:RT.Util.CommandRunner.RunRaw(System.String)"/> for an alternative way to
                specify the command.</param>
            <remarks>
                <para>
                    The default options are as follows: 0 is the only exit code indicating success; print the command output
                    to the console as-is.</para>
                <para>
                    Example: <c>CommandRunner.Run(@"C:\Program Files\Foo\Foo.exe", "-f", @"C:\Some
                    Path\file.txt").SuccessExitCodes(0, 1).OutputNothing().Go();</c></para></remarks>
        </member>
        <member name="M:RT.Util.CommandRunner.RunRaw(System.String)">
            <summary>
                Executes the specified command using a fluid syntax. Use method chaining to configure any options, then invoke
                <see cref="M:RT.Util.FluidCommandRunner.Go"/> (or one of its variants) to execute the command. See Remarks.</summary>
            <param name="command">
                The command and its arguments. All arguments must be escaped as appropriate.</param>
            <remarks>
                <para>
                    The default options are as follows: 0 is the only exit code indicating success; print the command output
                    to the console as-is.</para>
                <para>
                    Example: <c>CommandRunner.RunRaw(@"C:\Program Files\Foo\Foo.exe -f ""C:\Some
                    Path\file.txt""").SuccessExitCodes(0, 1).Go();</c></para></remarks>
        </member>
        <member name="E:RT.Util.CommandRunner.CommandEnded">
            <summary>
                Raised once the command ends (that is, exits naturally or is aborted) and all the clean-up has completed. See
                Remarks.</summary>
            <remarks>
                When this event occurs, the <see cref="T:RT.Util.CommandRunner"/> is guaranteed to be in either the <see cref="F:RT.Util.CommandRunnerState.Exited"/> or <see cref="F:RT.Util.CommandRunnerState.Aborted"/> state. The <see cref="P:RT.Util.CommandRunner.EndedWaitHandle"/> will not have fired yet, and will only fire once this event handler is completed.</remarks>
        </member>
        <member name="E:RT.Util.CommandRunner.CommandResumed">
            <summary>
                Raised whenever the command execution resumes after it was paused. This includes manual calls to <see cref="M:RT.Util.CommandRunner.ResumePaused"/>.</summary>
        </member>
        <member name="E:RT.Util.CommandRunner.StdoutData">
            <summary>
                Raised whenever the command has produced new output on stdout (but no more often than about once in 50ms).</summary>
        </member>
        <member name="E:RT.Util.CommandRunner.StderrData">
            <summary>
                Raised whenever the command has produced new output on stderr (but no more often than about once in 50ms).</summary>
        </member>
        <member name="E:RT.Util.CommandRunner.StdoutText">
            <summary>
                Raised whenever the command has produced new text on stdout. For ASCII outputs, this is identical to <see cref="E:RT.Util.CommandRunner.StdoutData"/>, however utf8-encoded text is guaranteed to correctly handle the possibility that part of
                a character's encoding has not been output yet. Other encodings are not supported.</summary>
        </member>
        <member name="E:RT.Util.CommandRunner.StderrText">
            <summary>Same as <see cref="E:RT.Util.CommandRunner.StdoutText"/> but for stderr.</summary>
        </member>
        <member name="P:RT.Util.CommandRunner.CaptureEntireStdout">
            <summary>
                Specifies whether the entire stdout output should be captured. This can consume large amounts of memory, and
                so defaults to <c>false</c>.</summary>
        </member>
        <member name="P:RT.Util.CommandRunner.CaptureEntireStderr">
            <summary>
                Specifies whether the entire stderr output should be captured. This can consume large amounts of memory, and
                so defaults to <c>false</c>.</summary>
        </member>
        <member name="P:RT.Util.CommandRunner.EntireStdout">
            <summary>
                Gets the entire stdout output produced by the program. This property can only be accessed once the command has
                ended (exited or aborted), and only if <see cref="P:RT.Util.CommandRunner.CaptureEntireStdout"/> is <c>true</c>. You may modify the
                returned array, but subsequent invocations will then return the modified array. The relative interleaving of
                stdout and stderr is not preserved in this property.</summary>
        </member>
        <member name="P:RT.Util.CommandRunner.EntireStderr">
            <summary>
                Gets the entire stderr output produced by the program. This property can only be accessed once the command has
                ended (exited or aborted), and only if <see cref="P:RT.Util.CommandRunner.CaptureEntireStderr"/> is <c>true</c>. You may modify the
                returned array, but subsequent invocations will then return the modified array. The relative interleaving of
                stdout and stderr is not preserved in this property.</summary>
        </member>
        <member name="P:RT.Util.CommandRunner.EndedWaitHandle">
            <summary>
                Exposes a waitable flag indicating whether the command has ended, either by exiting naturally or by being
                aborted. See also Remarks on <see cref="T:RT.Util.CommandRunner"/>.</summary>
            <remarks>
                Calling Set or Reset will result in corruption and undefined behaviour. This should be a read-only waitable
                flag, but there is no built-in class</remarks>
        </member>
        <member name="P:RT.Util.CommandRunner.State">
            <summary>
                Indicates the current state of the runner. Some properties are only readable and/or writable in specific
                states. Note that this property is not guaranteed to reflect whether the actual command is running or not, or
                whether a call to <see cref="M:RT.Util.CommandRunner.Abort"/> resulted in the command of being terminated; rather, this is the logical
                state of the <see cref="T:RT.Util.CommandRunner"/> itself.</summary>
        </member>
        <member name="P:RT.Util.CommandRunner.ExitCode">
            <summary>
                Gets the exit code returned by the command. If the command has not started or exited yet, or has been aborted,
                this method will throw an <see cref="T:System.InvalidOperationException"/>.</summary>
        </member>
        <member name="P:RT.Util.CommandRunner.Command">
            <summary>
                The command to be executed, as a single string. Any command supported by cmd.exe is permitted. See also <see cref="M:RT.Util.CommandRunner.SetCommand(System.String[])"/>, which simplifies running commands with spaces and/or arguments. Once the
                command has been started, this property becomes read-only and indicates the value in effect at the time of
                starting.</summary>
        </member>
        <member name="P:RT.Util.CommandRunner.WorkingDirectory">
            <summary>
                The working directory to be used when starting the command. Once the command has been started, this property
                becomes read-only and indicates the value in effect at the time of starting.</summary>
        </member>
        <member name="P:RT.Util.CommandRunner.EnvironmentVariables">
            <summary>
                Overrides for the environment variables to be set for the command process. These overrides are in addition to
                the variables inherited from the current process.</summary>
        </member>
        <member name="P:RT.Util.CommandRunner.RunAsUser">
            <summary>
                Credentials and parameters used to run the command as a different user. Null to run as the same user as the
                current process. Once the command has been started, this property becomes read-only and indicates the value in
                effect at the time of starting.</summary>
        </member>
        <member name="P:RT.Util.CommandRunner.PausedUntil">
            <summary>
                Gets the time at which the command will wake up again, <c>DateTime.MaxValue</c> if the command is paused
                indefinitely, or null if the command is not paused.</summary>
        </member>
        <member name="T:RT.Util.CommandRunnerState">
            <summary>Represents one of the possible states a <see cref="T:RT.Util.CommandRunner"/> can have.</summary>
        </member>
        <member name="F:RT.Util.CommandRunnerState.NotStarted">
            <summary>The command has not been started yet.</summary>
        </member>
        <member name="F:RT.Util.CommandRunnerState.Started">
            <summary>
                The command has started and has neither been aborted yet nor has exited on its own. This state does not
                guarantee that the process in which the command is executed has already started, nor that it has not yet
                terminated.</summary>
        </member>
        <member name="F:RT.Util.CommandRunnerState.Exited">
            <summary>The command has exited on its own, without the runner terminating it.</summary>
        </member>
        <member name="F:RT.Util.CommandRunnerState.Aborted">
            <summary>
                The command has been terminated by the runner. This state does not guarantee that the process in which the
                command is executed has already been killed.</summary>
        </member>
        <member name="T:RT.Util.RunAsUserParams">
            <summary>Specifies credentials and settings required to run a process as a different user.</summary>
        </member>
        <member name="M:RT.Util.RunAsUserParams.#ctor(System.String,System.Security.SecureString,System.Boolean,System.String)">
            <summary>
                Constructor.</summary>
            <param name="username">
                The name of the user account under which to run the process.</param>
            <param name="password">
                The password for the <paramref name="username"/> account.</param>
            <param name="loadProfile">
                Specifies whether the target process will access the HKCU registry area. Loading the user profile can be
                time-consuming, so it is optional.</param>
            <param name="domain">
                ActiveDirectory domain of the required user account.</param>
        </member>
        <member name="M:RT.Util.RunAsUserParams.#ctor(System.String,System.String,System.Boolean,System.String)">
            <summary>
                Constructor.</summary>
            <param name="username">
                The name of the user account under which to run the process.</param>
            <param name="password">
                The password for the <paramref name="username"/> account.</param>
            <param name="loadProfile">
                Specifies whether the target process will access the HKCU registry area. Loading the user profile can be
                time-consuming, so it is optional.</param>
            <param name="domain">
                ActiveDirectory domain of the required user account.</param>
        </member>
        <member name="P:RT.Util.RunAsUserParams.Username">
            <summary>Gets the name of the user account under which to run the process.</summary>
        </member>
        <member name="P:RT.Util.RunAsUserParams.Password">
            <summary>Gets the password for the <see cref="P:RT.Util.RunAsUserParams.Username"/> account.</summary>
        </member>
        <member name="P:RT.Util.RunAsUserParams.LoadProfile">
            <summary>Gets a value indicating whether the user profile is to be loaded, which can be time-consuming.</summary>
        </member>
        <member name="P:RT.Util.RunAsUserParams.Domain">
            <summary>Specifies the ActiveDirectory domain of the required user account.</summary>
        </member>
        <member name="T:RT.Util.FluidCommandRunner">
            <summary>Implements method chaining for <see cref="M:RT.Util.CommandRunner.Run(System.String[])"/>.</summary>
        </member>
        <member name="M:RT.Util.FluidCommandRunner.SuccessExitCodes(System.Int32[])">
            <summary>Specifies which exit codes represent a successful invocation. All other codes are interpreted as failure.</summary>
        </member>
        <member name="M:RT.Util.FluidCommandRunner.FailExitCodes(System.Int32[])">
            <summary>
                Specifies which exit codes represent a failed invocation. All other codes are interpreted as success. Mutually
                exclusive with <see cref="M:RT.Util.FluidCommandRunner.SuccessExitCodes(System.Int32[])"/>.</summary>
        </member>
        <member name="M:RT.Util.FluidCommandRunner.OutputNothing">
            <summary>
                Configures the runner to suppress all output. This invocation will print nothing to the console. If
                unspecified, the command's stdout output is relayed to the console as-is, while stderr is relayed in red.</summary>
        </member>
        <member name="M:RT.Util.FluidCommandRunner.OutputAugmented(System.Boolean)">
            <summary>
                Configures the runner to relay the command's output to the console, prefixing every line with a timestamp. The
                entire command is printed before running it. When the command completes, its success/failure status is
                printed, along with its run time and exit code.</summary>
            <param name="invokeCount">
                If true, the prefix also includes a value that increments for every invocation, starting at 1.</param>
        </member>
        <member name="M:RT.Util.FluidCommandRunner.Go">
            <summary>
                Invokes the command, blocking until the command finishes. If the command fails, throws a <see cref="T:RT.Util.CommandRunnerFailedException"/>. See also <see cref="M:RT.Util.FluidCommandRunner.GoGetExitCode"/>.</summary>
        </member>
        <member name="M:RT.Util.FluidCommandRunner.GoGetOutput">
            <summary>
                Invokes the command, blocking until the command finishes. On success, returns the raw output of the command.
                If the command fails, throws a <see cref="T:RT.Util.CommandRunnerFailedException"/>. See Remarks.</summary>
            <remarks>
                Output options such as <see cref="M:RT.Util.FluidCommandRunner.OutputAugmented(System.Boolean)"/> do not affect the data returned; they influence only how
                the output is relayed to the console. This method ignores all stderr output.</remarks>
        </member>
        <member name="M:RT.Util.FluidCommandRunner.GoGetOutputText">
            <summary>
                Invokes the command, blocking until the command finishes. On success, returns the raw output of the command,
                interpreted as text in UTF-8. If the command fails, throws a <see cref="T:RT.Util.CommandRunnerFailedException"/>. See
                Remarks.</summary>
            <remarks>
                Output options such as <see cref="M:RT.Util.FluidCommandRunner.OutputAugmented(System.Boolean)"/> do not affect the data returned; they influence only how
                the output is relayed to the console. This method ignores all stderr output.</remarks>
        </member>
        <member name="M:RT.Util.FluidCommandRunner.GoGetExitCode">
            <summary>
                Invokes the command, blocking until the command finishes. Returns the command's exit code. Does not throw if
                the command failed.</summary>
        </member>
        <member name="T:RT.Util.CommandRunnerFailedException">
            <summary>Indicates that a command returned an exit code indicating a failure.</summary>
        </member>
        <member name="M:RT.Util.CommandRunnerFailedException.#ctor(System.Int32)">
            <summary>Constructor.</summary>
        </member>
        <member name="P:RT.Util.CommandRunnerFailedException.ExitCode">
            <summary>The exit code returned.</summary>
        </member>
        <member name="T:RT.Util.Regex2">
            <summary>
                Exposes a number of convenience methods to compensate for a couple of shortcomings of the built-in Regex class:
                namely, returning a non-generic collection of matches, and defaulting to "." not matching newlines.</summary>
        </member>
        <member name="M:RT.Util.Regex2.Matches(System.String,System.String)">
            <summary>An easier-to-use version of <see cref="M:System.Text.RegularExpressions.Regex.Matches(System.String,System.String)"/>.</summary>
        </member>
        <member name="M:RT.Util.Regex2.Matches(System.String,System.String,RT.Util.Regex2Options)">
            <summary>An easier-to-use version of <see cref="M:System.Text.RegularExpressions.Regex.Matches(System.String,System.String,System.Text.RegularExpressions.RegexOptions)"/>.</summary>
        </member>
        <member name="M:RT.Util.Regex2.Match(System.String,System.String)">
            <summary>An easier-to-use version of <see cref="M:System.Text.RegularExpressions.Regex.Match(System.String,System.String)"/>.</summary>
        </member>
        <member name="M:RT.Util.Regex2.Match(System.String,System.String,RT.Util.Regex2Options)">
            <summary>An easier-to-use version of <see cref="M:System.Text.RegularExpressions.Regex.Match(System.String,System.String,System.Text.RegularExpressions.RegexOptions)"/>.</summary>
        </member>
        <member name="T:RT.Util.Regex2Options">
            <summary>Provides enumerated values to use to set regular expression options.</summary>
        </member>
        <member name="F:RT.Util.Regex2Options.None">
            <summary>Specifies that no options are set.</summary>
        </member>
        <member name="F:RT.Util.Regex2Options.IgnoreCase">
            <summary>Specifies case-insensitive matching.</summary>
        </member>
        <member name="F:RT.Util.Regex2Options.NewlineMatchedAtHatAndDollar">
            <summary>
                Changes the meaning of ^ and $ so they match at the beginning and end, respectively, of any line, and not just the
                beginning and end of the entire string.</summary>
        </member>
        <member name="F:RT.Util.Regex2Options.NewlineNotMatchedByDot">
            <summary>Changes the meaning of the dot (.) so it matches every character except \n.</summary>
        </member>
        <member name="F:RT.Util.Regex2Options.ExplicitCapture">
            <summary>
                Specifies that the only valid captures are explicitly named or numbered groups of the form (?&lt;name&gt;…). This
                allows unnamed parentheses to act as noncapturing groups without the syntactic clumsiness of the expression
                (?:…).</summary>
        </member>
        <member name="F:RT.Util.Regex2Options.Compiled">
            <summary>
                Specifies that the regular expression is compiled to an assembly. This yields faster execution but increases
                startup time.</summary>
        </member>
        <member name="F:RT.Util.Regex2Options.IgnorePatternWhitespace">
            <summary>
                Eliminates unescaped white space from the pattern and enables comments marked with #. However, the
                System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace value does not affect or eliminate white space
                in character classes.</summary>
        </member>
        <member name="F:RT.Util.Regex2Options.RightToLeft">
            <summary>Specifies that the search will be from right to left instead of from left to right.</summary>
        </member>
        <member name="F:RT.Util.Regex2Options.CultureInvariant">
            <summary>Specifies that cultural differences in language is ignored.</summary>
        </member>
        <member name="T:RT.Util.RhoML">
            <summary>
                Exposes methods related to the RhoML language. See Remarks.</summary>
            <remarks>
                <para>
                    RhoML is a language which parses into a tree somewhat reminiscent of XML. The document is represented by a
                    root <see cref="T:RT.Util.RhoElement"/>, and consists of a tree of <see cref="T:RT.Util.RhoNode"/>s. Two types of nodes exist:
                    elements, which have a name and may have attributes, and text nodes, which simply contain raw text. Only
                    elements may contain sub-nodes.</para>
                <para>
                    Except for the root element, all elements must have a name, which can be an arbitrary string. The root
                    element's name is null. An element may have a default attribute value, as well as any number of additional
                    named attribute/value pairs. The attribute names and values can also be arbitrary strings. A named attribute
                    is not required to have a value.</para>
                <para>
                    Syntactically, an element is delimited by an opening and a closing tag. The closing tag is always <c>{}</c>
                    for all elements. The opening tag begins with a <c>{</c>, followed by the element name, the default attribute
                    value (<c>=</c> followed by the value), any number of named attributes (name, <c>=</c>, value, delimited by
                    <c>,</c>), and ends with a <c>}</c>.</para>
                <para>
                    The following is an example of valid RhoML with an explanation of what is represented:</para>
                <code>
                    Basic {font=Times New Roman}example{}: element named "font" with the default attribute set.
                     Another {blah,foo=bar,stuff}example{}: element named "blah", no default attribute, two named attributes
                     ("foo" and "stuff"), the first of which has the value "bar" while the second one has no value. Other than the
                     two elements, the rest of this RhoML is literal text.</code>
                <para>
                    The element name and attribute names/values can all be specified using either quoted or unquoted syntax.
                    Unquoted syntax is limited in what strings can be expressed, while quoted syntax allows every possible string
                    to be represented:</para>
                <list type="bullet">
                    <item><description>
                        Unquoted values always terminate at <c>{</c>, <c>}</c>, <c>=</c>, <c>,</c>, <c>`</c>, newlines and tabs,
                        and these cannot be escaped. All other characters are allowed and are interpreted literally. Spaces are
                        allowed but leading and trailing spaces will be ignored.</description></item>
                    <item><description>
                        Quoted values begin and end with a <c>`</c>. Actual backticks can be represented by <c>``</c>. All other
                        characters are interpreted literally inside a quoted value, and there are no special escape sequences for
                        newlines or other non-printing characters.</description></item></list>
                <para>
                    Whitespace is significant in all contexts, with some exceptions inside the opening tag of an element.
                    Specifically, whitespace is ignored inside the opening tag between all syntactic elements (but not inside
                    names/values), with the sole exception of immediately after <c>{</c>: this character must be followed by a
                    <c>`</c> (beginning the element name in quoted syntax) or a Unicode letter or digit (beginning the tag name in
                    unquoted syntax). Otherwise the <c>{</c> character is interpreted as a literal opening curly bracket.</para>
                <para>
                    Within a run of text, only the <c>{</c> character needs special attention; all other characters are
                    interpreted literally. The <c>{</c> character is also interpreted literally unless followed by a <c>{</c> (in
                    which case the two are interpreted as a single literal curly bracket), <c>}</c> (interpreted as the closing
                    tag), or a <c>`</c>/letter/digit (interpreted as the start of an opening tag).</para>
                <para>
                    A more complex example (the entire example is valid RhoML):</para>
                <code>
                    This curly bracket { is interpreted literally, as is this } one. This {{ is a single open curly.
                    Here {` is ``{ `}an element{} whose name is " is `{ ", containing a text node with the text "an element".
                    Here's an element with some generous {use = of spaces ,   you   =   see}.{}; this represents an element named
                    "use", with a default attribute value "of spaces", and an attribute named "you" with a value "see".</code></remarks>
        </member>
        <member name="M:RT.Util.RhoML.Parse(System.String)">
            <summary>
                Parses the specified string as RhoML.</summary>
            <param name="input">
                The string to parse.</param>
            <returns>
                The root element of the parse tree. The root element has a null name, and contains the RhoML content as child
                nodes, even if the parsed content has a single top-level node.</returns>
        </member>
        <member name="M:RT.Util.RhoML.Escape(System.String)">
            <summary>
                Escapes the specified string so that when parsed as RhoML, the result is a single text node containing the
                string passed in.</summary>
        </member>
        <member name="T:RT.Util.RhoNode">
            <summary>Encapsulates one of the two possible types of RhoML nodes.</summary>
        </member>
        <member name="M:RT.Util.RhoNode.AppendTo(System.Text.StringBuilder)">
            <summary>
                Appends this node and all children to the specified string builder, converting them to RhoML format that would
                parse back into this tree.</summary>
        </member>
        <member name="M:RT.Util.RhoNode.ToString">
            <summary>Converts this node to a RhoML string.</summary>
        </member>
        <member name="T:RT.Util.RhoText">
            <summary>Encapsulates a text node in a RhoML tree.</summary>
        </member>
        <member name="M:RT.Util.RhoText.#ctor(System.String)">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.RhoText.AppendTo(System.Text.StringBuilder)">
            <summary>
                Appends this node and all children to the specified string builder, converting them to RhoML format that would
                parse back into this tree.</summary>
        </member>
        <member name="P:RT.Util.RhoText.Text">
            <summary>Gets or sets the text string represented by this instance. Not null.</summary>
        </member>
        <member name="T:RT.Util.RhoElement">
            <summary>Encapsulates an element node in a RhoML tree.</summary>
        </member>
        <member name="M:RT.Util.RhoElement.#ctor">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.RhoElement.#ctor(System.String,System.String)">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.RhoElement.#ctor(System.String,System.String,System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.List{RT.Util.RhoNode})">
            <summary>Constructor.</summary>
        </member>
        <member name="M:RT.Util.RhoElement.AppendTo(System.Text.StringBuilder)">
            <summary>
                Appends this node and all children to the specified string builder, converting them to RhoML format that would
                parse back into this tree.</summary>
        </member>
        <member name="P:RT.Util.RhoElement.Name">
            <summary>Gets or sets the name of the element. Null for the root element, otherwise non-null.</summary>
        </member>
        <member name="P:RT.Util.RhoElement.Value">
            <summary>Gets or sets the value of the default attribute. Null if the default attribute was omitted.</summary>
        </member>
        <member name="P:RT.Util.RhoElement.Attributes">
            <summary>
                Gets or sets a dictionary of attributes. Not null. There is a key for each named attribute specified on the
                element. Attributes whose value was omitted will have the value of null in this dictionary.</summary>
        </member>
        <member name="P:RT.Util.RhoElement.Children">
            <summary>
                Gets or sets a read-only list of child elements. Not null. May be empty, or contain any <see cref="T:RT.Util.RhoNode"/>
                instance in any order.</summary>
        </member>
        <member name="P:RT.Util.RhoElement.Descendants">
            <summary>Enumerates all descendants of this node, in an unspecified order.</summary>
        </member>
        <member name="T:RT.Util.RhoParseException">
            <summary>Represents a RhoML parsing exception.</summary>
        </member>
        <member name="P:RT.Util.RhoParseException.Line">
            <summary>Gets the line number at which the parse error occurred.</summary>
        </member>
        <member name="P:RT.Util.RhoParseException.Column">
            <summary>Gets the column number at which the parse error occurred.</summary>
        </member>
        <member name="P:RT.Util.RhoParseException.Snippet">
            <summary>A snippet of the JSON string at which the parse error occurred.</summary>
        </member>
        <member name="T:RT.Util.RTSmtpException">
            <summary>Encapsulates an error condition that occurred during an SMTP exchange.</summary>
        </member>
        <member name="M:RT.Util.RTSmtpException.#ctor(System.String,System.Collections.Generic.List{System.String},System.Exception)">
            <summary>
                Constructor.</summary>
            <param name="message">
                Error message.</param>
            <param name="conversation">
                Contains the SMTP conversation (protocol text sent back and forth) up to the point of the error.</param>
            <param name="inner">
                Inner exception.</param>
        </member>
        <member name="P:RT.Util.RTSmtpException.Conversation">
            <summary>Contains the SMTP conversation (protocol text sent back and forth) up to the point of the error.</summary>
        </member>
        <member name="T:RT.Util.SmtpEncryption">
            <summary>Represents an SMTP encryption mode.</summary>
        </member>
        <member name="F:RT.Util.SmtpEncryption.None">
            <summary>No encryption</summary>
        </member>
        <member name="F:RT.Util.SmtpEncryption.Ssl">
            <summary>SSL/TLS encryption</summary>
        </member>
        <member name="F:RT.Util.SmtpEncryption.SslIgnoreCert">
            <summary>SSL/TLS encryption; any certificate validation errors are ignored.</summary>
        </member>
        <member name="T:RT.Util.RTSmtpSettings">
            <summary>Holds all settings required to connect to an SMTP server.</summary>
        </member>
        <member name="T:RT.Util.Serialization.IClassifyObjectProcessor">
            <summary>
                Contains methods to process an object before or after <see cref="T:RT.Util.Serialization.Classify"/> (de)serializes it, irrespective of
                the serialization format used. To have effect, this interface must be implemented by the object being serialized.</summary>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyObjectProcessor.BeforeSerialize">
            <summary>
                Pre-processes this object before <see cref="T:RT.Util.Serialization.Classify"/> serializes it. This method is automatically invoked by
                <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyObjectProcessor.AfterDeserialize">
            <summary>
                Post-processes this object after <see cref="T:RT.Util.Serialization.Classify"/> has restored it from serialized form. This method is
                automatically invoked by <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
        </member>
        <member name="F:RT.Util.RTSmtpSettings.Host">
            <summary>Server host name or IP address.</summary>
        </member>
        <member name="F:RT.Util.RTSmtpSettings.Port">
            <summary>Server port. Standard ports: 25 for no encryption, 465 for SSL.</summary>
        </member>
        <member name="F:RT.Util.RTSmtpSettings.Encryption">
            <summary>Encryption to use.</summary>
        </member>
        <member name="F:RT.Util.RTSmtpSettings.Username">
            <summary>
                SMTP username for login - for "me@example.com" this is typically "me" or "me@example.com", but can be
                anything.</summary>
        </member>
        <member name="F:RT.Util.RTSmtpSettings.Password">
            <summary>
                Unencrypted password to be automatically encrypted by Classify whenever the settings are loaded or saved.</summary>
        </member>
        <member name="F:RT.Util.RTSmtpSettings.PasswordEncrypted">
            <summary>The encrypted password.</summary>
        </member>
        <member name="M:RT.Util.RTSmtpSettings.DecryptPassword(System.String)">
            <summary>When implemented in a derived class, decrypts the specified encrypted password.</summary>
        </member>
        <member name="M:RT.Util.RTSmtpSettings.EncryptPassword(System.String)">
            <summary>When implemented in a derived class, encrypts the specified clear-text password.</summary>
        </member>
        <member name="P:RT.Util.RTSmtpSettings.PasswordDecrypted">
            <summary>The decrypted password.</summary>
        </member>
        <member name="T:RT.Util.RTSmtpClient">
            <summary>Provides methods to send e-mails via an SMTP server.</summary>
        </member>
        <member name="M:RT.Util.RTSmtpClient.#ctor(System.String,System.Int32,System.String,System.String,RT.Util.SmtpEncryption,RT.Util.LoggerBase,System.Int32)">
            <summary>
                Creates a connection to the SMTP server and authenticates the specified user.</summary>
            <param name="host">
                SMTP host name.</param>
            <param name="port">
                SMTP host port.</param>
            <param name="username">
                SMTP username.</param>
            <param name="password">
                SMTP password.</param>
            <param name="encryption">
                Encryption mode.</param>
            <param name="log">
                The SMTP client logs various messages to this log at various verbosity levels.</param>
            <param name="timeout">
                Network stream read/write timeout, in milliseconds.</param>
            <exception cref="T:RT.Util.RTSmtpException">
                SMTP protocol error, or authentication failed.</exception>
            <exception cref="T:System.IO.IOException">
                Network error or timeout.</exception>
        </member>
        <member name="M:RT.Util.RTSmtpClient.#ctor(RT.Util.RTSmtpSettings,RT.Util.LoggerBase)">
            <summary>
                Creates a connection to the SMTP server and authenticates the specified user.</summary>
            <param name="settings">
                An object containing the relevant SMTP settings.</param>
            <param name="log">
                The SMTP client logs various messages to this log at various verbosity levels.</param>
            <exception cref="T:RT.Util.RTSmtpException">
                SMTP protocol error, or authentication failed.</exception>
        </member>
        <member name="M:RT.Util.RTSmtpClient.SendEmail(System.Net.Mail.MailAddress,System.Collections.Generic.IEnumerable{System.Net.Mail.MailAddress},System.String,System.String,System.String)">
            <summary>
                Sends an e-mail.</summary>
            <param name="from">
                From address.</param>
            <param name="to">
                Recipient address(es).</param>
            <param name="subject">
                Subject line.</param>
            <param name="bodyPlain">
                Plain-text version of the e-mail.</param>
            <param name="bodyHtml">
                HTML version of the e-mail.</param>
        </member>
        <member name="M:RT.Util.RTSmtpClient.SendEmail(System.Net.Mail.MailAddress,System.Collections.Generic.IEnumerable{System.Net.Mail.MailAddress},System.Collections.Generic.IEnumerable{System.String},System.String,System.String)">
            <summary>
                Sends an email with fully custom headers.</summary>
            <param name="from">
                The "envelope From" address presented to the MTA.</param>
            <param name="to">
                The "envelope To" address presented to the MTA.</param>
            <param name="headers">
                Zero or more headers. Headers must be in the correct format, including escaping, and excluding the linebreak
                that separates headers (but including any line breaks required within the header). This method does not
                validate the headers in any way, and does not include From, To, Date or any other headers unless explicitly
                passed in through this argument.</param>
            <param name="bodyPlain">
                Plain-text version of the e-mail.</param>
            <param name="bodyHtml">
                HTML version of the e-mail.</param>
        </member>
        <member name="M:RT.Util.RTSmtpClient.EncodeHeader(System.String,System.String)">
            <summary>
                Encodes an email header for use with <see cref="M:RT.Util.RTSmtpClient.SendEmail(System.Net.Mail.MailAddress,System.Collections.Generic.IEnumerable{System.Net.Mail.MailAddress},System.Collections.Generic.IEnumerable{System.String},System.String,System.String)"/>, escaping, quoting and line-wrapping as required by the relevant
                RFCs.</summary>
        </member>
        <member name="M:RT.Util.RTSmtpClient.EncodeHeader(System.String,System.Net.Mail.MailAddress[])">
            <summary>
                Encodes an email header for use with <see cref="M:RT.Util.RTSmtpClient.SendEmail(System.Net.Mail.MailAddress,System.Collections.Generic.IEnumerable{System.Net.Mail.MailAddress},System.Collections.Generic.IEnumerable{System.String},System.String,System.String)"/>, escaping, quoting and line-wrapping as required by the relevant
                RFCs.</summary>
        </member>
        <member name="M:RT.Util.RTSmtpClient.Dispose">
            <summary>Closes the SMTP connection and frees all associated resources.</summary>
        </member>
        <member name="T:RT.Util.Emailer">
            <summary>
                Implements a simple interface for sending an email that shares a global repository of SMTP settings. This
                repository is stored using <see cref="T:RT.Util.SettingsUtil"/> using the name "RT.Emailer". The repository contains a list
                of SMTP accounts with a unique name. One of the accounts may be designated as the default one if the application
                doesn't specify any. The "From" address is fixed per account, but the name may be overridden by the application.</summary>
        </member>
        <member name="F:RT.Util.Emailer.Log">
            <summary>If set, the SMTP client will log various messages to this log at various verbosity levels.</summary>
        </member>
        <member name="M:RT.Util.Emailer.SendEmail(System.Collections.Generic.IEnumerable{System.Net.Mail.MailAddress},System.String,System.String,System.String,System.String,System.String)">
            <summary>
                Sends an email using one of the pre-configured RT.Emailer SMTP accounts. If none are configured on this
                computer, an exception will be thrown, describing what the user needs to do - though this requires a pretty
                technical user.</summary>
            <param name="to">
                The recipients of the email.</param>
            <param name="subject">
                Subject line.</param>
            <param name="bodyPlain">
                Body of the message in plaintext format, or null to omit this MIME type.</param>
            <param name="bodyHtml">
                Body of the message in HTML format, or null to omit this MIME type.</param>
            <param name="account">
                The name of one of the RT.Emailer accounts to use (case-sensitive). If null or not defined, will fall back to
                exe name, then the Default Account setting, and then any defined account, in this order.</param>
            <param name="fromName">
                The text to use as the "from" name. If null, will use the executable name. This setting has no effect if the
                specified RT.Emailer account specifies a FromName of its own.</param>
        </member>
        <member name="T:RT.Util.SettingsBase">
            <summary>
                Provides a base class for settings classes, implementing certain common usage patterns. See remarks for detailed
                usage instructions.</summary>
            <remarks>
                <para>
                    Derive a class from this one and add the fields you wish to persist. Mark those you don't want stored with the
                    <see cref="T:RT.Util.Xml.XmlIgnoreAttribute"/>. You must mark the derived class with <see cref="T:RT.Util.SettingsAttribute"/>.</para>
                <para>
                    Once the above is done, the settings can be saved by calling <see cref="M:RT.Util.SettingsBase.Save(System.String,System.Nullable{RT.Util.SettingsSerializer},RT.Util.SettingsOnFailure)"/>/<see cref="M:RT.Util.SettingsBase.SaveQuiet(System.String,System.Nullable{RT.Util.SettingsSerializer})"/>,
                    depending on intent. To load, call <see cref="M:RT.Util.SettingsUtil.LoadSettings``1(``0@,System.String,System.Nullable{RT.Util.SettingsSerializer})"/>, making sure that the
                    generic type is the type of your descendant class. For example:</para>
                <code>
                    static class Program
                    {
                        public static MySettings Settings;
            
                        static void Main(string[] args)
                        {
                            SettingsUtil.LoadSettings(out Settings);
                            DoWork();
                            Settings.Save();
                        }
                    }
            
                    [Settings("MyApplicationName", SettingsKind.UserSpecific)]
                    class MySettings : SettingsBase
                    {
                        public string SomeSetting = "initial/default value";
                    }</code>
                <para>
                    <see cref="T:RT.Util.SettingsThreadedBase"/> implements an extra method to enable settings to be queued for a save on a
                    separate thread, to reduce the performance impact of less important saves.</para></remarks>
        </member>
        <member name="M:RT.Util.SettingsBase.BeforeSave">
            <summary>
                This method is called just before the settings class is written out to disk, allowing any required changes to
                be made to the fields. The base implementation does nothing. Note that this may be called on a different
                thread than the one invoking a Save* operation (but the same as the thread performing the save immediately
                after this method returns).</summary>
        </member>
        <member name="M:RT.Util.SettingsBase.AfterLoad">
            <summary>
                This method is called just before the settings class is restored from disk, allowing any required changes to
                be made to the fields. The base implementation does nothing.</summary>
        </member>
        <member name="M:RT.Util.SettingsBase.Save(System.String,System.Nullable{RT.Util.SettingsSerializer},RT.Util.SettingsOnFailure)">
            <summary>
                <para>
                    Saves the settings.</para>
                <para>
                    This method is fully compatible with <see cref="M:RT.Util.SettingsThreadedBase.SaveThreaded(System.String,System.Nullable{RT.Util.SettingsSerializer})"/>, and will cancel any
                    pending earlier (older) saves.</para></summary>
        </member>
        <member name="M:RT.Util.SettingsBase.SaveLoud(System.String,System.Nullable{RT.Util.SettingsSerializer})">
            <summary>
                <para>
                    Saves the settings. Intended to be used whenever the settings are important enough to bug the user if this
                    fails.</para>
                <para>
                    This method is fully compatible with <see cref="M:RT.Util.SettingsThreadedBase.SaveThreaded(System.String,System.Nullable{RT.Util.SettingsSerializer})"/>, and will cancel any
                    pending earlier (older) saves.</para></summary>
        </member>
        <member name="M:RT.Util.SettingsBase.SaveQuiet(System.String,System.Nullable{RT.Util.SettingsSerializer})">
            <summary>
                <para>
                    Saves the settings. Intended to be used whenever the settings are not important enough to bug the user if
                    this fails.</para>
                <para>
                    This method is fully compatible with <see cref="M:RT.Util.SettingsThreadedBase.SaveThreaded(System.String,System.Nullable{RT.Util.SettingsSerializer})"/>, and will cancel any
                    pending earlier (older) saves.</para></summary>
        </member>
        <member name="M:RT.Util.SettingsBase.Delete(System.String,RT.Util.SettingsOnFailure)">
            <summary>Deletes the settings file.</summary>
        </member>
        <member name="P:RT.Util.SettingsBase.Attribute">
            <summary>
                Gets the <see cref="T:RT.Util.SettingsAttribute"/> instance specified on this settings class, or null if none are
                specified.</summary>
        </member>
        <member name="T:RT.Util.RummageNoRemoveAttribute">
            <summary>Instructs Rummage to keep a specific type, method, constructor or field.</summary>
        </member>
        <member name="T:RT.Util.RummageNoRenameAttribute">
            <summary>Instructs Rummage to keep the original name of a specific element.</summary>
        </member>
        <member name="T:RT.Util.RummageNoRenameAnythingAttribute">
            <summary>
                Instructs Rummage to keep the original name of a specific type, all of its members, and all the members in all of
                its nested types.</summary>
        </member>
        <member name="T:RT.Util.RummageNoUnnestAttribute">
            <summary>Instructs rummage to avoid un-nesting the specified type.</summary>
        </member>
        <member name="T:RT.Util.RummageNoMarkPublicAttribute">
            <summary>Instructs rummage to keep the original access modifier of a specific element.</summary>
        </member>
        <member name="T:RT.Util.RummageNoInlineAttribute">
            <summary>
                Instructs Rummage not to inline a specific method or property that would otherwise be automatically inlined. This
                attribute takes precedence over <see cref="T:RT.Util.RummageInlineAttribute"/> if both are specified on the same method or
                property.</summary>
        </member>
        <member name="T:RT.Util.RummageInlineAttribute">
            <summary>Instructs Rummage to inline a specific method or property that would otherwise not be automatically inlined.</summary>
        </member>
        <member name="T:RT.Util.RummageKeepReflectionSafeAttribute">
            <summary>Instructs Rummage to refrain from making any changes to a specific type.</summary>
        </member>
        <member name="T:RT.Util.RummageKeepArgumentsReflectionSafeAttribute">
            <summary>Instructs Rummage to keep all the types reflection-safe which are passed in for the given generic parameter.</summary>
        </member>
        <member name="T:RT.Util.RummageKeepUsersReflectionSafeAttribute">
            <summary>
                Use only on custom-attribute class declarations. Instructs Rummage to keep everything reflection-safe that uses
                the given custom attribute.</summary>
        </member>
        <member name="T:RT.Util.RummageAssumeTypeSafeAttribute">
            <summary>
                Use on a method or constructor parameter of type "Type". Instructs Rummage that this method uses the Type passed
                in in a way that is fully compatible with all obfuscations, including removing members not directly referenced,
                renaming members, unnesting types and so on.</summary>
        </member>
        <member name="T:RT.Util.RummageNoMarkDerivedTypesReflectionSafeAttribute">
            <summary>
                Instructs Rummage not to mark derived types as reflection-safe if it determines that this type needs to be kept
                reflection-safe.</summary>
        </member>
        <member name="T:RT.Util.RummageNoInferReflectionSafeFromBaseAttribute">
            <summary>
                Instructs Rummage not to mark this type as reflection-safe if it determines that the base type needs to be kept
                reflection-safe.</summary>
        </member>
        <member name="T:RT.Util.Rummage">
            <summary>Contains methods used to augment the program with Rummage-related information.</summary>
        </member>
        <member name="M:RT.Util.Rummage.Safe(System.Type)">
            <summary>
                Returns the type passed in. Use around a <c>typeof(SomeType)</c> to override Rummage's reflection safety
                analysis and make Rummage believe that this particular use is entirely safe.</summary>
        </member>
        <member name="T:RT.Util.Serialization.Classify">
            <summary>
                Provides static methods to represent objects of (almost) arbitrary classes in various formats (such as XML or
                JSON) and to restore such objects again. See the remarks section for features and limitations.</summary>
            <remarks>
                <para>
                    By default, when serializing a custom class, Classify persists the value of all instance fields, including
                    private, inherited and compiler-generated ones. It does not persist static members or the result of property
                    getters. Each field is persisted under a name that is the field’s name minus any leading underscores.
                    Compiler-generated fields for automatically-implemented properties are instead named after the
                    automatically-implemented property’s name minus any leading underscores.</para>
                <para>
                    Classify can also generate representations of basic types such as <c>string</c>, <c>int</c>, <c>bool</c>, etc.</para>
                <para>
                    Features:</para>
                <list type="bullet">
                    <item><description>
                        Classify fully supports all the built-in types which are keywords in C# except <c>object</c> and
                        <c>dynamic</c>. It also supports <c>DateTime</c> and all enum types.</description></item>
                    <item><description>
                        Classify fully supports classes and structs that contain only fields of the above types as well as fields
                        whose type is itself such a class or struct.</description></item>
                    <item><description>
                        Classify has special handling for classes that implement <c>IDictionary&lt;TKey, TValue&gt;</c>, where
                        <c>TValue</c> must be a type also supported by Classify. <c>TKey</c> must be <c>string</c>, an integer
                        type or an enum type. If the field is of a concrete type, that type is maintained, but its extra fields
                        are not persisted. If the field is of the interface type <c>IDictionary&lt;TKey, TValue&gt;</c> itself,
                        the type <c>Dictionary&lt;TKey, TValue&gt;</c> is used to reconstruct the object.</description></item>
                    <item><description>
                        Classify has special handling for classes that implement <c>ICollection&lt;T&gt;</c>, where <c>T</c> must
                        be a type also supported by Classify. If the field is of a concrete type, that type is maintained, but its
                        extra fields are not persisted. If the field is of the interface type <c>ICollection&lt;T&gt;</c> or
                        <c>IList&lt;T&gt;</c> itself, the type <c>List&lt;T&gt;</c> is used to reconstruct the object. If the type
                        also implements <c>IDictionary&lt;TKey, TValue&gt;</c>, the special handling for that takes precedence.</description></item>
                    <item><description>
                        Classify also supports <see cref="T:System.Collections.Generic.KeyValuePair`2"/> and all the different
                        <c>System.Tuple&lt;...&gt;</c> types.</description></item>
                    <item><description>
                        Classify handles the element type specially. For example, if you are classifying to XML, classifying an
                        <see cref="T:System.Xml.Linq.XElement"/> object generates the XML directly; if you are classifying to JSON,
                        the same goes for <see cref="T:RT.Util.Json.JsonValue"/> objects, etc.</description></item>
                    <item><description>
                        For classes that don’t implement any of the above-mentioned collection interfaces, Classify supports
                        polymorphism. The actual type of an instance is persisted if it is different from the declared type.</description></item>
                    <item><description>
                        Classify supports auto-implemented properties. It uses the name of the property rather than the hidden
                        auto-generated field, although the field’s value is persisted. All other properties are ignored.</description></item>
                    <item><description>
                        Classify ignores the order of input elements (except when handling collections and dictionaries). For
                        example, XML tags or JSON dictionary keys are mapped to fields by their names; their order is considered
                        immaterial.</description></item>
                    <item><description>
                        Classify silently discards unrecognized XML tags/JSON dictionary keys instead of throwing errors. This is
                        by design because it enables the programmer to remove a field from a class without invalidating objects
                        previously persisted.</description></item>
                    <item><description>
                        Classify silently ignores missing elements. A field whose element is missing retains the value assigned to
                        it by the parameterless constructor. This is by design because it enables the programmer to add a new
                        field to a class (and to specify a default initialization value for it) without invalidating objects
                        previously persisted.</description></item>
                    <item><description>
                        The following custom attributes can be used to alter Classify’s behavior. See the custom attribute class’s
                        documentation for more information: <see cref="T:RT.Util.Serialization.ClassifyFollowIdAttribute"/>, <see cref="T:RT.Util.Serialization.ClassifyIdAttribute"/>, <see cref="T:RT.Util.Serialization.ClassifyIgnoreAttribute"/>, <see cref="T:RT.Util.Serialization.ClassifyIgnoreIfAttribute"/>, <see cref="T:RT.Util.Serialization.ClassifyIgnoreIfDefaultAttribute"/>, <see cref="T:RT.Util.Serialization.ClassifyIgnoreIfEmptyAttribute"/>, <see cref="T:RT.Util.Serialization.ClassifyParentAttribute"/>. Any attribute that can be
                        used on a field, can equally well be used on an auto-implemented property, but not on any other
                        properties.</description></item>
                    <item><description>
                        Classify maintains object identity and correctly handles cycles in the object graph. Only <c>string</c>s
                        are exempt from this.</description></item>
                    <item><description>
                        Classify can make use of type substitutions. See <see cref="T:RT.Util.Serialization.IClassifySubstitute`2"/> for
                        more information.</description></item>
                    <item><description>
                        Classify allows you to pre-/post-process the serialized form and/or the serialized objects. See <see cref="T:RT.Util.Serialization.IClassifyObjectProcessor"/>, <see cref="T:RT.Util.Serialization.IClassifyObjectProcessor`1"/>, <see cref="T:RT.Util.Serialization.IClassifyTypeProcessor"/> and <see cref="T:RT.Util.Serialization.IClassifyTypeProcessor`1"/> for more information.</description></item></list>
                <para>
                    Limitations:</para>
                <list type="bullet">
                    <item><description>
                        Classify requires that every type involved have a parameterless constructor, although it need not be
                        public. This parameterless constructor is executed with all its side-effects before each object is
                        reconstructed. An exception is made when a field in an object already has a non-null instance assigned to
                        it by the constructor; in such cases, the object is reused.</description></item>
                    <item><description>
                        If a field is of type <c>ICollection&lt;T&gt;</c>, <c>IList&lt;T&gt;</c>, <c>IDictionary&lt;TKey,
                        TValue&gt;</c>, or any class that implements either of these, polymorphism is not supported, and nor is
                        any information stored in those classes. In particular, this means that the comparer used by a
                        <c>SortedDictionary&lt;TKey, TValue&gt;</c> is not persisted. However, if the containing class’s
                        constructor assigned a <c>SortedDictionary&lt;TKey, TValue&gt;</c> with a comparer, that instance, and
                        hence its comparer, is reused.</description></item></list></remarks>
        </member>
        <member name="F:RT.Util.Serialization.Classify.DefaultOptions">
            <summary>
                Options used when null is passed to methods that take options. Make sure not to modify this instance if any
                thread in the application might be in the middle of using <see cref="T:RT.Util.Serialization.Classify"/>; ideally the options shoud be
                set once during startup and never changed after that.</summary>
        </member>
        <member name="M:RT.Util.Serialization.Classify.DeserializeFile``2(System.String,RT.Util.Serialization.IClassifyFormat{``0},RT.Util.Serialization.ClassifyOptions,System.Object)">
            <summary>
                Reconstructs an object of the specified type from the specified file.</summary>
            <typeparam name="TElement">
                Type of the serialized form (see <paramref name="format"/>).</typeparam>
            <typeparam name="T">
                Type of object to read.</typeparam>
            <param name="filename">
                Path and filename of the file to read from.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="options">
                Options.</param>
            <param name="parent">
                If the class to be declassified has a field with the <see cref="T:RT.Util.Serialization.ClassifyParentAttribute"/>, that field will
                receive this object.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.Classify.DeserializeFile``1(System.Type,System.String,RT.Util.Serialization.IClassifyFormat{``0},RT.Util.Serialization.ClassifyOptions,System.Object)">
            <summary>
                Reconstructs an object of the specified type from the specified file.</summary>
            <typeparam name="TElement">
                Type of the serialized form (see <paramref name="format"/>).</typeparam>
            <param name="type">
                Type of object to read.</param>
            <param name="filename">
                Path and filename of the file to read from.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="options">
                Options.</param>
            <param name="parent">
                If the class to be declassified has a field with the <see cref="T:RT.Util.Serialization.ClassifyParentAttribute"/>, that field will
                receive this object.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.Classify.Deserialize``2(``0,RT.Util.Serialization.IClassifyFormat{``0},RT.Util.Serialization.ClassifyOptions)">
            <summary>
                Reconstructs an object of the specified type from the specified serialized form.</summary>
            <typeparam name="TElement">
                Type of the serialized form (see <paramref name="format"/>).</typeparam>
            <typeparam name="T">
                Type of object to reconstruct.</typeparam>
            <param name="elem">
                Serialized form to reconstruct object from.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="options">
                Options.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.Classify.Deserialize``1(System.Type,``0,RT.Util.Serialization.IClassifyFormat{``0},RT.Util.Serialization.ClassifyOptions)">
            <summary>
                Reconstructs an object of the specified type from the specified serialized form.</summary>
            <typeparam name="TElement">
                Type of the serialized form (see <paramref name="format"/>).</typeparam>
            <param name="type">
                Type of object to reconstruct.</param>
            <param name="elem">
                Serialized form to reconstruct object from.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="options">
                Options.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.Classify.DeserializeIntoObject``2(``0,``1,RT.Util.Serialization.IClassifyFormat{``0},RT.Util.Serialization.ClassifyOptions)">
            <summary>
                Reconstructs an object of the specified type from the specified serialized form by applying the values to an
                existing instance of the type.</summary>
            <typeparam name="TElement">
                Type of the serialized form (see <paramref name="format"/>).</typeparam>
            <typeparam name="T">
                Type of object to reconstruct.</typeparam>
            <param name="element">
                Serialized form to reconstruct object from.</param>
            <param name="intoObject">
                Object to assign values to in order to reconstruct the original object.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="options">
                Options.</param>
        </member>
        <member name="M:RT.Util.Serialization.Classify.DeserializeFileIntoObject``1(System.String,System.Object,RT.Util.Serialization.IClassifyFormat{``0},RT.Util.Serialization.ClassifyOptions)">
            <summary>
                Reconstructs an object from the specified file by applying the values to an existing instance of the desired
                type. The type of object is inferred from the object passed in.</summary>
            <typeparam name="TElement">
                Type of the serialized form (see <paramref name="format"/>).</typeparam>
            <param name="filename">
                Path and filename of the file to read from.</param>
            <param name="intoObject">
                Object to assign values to in order to reconstruct the original object. Also determines the type of object
                expected.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="options">
                Options.</param>
        </member>
        <member name="M:RT.Util.Serialization.Classify.SerializeToFile``2(``1,System.String,RT.Util.Serialization.IClassifyFormat{``0},RT.Util.Serialization.ClassifyOptions)">
            <summary>
                Stores the specified object in a file with the given path and filename.</summary>
            <typeparam name="TElement">
                Type of the serialized form (see <paramref name="format"/>).</typeparam>
            <typeparam name="T">
                Type of the object to store.</typeparam>
            <param name="saveObject">
                Object to store in a file.</param>
            <param name="filename">
                Path and filename of the file to be created. If the file already exists, it is overwritten.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="options">
                Options.</param>
        </member>
        <member name="M:RT.Util.Serialization.Classify.SerializeToFile``1(System.Type,System.Object,System.String,RT.Util.Serialization.IClassifyFormat{``0},RT.Util.Serialization.ClassifyOptions)">
            <summary>
                Stores the specified object in a file with the given path and filename.</summary>
            <typeparam name="TElement">
                Type of the serialized form (see <paramref name="format"/>).</typeparam>
            <param name="saveType">
                Type of the object to store.</param>
            <param name="saveObject">
                Object to store in a file.</param>
            <param name="filename">
                Path and filename of the file to be created. If the file already exists, it is overwritten.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="options">
                Options.</param>
        </member>
        <member name="M:RT.Util.Serialization.Classify.Serialize``2(``1,RT.Util.Serialization.IClassifyFormat{``0},RT.Util.Serialization.ClassifyOptions)">
            <summary>
                Converts the specified object into a serialized form.</summary>
            <typeparam name="TElement">
                Type of the serialized form (see <paramref name="format"/>).</typeparam>
            <typeparam name="T">
                Type of object to convert.</typeparam>
            <param name="saveObject">
                Object to be serialized.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="options">
                Options.</param>
            <returns>
                The serialized form generated from the object.</returns>
        </member>
        <member name="M:RT.Util.Serialization.Classify.Serialize``1(System.Type,System.Object,RT.Util.Serialization.IClassifyFormat{``0},RT.Util.Serialization.ClassifyOptions)">
            <summary>
                Converts the specified object into a serialized form.</summary>
            <typeparam name="TElement">
                Type of the serialized form (see <paramref name="format"/>).</typeparam>
            <param name="saveType">
                Type of object to convert.</param>
            <param name="saveObject">
                Object to be serialized.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="options">
                Options.</param>
            <returns>
                The serialized form generated from the object.</returns>
        </member>
        <member name="M:RT.Util.Serialization.Classify.PostBuildStep``1(RT.Util.IPostBuildReporter)">
            <summary>
                Performs safety checks to ensure that a specific type doesn't cause Classify exceptions. Run this method as a
                post-build step to ensure reliability of execution. For an example of use, see <see cref="M:RT.Util.Ut.RunPostBuildChecks(System.String,System.Reflection.Assembly[])"/>.</summary>
            <typeparam name="T">
                The type that must be Classify-able.</typeparam>
            <param name="rep">
                Object to report post-build errors to.</param>
        </member>
        <member name="M:RT.Util.Serialization.Classify.PostBuildStep(System.Type,RT.Util.IPostBuildReporter)">
            <summary>
                Performs safety checks to ensure that a specific type doesn't cause Classify exceptions. Run this method as a
                post-build step to ensure reliability of execution. For an example of use, see <see cref="M:RT.Util.Ut.RunPostBuildChecks(System.String,System.Reflection.Assembly[])"/>.</summary>
            <param name="type">
                The type that must be Classify-able.</param>
            <param name="rep">
                Object to report post-build errors to.</param>
        </member>
        <member name="M:RT.Util.Serialization.Classify.classifier`1.deserialize(System.Type,`0,System.Object,System.Object,System.Boolean)">
            <summary>
                Deserializes an object from its serialized form.</summary>
            <param name="type">
                The type to deserialize to.</param>
            <param name="elem">
                The serialized form.</param>
            <param name="already">
                An object that we may potentially re-use (e.g. the object already stored in the field when deserializing a
                field inside an outer object).</param>
            <param name="parentNode">
                The value for a [ClassifyParent] field.</param>
            <param name="enforceEnums">
                <c>true</c> if [ClassifyEnforceEnums] semantics are in effect for this object.</param>
        </member>
        <member name="T:RT.Util.Serialization.IClassifyObjectProcessor`1">
            <summary>
                Contains methods to process an object and/or the associated serialized form before or after <see cref="T:RT.Util.Serialization.Classify"/>
                (de)serializes it. To have effect, this interface must be implemented by the object being serialized.</summary>
            <typeparam name="TElement">
                Type of the serialized form.</typeparam>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyObjectProcessor`1.BeforeSerialize">
            <summary>
                Pre-processes this object before <see cref="T:RT.Util.Serialization.Classify"/> serializes it. This method is automatically invoked by
                <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyObjectProcessor`1.AfterSerialize(`0)">
            <summary>
                Post-processes the serialization produced by <see cref="T:RT.Util.Serialization.Classify"/> for this object. This method is
                automatically invoked by <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
            <param name="element">
                The serialized form produced for this object. All changes made to it are final and will appear in <see cref="T:RT.Util.Serialization.Classify"/>’s output.</param>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyObjectProcessor`1.BeforeDeserialize(`0)">
            <summary>
                Pre-processes a serialized form before <see cref="T:RT.Util.Serialization.Classify"/> restores the object from it. The object’s fields
                have not yet been populated when this method is called. This method is automatically invoked by <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
            <param name="element">
                The serialized form from which this object is about to be restored. All changes made to it will affect how the
                object is restored.</param>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyObjectProcessor`1.AfterDeserialize(`0)">
            <summary>
                Post-processes this object after <see cref="T:RT.Util.Serialization.Classify"/> has restored it from serialized form. This method is
                automatically invoked by <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
            <param name="element">
                The serialized form from which this object was restored. Changes made to this will have no effect on the
                deserialization.</param>
        </member>
        <member name="T:RT.Util.Serialization.IClassifyTypeProcessor`1">
            <summary>
                Contains methods to process an object and/or the associated serialized form before or after <see cref="T:RT.Util.Serialization.Classify"/>
                (de)serializes it. To have effect, this interface must be implemented by a class derived from <see cref="T:RT.Util.Serialization.ClassifyTypeOptions"/> and associated with a type via <see cref="M:RT.Util.Serialization.ClassifyOptions.AddTypeOptions(System.Type,RT.Util.Serialization.ClassifyTypeOptions)"/>.</summary>
            <typeparam name="TElement">
                Type of the serialized form.</typeparam>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyTypeProcessor`1.BeforeSerialize(System.Object)">
            <summary>
                Pre-processes the object before <see cref="T:RT.Util.Serialization.Classify"/> serializes it. This method is automatically invoked by
                <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
            <param name="obj">
                The object about to be serialized.</param>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyTypeProcessor`1.AfterSerialize(System.Object,`0)">
            <summary>
                Post-processes the serialization produced by <see cref="T:RT.Util.Serialization.Classify"/> for this object. This method is
                automatically invoked by <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
            <param name="obj">
                The object that has just been serialized.</param>
            <param name="element">
                The serialized form produced for this object. All changes made to it are final and will appear in <see cref="T:RT.Util.Serialization.Classify"/>’s output.</param>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyTypeProcessor`1.BeforeDeserialize(`0)">
            <summary>
                Pre-processes a serialized form before <see cref="T:RT.Util.Serialization.Classify"/> restores the object from it. This method is
                automatically invoked by <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
            <param name="element">
                The serialized form from which this object is about to be restored. All changes made to it will affect how the
                object is restored.</param>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyTypeProcessor`1.AfterDeserialize(System.Object,`0)">
            <summary>
                Post-processes an object after <see cref="T:RT.Util.Serialization.Classify"/> has restored it from serialized form. This method is
                automatically invoked by <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
            <param name="obj">
                The deserialized object.</param>
            <param name="element">
                The serialized form from which this object was restored. Changes made to this will have no effect on the
                deserialization.</param>
        </member>
        <member name="T:RT.Util.Serialization.IClassifyTypeProcessor">
            <summary>
                Contains methods to process an object before or after <see cref="T:RT.Util.Serialization.Classify"/> (de)serializes it. To have effect,
                this interface must be implemented by a class derived from <see cref="T:RT.Util.Serialization.ClassifyTypeOptions"/> and associated with a
                type via <see cref="M:RT.Util.Serialization.ClassifyOptions.AddTypeOptions(System.Type,RT.Util.Serialization.ClassifyTypeOptions)"/>.</summary>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyTypeProcessor.BeforeSerialize(System.Object)">
            <summary>
                Pre-processes the object before <see cref="T:RT.Util.Serialization.Classify"/> serializes it. This method is automatically invoked by
                <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
            <param name="obj">
                The object about to be serialized.</param>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyTypeProcessor.AfterDeserialize(System.Object)">
            <summary>
                Post-processes an object after <see cref="T:RT.Util.Serialization.Classify"/> has restored it from serialized form. This method is
                automatically invoked by <see cref="T:RT.Util.Serialization.Classify"/> and should not be called directly.</summary>
            <param name="obj">
                The deserialized object.</param>
        </member>
        <member name="T:RT.Util.Serialization.IClassifySubstitute`2">
            <summary>
                Implement this interface in a subclass of <see cref="T:RT.Util.Serialization.ClassifyTypeOptions"/> to specify how to substitute a type
                for another type during Classify.</summary>
            <typeparam name="TTrue">
                The type that is actually used for instances in memory.</typeparam>
            <typeparam name="TSubstitute">
                The substitute type to be used for purposes of classifying and declassifying.</typeparam>
        </member>
        <member name="M:RT.Util.Serialization.IClassifySubstitute`2.ToSubstitute(`0)">
            <summary>
                Converts an instance of the “real” type to a substitute instance to be classified.</summary>
            <param name="instance">
                An instance of the “real” type to be substituted.</param>
            <returns>
                The converted object to use in classifying.</returns>
        </member>
        <member name="M:RT.Util.Serialization.IClassifySubstitute`2.FromSubstitute(`1)">
            <summary>
                Converts a substitute instance, generated by declassifying, back to the “real” type.</summary>
            <param name="instance">
                An instance of the substituted type, provided by Classify.</param>
            <returns>
                The converted object to put into the real type.</returns>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyOptions">
            <summary>Specifies some options for use by <see cref="T:RT.Util.Serialization.Classify"/>.</summary>
        </member>
        <member name="F:RT.Util.Serialization.ClassifyOptions.BaseDir">
            <summary>
                The base directory from which to construct the paths for additional files whenever a field has an <see cref="T:RT.Util.Serialization.ClassifyFollowIdAttribute"/> attribute. Inferred automatically from filename if null.</summary>
        </member>
        <member name="F:RT.Util.Serialization.ClassifyOptions.EnforceEnums">
            <summary>
                This option is only relevant if the value you are deserializing is an enum value or a collection or dictionary
                involving enum keys or values. If <c>true</c>, only enum values declared in the enum type are allowed (as if
                it were a field with <see cref="T:RT.Util.Serialization.ClassifyEnforceEnumAttribute"/>). Enum values inside of objects are not
                affected by this option (but only by <see cref="T:RT.Util.Serialization.ClassifyEnforceEnumAttribute"/>).</summary>
            <seealso cref="T:RT.Util.Serialization.ClassifyEnforceEnumAttribute"/>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyOptions.AddTypeOptions(System.Type,RT.Util.Serialization.ClassifyTypeOptions)">
            <summary>
                Adds options that are relevant to classifying/declassifying a specific type.</summary>
            <param name="type">
                The type to which these options apply.</param>
            <param name="options">
                Options that apply to the <paramref name="type"/>. To enable type substitution, pass an instance of a class
                that implements <see cref="T:RT.Util.Serialization.IClassifySubstitute`2"/>. To use pre-/post-processing of the
                object or its serialized form, pass an instance of a class that implements <see cref="T:RT.Util.Serialization.IClassifyTypeProcessor"/> or <see cref="T:RT.Util.Serialization.IClassifyTypeProcessor`1"/>.</param>
            <returns>
                Itself.</returns>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyTypeOptions">
            <summary>
                Provides an abstract base type to derive from to specify type-specific options for use in Classify. See remarks
                for more information.</summary>
            <remarks>
                <para>
                    Derive from this type and implement <see cref="T:RT.Util.Serialization.IClassifySubstitute`2"/> to enable type
                    substitution during Classify.</para>
                <para>
                    Derive from this type and implement <see cref="T:RT.Util.Serialization.IClassifyTypeProcessor"/> or <see cref="T:RT.Util.Serialization.IClassifyTypeProcessor`1"/> to pre-/post-process the object or its serialized form before/after
                    Classify. (You can also implement <see cref="T:RT.Util.Serialization.IClassifyObjectProcessor"/> or <see cref="T:RT.Util.Serialization.IClassifyObjectProcessor`1"/> on the serialized type itself.)</para>
                <para>
                    Intended use is to declare a class derived from <see cref="T:RT.Util.Serialization.ClassifyTypeOptions"/> and pass an instance of it
                    into <see cref="M:RT.Util.Serialization.ClassifyOptions.AddTypeOptions(System.Type,RT.Util.Serialization.ClassifyTypeOptions)"/>.</para></remarks>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyFollowIdAttribute">
            <summary>
                If this attribute is used on a field or automatically-implemented property, <see cref="T:RT.Util.Serialization.Classify"/> stores an ID
                that points to another, separate file which in turn contains the actual object. This is only allowed on fields or
                automatically-implemented properties of type <see cref="T:RT.Util.Serialization.ClassifyDeferredObject`1"/> for some type T. Use
                <see cref="P:RT.Util.Serialization.ClassifyDeferredObject`1.Value"/> to retrieve the object. This retrieval is deferred until first
                use. Use <see cref="P:RT.Util.Serialization.ClassifyDeferredObject`1.Id"/> to retrieve the ID used to reference the object. You can
                also capture the ID into the type T by using the <see cref="T:RT.Util.Serialization.ClassifyIdAttribute"/> attribute within that type.</summary>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyIgnoreAttribute">
            <summary>
                If this attribute is used on a field or automatically-implemented property, it is ignored by <see cref="T:RT.Util.Serialization.Classify"/>. Data stored in this field or automatically-implemented property is not persisted.</summary>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyIgnoreIfDefaultAttribute">
            <summary>
                If this attribute is used on a field or automatically-implemented property, <see cref="T:RT.Util.Serialization.Classify"/> omits its
                serialization if the value is null, 0, false, etc. If it is used on a type, it applies to all fields and
                automatically-implemented properties in the type. See also remarks.</summary>
            <remarks>
                <list type="bullet">
                    <item><description>
                        Using this together with <see cref="T:RT.Util.Serialization.ClassifyIgnoreIfEmptyAttribute"/> will cause the distinction between
                        null and an empty collection to be lost. However, a collection containing only null elements is persisted
                        correctly.</description></item>
                    <item><description>
                        Do not use this custom attribute on a field that has a non-default value set in the containing class’s
                        constructor. Doing so will cause a serialized null/0/false value to revert to that constructor value upon
                        deserialization.</description></item></list></remarks>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyIgnoreIfEmptyAttribute">
            <summary>
                If this attribute is used on a field or automatically-implemented property, <see cref="T:RT.Util.Serialization.Classify"/> omits its
                serialization if that serialization would be completely empty. If it is used on a type, it applies to all
                collection-type fields in the type. See also remarks.</summary>
            <remarks>
                Using this together with <see cref="T:RT.Util.Serialization.ClassifyIgnoreIfDefaultAttribute"/> will cause the distinction between null
                and an empty collection to be lost. However, a collection containing only null elements is persisted correctly.</remarks>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyIgnoreIfAttribute">
            <summary>
                If this attribute is used on a field or automatically-implemented property, <see cref="T:RT.Util.Serialization.Classify"/> omits its
                serialization if the field’s or property’s value is equal to the specified value. See also remarks.</summary>
            <remarks>
                Using this together with <see cref="T:RT.Util.Serialization.ClassifyIgnoreIfDefaultAttribute"/> will cause the distinction between the
                type’s default value and the specified value to be lost.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyIgnoreIfAttribute.#ctor(System.Object)">
            <summary>
                Constructs an <see cref="T:RT.Util.Serialization.ClassifyIgnoreIfAttribute"/> instance.</summary>
            <param name="value">
                Specifies the value which causes a field or automatically-implemented property to be ignored.</param>
        </member>
        <member name="P:RT.Util.Serialization.ClassifyIgnoreIfAttribute.Value">
            <summary>Retrieves the value which causes a field or automatically-implemented property to be ignored.</summary>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyNotNullAttribute">
            <summary>
                Specifies that Classify shall not set this field or automatically-implemented property to <c>null</c>. If the
                serialized form is <c>null</c>, the field or automatically-implemented property is instead left at the default
                value assigned by the object’s default constructor.</summary>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyEnforceEnumAttribute">
            <summary>
                To be used on a field or automatically-implemented property of an enum type or a collection involving an enum
                type. Specifies that Classify shall not allow integer values that are not explicitly declared in the relevant enum
                type. If the serialized form is such an integer, fields or automatically-implemented properties of an enum type
                are instead left at the default value assigned by the object’s default constructor, while in collections, the
                relevant element is omitted (changing the size of the collection). If the enum type has the [Flags] attribute,
                bitwise combinations of the declared values are allowed.</summary>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyParentAttribute">
            <summary>
                When reconstructing an interconnected graph of objects using <see cref="T:RT.Util.Serialization.Classify"/>, a field or
                automatically-implemented property with this attribute receives a reference to an object which refers to this
                object. This can be used when serializing tree structures to receive a node’s parent. See also remarks.</summary>
            <remarks>
                <list type="bullet">
                    <item><description>
                        If the field or automatically-implemented property is of an incompatible type, a run-time exception
                        occurs.</description></item>
                    <item><description>
                        If there was no parent node, the field or automatically-implemented property is set to null.</description></item>
                    <item><description>
                        When persisting objects, fields and automatically-implemented properties with this attribute are skipped.</description></item></list></remarks>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyIdAttribute">
            <summary>
                When reconstructing persisted objects using <see cref="T:RT.Util.Serialization.Classify"/>, a field or automatically-implemented property
                with this attribute receives the ID that was used to refer to the file that stores this object. See <see cref="T:RT.Util.Serialization.ClassifyFollowIdAttribute"/> for more information. The field or automatically-implemented property must be
                of type string.</summary>
        </member>
        <member name="T:RT.Util.Serialization.IClassifyDeferredObject">
            <summary>
                Provides access to <see cref="T:RT.Util.Serialization.ClassifyDeferredObject`1"/> properties that do not depend on its type parameter.</summary>
        </member>
        <member name="P:RT.Util.Serialization.IClassifyDeferredObject.Evaluated">
            <summary>Determines whether the object has been computed.</summary>
        </member>
        <member name="P:RT.Util.Serialization.IClassifyDeferredObject.Id">
            <summary>Returns the ID used to refer to the object.</summary>
        </member>
        <member name="P:RT.Util.Serialization.IClassifyDeferredObject.Value">
            <summary>
                Gets the object stored in this <see cref="T:RT.Util.Serialization.ClassifyDeferredObject`1"/>. Causes the object to be
                evaluated when called.</summary>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyDeferredObject`1">
            <summary>
                Provides mechanisms to hold an object that has an ID and gets evaluated at first use.</summary>
            <typeparam name="T">
                The type of the contained object.</typeparam>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyDeferredObject`1.#ctor(System.String,System.Func{`0})">
            <summary>
                Initialises a deferred object using a delegate or lambda expression.</summary>
            <param name="id">
                Id that refers to the object to be generated.</param>
            <param name="generator">
                Function to generate the object.</param>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyDeferredObject`1.#ctor(System.String,`0)">
            <summary>
                Initialises a deferred object using an actual object. Evaluation is not deferred.</summary>
            <param name="id">
                Id that refers to the object.</param>
            <param name="value">
                The object to store.</param>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyDeferredObject`1.#ctor(System.String,System.Reflection.MethodInfo,System.Object,System.Object[])">
            <summary>
                Initialises a deferred object using a method reference and an array of parameters.</summary>
            <param name="id">
                ID that refers to the object to be generated.</param>
            <param name="generatorMethod">
                Reference to a method that generates the object.</param>
            <param name="generatorObject">
                Object on which the method should be invoked. Use null for static methods.</param>
            <param name="generatorParams">
                Set of parameters for the method invocation.</param>
        </member>
        <member name="P:RT.Util.Serialization.ClassifyDeferredObject`1.Value">
            <summary>
                Gets or sets the object stored in this <see cref="T:RT.Util.Serialization.ClassifyDeferredObject`1"/>. The property getter
                causes the object to be evaluated when called. The setter overrides the object with a pre-computed object
                whose evaluation is not deferred.</summary>
        </member>
        <member name="P:RT.Util.Serialization.ClassifyDeferredObject`1.Evaluated">
            <summary>Determines whether the object has been computed.</summary>
        </member>
        <member name="P:RT.Util.Serialization.ClassifyDeferredObject`1.Id">
            <summary>Returns the ID used to refer to the object.</summary>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyJson">
            <summary>Offers a convenient way to use <see cref="T:RT.Util.Serialization.Classify"/> to serialize objects using the JSON format.</summary>
        </member>
        <member name="F:RT.Util.Serialization.ClassifyJson.DefaultFormat">
            <summary>
                Format used when null is passed to methods that take a format. Make sure not to modify this instance if any thread
                in the application might be in the middle of using <see cref="T:RT.Util.Serialization.ClassifyJson"/>; ideally the options shoud be set
                once during startup and never changed after that.</summary>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyJson.DeserializeFile``1(System.String,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{RT.Util.Json.JsonValue},System.Object)">
            <summary>
                Reconstructs an object of the specified type from the specified file.</summary>
            <typeparam name="T">
                Type of object to read.</typeparam>
            <param name="options">
                Options.</param>
            <param name="filename">
                Path and filename of the file to read from.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="parent">
                If the class to be declassified has a field with the <see cref="T:RT.Util.Serialization.ClassifyParentAttribute"/>, that field will
                receive this object.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyJson.DeserializeFile(System.Type,System.String,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{RT.Util.Json.JsonValue},System.Object)">
            <summary>
                Reconstructs an object of the specified type from the specified file.</summary>
            <param name="type">
                Type of object to read.</param>
            <param name="options">
                Options.</param>
            <param name="filename">
                Path and filename of the file to read from.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="parent">
                If the class to be declassified has a field with the <see cref="T:RT.Util.Serialization.ClassifyParentAttribute"/>, that field will
                receive this object.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyJson.Deserialize``1(RT.Util.Json.JsonValue,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{RT.Util.Json.JsonValue})">
            <summary>
                Reconstructs an object of the specified type from the specified serialized form.</summary>
            <typeparam name="T">
                Type of object to reconstruct.</typeparam>
            <param name="json">
                Serialized form to reconstruct object from.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyJson.Deserialize(System.Type,RT.Util.Json.JsonValue,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{RT.Util.Json.JsonValue})">
            <summary>
                Reconstructs an object of the specified type from the specified serialized form.</summary>
            <param name="type">
                Type of object to reconstruct.</param>
            <param name="json">
                Serialized form to reconstruct object from.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyJson.DeserializeIntoObject``1(RT.Util.Json.JsonValue,``0,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{RT.Util.Json.JsonValue})">
            <summary>
                Reconstructs an object of the specified type from the specified serialized form by applying the values to an
                existing instance of the type.</summary>
            <typeparam name="T">
                Type of object to reconstruct.</typeparam>
            <param name="json">
                Serialized form to reconstruct object from.</param>
            <param name="intoObject">
                Object to assign values to in order to reconstruct the original object.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyJson.DeserializeFileIntoObject(System.String,System.Object,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{RT.Util.Json.JsonValue})">
            <summary>
                Reconstructs an object from the specified file by applying the values to an existing instance of the desired type.
                The type of object is inferred from the object passed in.</summary>
            <param name="filename">
                Path and filename of the file to read from.</param>
            <param name="intoObject">
                Object to assign values to in order to reconstruct the original object. Also determines the type of object
                expected.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyJson.SerializeToFile``1(``0,System.String,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{RT.Util.Json.JsonValue})">
            <summary>
                Stores the specified object in a file with the given path and filename.</summary>
            <typeparam name="T">
                Type of the object to store.</typeparam>
            <param name="saveObject">
                Object to store in a file.</param>
            <param name="filename">
                Path and filename of the file to be created. If the file already exists, it is overwritten.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyJson.SerializeToFile(System.Type,System.Object,System.String,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{RT.Util.Json.JsonValue})">
            <summary>
                Stores the specified object in a file with the given path and filename.</summary>
            <param name="saveType">
                Type of the object to store.</param>
            <param name="saveObject">
                Object to store in a file.</param>
            <param name="filename">
                Path and filename of the file to be created. If the file already exists, it is overwritten.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyJson.Serialize``1(``0,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{RT.Util.Json.JsonValue})">
            <summary>
                Converts the specified object into a serialized form.</summary>
            <typeparam name="T">
                Type of object to convert.</typeparam>
            <param name="saveObject">
                Object to be serialized.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <returns>
                The serialized form generated from the object.</returns>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyJson.Serialize(System.Type,System.Object,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{RT.Util.Json.JsonValue})">
            <summary>
                Converts the specified object into a serialized form.</summary>
            <param name="saveType">
                Type of object to convert.</param>
            <param name="saveObject">
                Object to be serialized.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <returns>
                The serialized form generated from the object.</returns>
        </member>
        <member name="T:RT.Util.Serialization.IClassifyJsonObjectProcessor">
            <summary>
                Contains methods to process an object and/or the associated serialized form before or after <see cref="T:RT.Util.Serialization.Classify"/>
                (de)serializes it. To have effect, this interface must be implemented by the object being serialized.</summary>
        </member>
        <member name="T:RT.Util.Serialization.IClassifyJsonTypeProcessor">
            <summary>
                Contains methods to process an object and/or the associated serialized form before or after <see cref="T:RT.Util.Serialization.Classify"/>
                (de)serializes it. To have effect, this interface must be implemented by a class derived from <see cref="T:RT.Util.Serialization.ClassifyTypeOptions"/> and associated with a type via <see cref="M:RT.Util.Serialization.ClassifyOptions.AddTypeOptions(System.Type,RT.Util.Serialization.ClassifyTypeOptions)"/>.</summary>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyJsonFormat">
            <summary>
                Provides a format to serialize/deserialize objects as JSON using <see cref="T:RT.Util.Serialization.Classify"/> and any serialization options
                which are format-specific. To use this format, see <see cref="P:RT.Util.Serialization.ClassifyJsonFormat.Default"/>.</summary>
        </member>
        <member name="T:RT.Util.Serialization.IClassifyFormat`1">
            <summary>
                Used by <see cref="T:RT.Util.Serialization.Classify"/> to serialize and deserialize objects. Implement this to enable serialization to a new
                format.</summary>
            <typeparam name="TElement">
                Type of the serialized form of an object or any sub-object.</typeparam>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.ReadFromStream(System.IO.Stream)">
            <summary>
                Reads the serialized form from a stream.</summary>
            <param name="stream">
                Stream to read from.</param>
            <returns>
                The serialized form read from the stream.</returns>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.WriteToStream(`0,System.IO.Stream)">
            <summary>
                Writes the serialized form to a stream.</summary>
            <param name="element">
                Serialized form to write to the stream.</param>
            <param name="stream">
                Stream to write to.</param>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.IsNull(`0)">
            <summary>
                Determines whether the specified element represents a <c>null</c> value.</summary>
            <remarks>
                This should return <c>true</c> if the element was generated by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatNullValue"/> and <c>false</c>
                otherwise.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.GetSimpleValue(`0)">
            <summary>
                Called when Classify expects the element to be one of the following types: <c>byte</c>, <c>sbyte</c>,
                <c>short</c>, <c>ushort</c>, <c>int</c>, <c>uint</c>, <c>long</c>, <c>ulong</c>, <c>decimal</c>, <c>float</c>,
                <c>double</c>, <c>bool</c>, <c>char</c>, <c>string</c>, <c>DateTime</c> or an enum type. The implementation is
                free to return a value of any of these types, and Classify will automatically use <see cref="T:RT.Util.ExactConvert"/> to
                convert the value to the required target type.</summary>
            <remarks>
                This should decode values passed into <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatSimpleValue(System.Object)"/>, although it is acceptable if the type has
                changed, as long as <see cref="T:RT.Util.ExactConvert"/> will convert the decoded value back to the original
                value.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.GetSelfValue(`0)">
            <summary>
                Decodes the serialized form of the element type itself.</summary>
            <remarks>
                This should do the reverse of <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatSelfValue(`0)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.GetList(`0,System.Nullable{System.Int32})">
            <summary>
                Decodes a list.</summary>
            <param name="element">
                The element to decode.</param>
            <param name="tupleSize">
                If null, a variable-length list is expected; otherwise, a fixed-length list (a tuple) is expected.</param>
            <returns>
                A collection containing the sub-elements contained in the list. The collection returned need not have the size
                specified by <paramref name="tupleSize"/>.</returns>
            <remarks>
                This should do the reverse of <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatList(System.Boolean,System.Collections.Generic.IEnumerable{`0})"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.GetKeyValuePair(`0,`0@,`0@)">
            <summary>
                Decodes a key-value pair.</summary>
            <param name="element">
                The element to decode.</param>
            <param name="key">
                Receives the key part of the pair.</param>
            <param name="value">
                Receives the value part of the pair.</param>
            <remarks>
                This should do the reverse of <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatKeyValuePair(`0,`0)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.GetDictionary(`0)">
            <summary>
                Decodes a dictionary.</summary>
            <param name="element">
                The element to decode.</param>
            <returns>
                A collection containing the key/value pairs in the dictionary. The keys in the returned collection are expected to
                be convertible to the correct type using <see cref="T:RT.Util.ExactConvert"/>.</returns>
            <remarks>
                This should decode values passed into <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatDictionary(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.Object,`0}})"/>, although it is acceptable if the type of the
                keys has changed. For example, all keys may be returned as <c>string</c>, as long as <see cref="T:RT.Util.ExactConvert"/>
                will convert that <c>string</c> back to the original value.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.HasField(`0,System.String,System.String)">
            <summary>
                Determines whether the element is an object and contains a sub-element for the specified field.</summary>
            <param name="element">
                The element that may represent an object.</param>
            <param name="fieldName">
                The name of the field sought.</param>
            <param name="declaringType">
                The assembly-qualified name of the type that declares the field. (This can be null if the field name is unique
                within the type of the object being deserialized.)</param>
            <returns>
                <c>true</c> if <paramref name="element"/> is an object and has the specified field; <c>false</c>
                otherwise.</returns>
            <remarks>
                This should return <c>true</c> if <paramref name="element"/> represents an element generated by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatObject(System.Collections.Generic.IEnumerable{RT.Util.Serialization.ObjectFieldInfo{`0}})"/> in which the field with the specified <paramref name="fieldName"/> was present.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.GetField(`0,System.String,System.String)">
            <summary>
                Returns the sub-element pertaining to the specified field.</summary>
            <param name="element">
                The element that represents an object.</param>
            <param name="fieldName">
                The name of the field within the object whose sub-element is sought.</param>
            <param name="declaringType">
                The assembly-qualified name of the type that declares the field. (This can be null if the field name is unique
                within the type of the object being deserialized.)</param>
            <returns>
                The sub-element for the specified field.</returns>
            <remarks>
                <para>
                    Classify calls <see cref="M:RT.Util.Serialization.IClassifyFormat`1.HasField(`0,System.String,System.String)"/> first for each field and only calls this method if <see cref="M:RT.Util.Serialization.IClassifyFormat`1.HasField(`0,System.String,System.String)"/> returned true.</para>
                <para>
                    This should return the same element that was passed into <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatObject(System.Collections.Generic.IEnumerable{RT.Util.Serialization.ObjectFieldInfo{`0}})"/> for the same <paramref name="fieldName"/>.</para></remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.GetType(`0,System.Boolean@)">
            <summary>
                Determines the type of the object stored in the specified element.</summary>
            <param name="element">
                The element that represents an object.</param>
            <param name="isFullType">
                Receives a value indicating whether the type is a fully-qualified type name or not. This value is ignored if the
                method returns <c>null</c>.</param>
            <returns>
                <c>null</c> if no type information was persisted in this element; otherwise, the decoded type name.</returns>
            <remarks>
                This should decode the information (the string and the boolean) encoded by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatWithType(`0,System.String,System.Boolean)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.IsReference(`0)">
            <summary>
                Determines whether this element represents a reference to another object in the same serialized graph.</summary>
            <param name="element">
                The element to decode.</param>
            <returns>
                <c>true</c> if this element represents such a reference; <c>false</c> otherwise.</returns>
            <remarks>
                This should recognize elements generated by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatReference(System.Int32)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.IsReferable(`0)">
            <summary>
                Determines whether this element represents an object that can be referred to by a reference element.</summary>
            <param name="element">
                The element to decode.</param>
            <returns>
                <c>true</c> if this element is referable; <c>false</c> otherwise.</returns>
            <remarks>
                This should recognize elements generated by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatReferable(`0,System.Int32)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.IsFollowID(`0)">
            <summary>
                Determines whether this element represents a reference to another file. See <see cref="T:RT.Util.Serialization.ClassifyFollowIdAttribute"/> for details.</summary>
            <param name="element">
                The element to decode.</param>
            <returns>
                <c>true</c> if this element is such a reference; <c>false</c> otherwise.</returns>
            <remarks>
                This should recognize elements generated by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatFollowID(System.String)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.GetReferenceID(`0)">
            <summary>
                Returns the ID encoded in this element. This is called only if <see cref="M:RT.Util.Serialization.IClassifyFormat`1.IsReference(`0)"/> or <see cref="M:RT.Util.Serialization.IClassifyFormat`1.IsReferable(`0)"/> returned <c>true</c>.</summary>
            <param name="element">
                The element to decode.</param>
            <returns>
                The ID encoded in this element.</returns>
            <remarks>
                This should return the same ID that was passed into <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatReference(System.Int32)"/> or <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatReferable(`0,System.Int32)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.GetFollowID(`0)">
            <summary>
                Returns the ID encoded in this element. This is called only if <see cref="M:RT.Util.Serialization.IClassifyFormat`1.IsFollowID(`0)"/> returned
                <c>true</c>.</summary>
            <param name="element">
                The element to decode.</param>
            <returns>
                The ID encoded in this element.</returns>
            <remarks>
                This should return the same ID that was passed into <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatFollowID(System.String)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.FormatNullValue">
            <summary>
                Generates an element that represents a <c>null</c> value.</summary>
            <returns>
                The serialized form of the <c>null</c> value.</returns>
            <remarks>
                The returned element should be recognized by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.IsNull(`0)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.FormatSimpleValue(System.Object)">
            <summary>
                Generates an element that represents a <c>byte</c>, <c>sbyte</c>, <c>short</c>, <c>ushort</c>, <c>int</c>,
                <c>uint</c>, <c>long</c>, <c>ulong</c>, <c>decimal</c>, <c>float</c>, <c>double</c>, <c>bool</c>, <c>char</c>,
                <c>string</c>, <c>DateTime</c> or an enum value.</summary>
            <param name="value">
                The value to encode.</param>
            <returns>
                The serialized form of the <paramref name="value"/>.</returns>
            <remarks>
                The returned element should be recognized by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.GetSimpleValue(`0)"/>, but need not necessarily decode to the
                same type, as long as <see cref="T:RT.Util.ExactConvert"/> will convert it to the correct value.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.FormatSelfValue(`0)">
            <summary>
                Generates an element that represents a value of the same type as serialized elements.</summary>
            <param name="value">
                The value to encode.</param>
            <returns>
                The serialized form of the <paramref name="value"/>.</returns>
            <remarks>
                The returned element should be recognized by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.GetSelfValue(`0)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.FormatList(System.Boolean,System.Collections.Generic.IEnumerable{`0})">
            <summary>
                Generates an element that represents a list.</summary>
            <param name="isTuple">
                Specifies whether we are serializing a variable-length list, or a tuple (fixed-length list).</param>
            <param name="values">
                The values to put into list form.</param>
            <returns>
                The serialized list.</returns>
            <remarks>
                The returned element should be recognized by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.GetList(`0,System.Nullable{System.Int32})"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.FormatKeyValuePair(`0,`0)">
            <summary>
                Generates an element that represents a key-value pair.</summary>
            <param name="key">
                The element that represents the key.</param>
            <param name="value">
                The element that represents the value.</param>
            <returns>
                The serialized key-value pair.</returns>
            <remarks>
                The returned element should be recognized by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.GetKeyValuePair(`0,`0@,`0@)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.FormatDictionary(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.Object,`0}})">
            <summary>
                Generates an element that represents a dictionary.</summary>
            <param name="values">
                The key-value pairs that compose the dictionary. The keys may be <c>string</c>s, integers, or enum values.</param>
            <returns>
                The serialized dictionary.</returns>
            <remarks>
                The returned element should be recognized by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.GetDictionary(`0)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.FormatObject(System.Collections.Generic.IEnumerable{RT.Util.Serialization.ObjectFieldInfo{`0}})">
            <summary>
                Generates an element that represents an object with fields.</summary>
            <param name="fields">
                A collection of objects containing each fields’ identifying information and serialized value.</param>
            <returns>
                The serialized object.</returns>
            <remarks>
                The returned element should be recognized by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.HasField(`0,System.String,System.String)"/> and <see cref="M:RT.Util.Serialization.IClassifyFormat`1.GetField(`0,System.String,System.String)"/>, irrespective of
                the order in which the fields are provided in <paramref name="fields"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.FormatFollowID(System.String)">
            <summary>
                Generates an element that represents a reference to another file.</summary>
            <param name="id">
                The reference ID.</param>
            <returns>
                An element that represents a reference to another file with the specified <paramref name="id"/>.</returns>
            <remarks>
                The returned element should be recognized by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.IsFollowID(`0)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.FormatReference(System.Int32)">
            <summary>
                Generates an element that represents a reference to another object within the same serialized object
                graph.</summary>
            <param name="refId">
                The reference ID.</param>
            <returns>
                An element that represents a reference to another object with the specified <paramref name="refId"/>.</returns>
            <remarks>
                The returned element should be recognized by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.IsReference(`0)"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.FormatReferable(`0,System.Int32)">
            <summary>
                Converts an existing element (which may represent, for example, an object, list or dictionary) into one that can
                be referred to by a reference (see <see cref="M:RT.Util.Serialization.IClassifyFormat`1.FormatReference(System.Int32)"/>).</summary>
            <param name="element">
                The original element to be converted.</param>
            <param name="refId">
                The reference ID.</param>
            <returns>
                A representation of the original <paramref name="element"/>, which additionally encodes the referable <paramref name="refId"/>.</returns>
            <remarks>
                The returned element should be recognized by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.IsReferable(`0)"/> as well as all the other methods that would
                have also recognized the original <paramref name="element"/>.</remarks>
        </member>
        <member name="M:RT.Util.Serialization.IClassifyFormat`1.FormatWithType(`0,System.String,System.Boolean)">
            <summary>
                Converts an existing element (which may represent, for example, an object, list or dictionary) into one that
                additionally knows its type.</summary>
            <param name="element">
                The original element to be converted.</param>
            <param name="type">
                A string that identifies the type of the object.</param>
            <param name="isFullType">
                A value indicating whether this is a fully-qualified type name or not.</param>
            <returns>
                A representation of the original <paramref name="element"/>, which additionally encodes the <paramref name="type"/>.</returns>
            <remarks>
                The returned element should be recognized by <see cref="M:RT.Util.Serialization.IClassifyFormat`1.GetType(`0,System.Boolean@)"/> as well as all the other methods that would
                have also recognized the original <paramref name="element"/>.</remarks>
        </member>
        <member name="P:RT.Util.Serialization.ClassifyJsonFormat.Default">
            <summary>Gets the JSON Classify format with all options at their defaults.</summary>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyXml">
            <summary>Offers a convenient way to use <see cref="T:RT.Util.Serialization.Classify"/> to serialize objects using the XML format.</summary>
        </member>
        <member name="F:RT.Util.Serialization.ClassifyXml.DefaultFormat">
            <summary>
                Format used when null is passed to methods that take a format. Make sure not to modify this instance if any thread
                in the application might be in the middle of using <see cref="T:RT.Util.Serialization.ClassifyXml"/>; ideally the options shoud be set
                once during startup and never changed after that.</summary>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyXml.DeserializeFile``1(System.String,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{System.Xml.Linq.XElement},System.Object)">
            <summary>
                Reconstructs an object of the specified type from the specified file.</summary>
            <typeparam name="T">
                Type of object to read.</typeparam>
            <param name="options">
                Options.</param>
            <param name="filename">
                Path and filename of the file to read from.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="parent">
                If the class to be declassified has a field with the <see cref="T:RT.Util.Serialization.ClassifyParentAttribute"/>, that field will
                receive this object.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyXml.DeserializeFile(System.Type,System.String,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{System.Xml.Linq.XElement},System.Object)">
            <summary>
                Reconstructs an object of the specified type from the specified file.</summary>
            <param name="type">
                Type of object to read.</param>
            <param name="options">
                Options.</param>
            <param name="filename">
                Path and filename of the file to read from.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <param name="parent">
                If the class to be declassified has a field with the <see cref="T:RT.Util.Serialization.ClassifyParentAttribute"/>, that field will
                receive this object.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyXml.Deserialize``1(System.Xml.Linq.XElement,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{System.Xml.Linq.XElement})">
            <summary>
                Reconstructs an object of the specified type from the specified serialized form.</summary>
            <typeparam name="T">
                Type of object to reconstruct.</typeparam>
            <param name="xml">
                Serialized form to reconstruct object from.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyXml.Deserialize(System.Type,System.Xml.Linq.XElement,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{System.Xml.Linq.XElement})">
            <summary>
                Reconstructs an object of the specified type from the specified serialized form.</summary>
            <param name="type">
                Type of object to reconstruct.</param>
            <param name="xml">
                Serialized form to reconstruct object from.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyXml.DeserializeIntoObject``1(System.Xml.Linq.XElement,``0,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{System.Xml.Linq.XElement})">
            <summary>
                Reconstructs an object of the specified type from the specified serialized form by applying the values to an
                existing instance of the type.</summary>
            <typeparam name="T">
                Type of object to reconstruct.</typeparam>
            <param name="xml">
                Serialized form to reconstruct object from.</param>
            <param name="intoObject">
                Object to assign values to in order to reconstruct the original object.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyXml.DeserializeFileIntoObject(System.String,System.Object,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{System.Xml.Linq.XElement})">
            <summary>
                Reconstructs an object from the specified file by applying the values to an existing instance of the desired type.
                The type of object is inferred from the object passed in.</summary>
            <param name="filename">
                Path and filename of the file to read from.</param>
            <param name="intoObject">
                Object to assign values to in order to reconstruct the original object. Also determines the type of object
                expected.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyXml.SerializeToFile``1(``0,System.String,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{System.Xml.Linq.XElement})">
            <summary>
                Stores the specified object in a file with the given path and filename.</summary>
            <typeparam name="T">
                Type of the object to store.</typeparam>
            <param name="saveObject">
                Object to store in a file.</param>
            <param name="filename">
                Path and filename of the file to be created. If the file already exists, it is overwritten.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyXml.SerializeToFile(System.Type,System.Object,System.String,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{System.Xml.Linq.XElement})">
            <summary>
                Stores the specified object in a file with the given path and filename.</summary>
            <param name="saveType">
                Type of the object to store.</param>
            <param name="saveObject">
                Object to store in a file.</param>
            <param name="filename">
                Path and filename of the file to be created. If the file already exists, it is overwritten.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyXml.Serialize``1(``0,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{System.Xml.Linq.XElement})">
            <summary>
                Converts the specified object into a serialized form.</summary>
            <typeparam name="T">
                Type of object to convert.</typeparam>
            <param name="saveObject">
                Object to be serialized.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <returns>
                The serialized form generated from the object.</returns>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyXml.Serialize(System.Type,System.Object,RT.Util.Serialization.ClassifyOptions,RT.Util.Serialization.IClassifyFormat{System.Xml.Linq.XElement})">
            <summary>
                Converts the specified object into a serialized form.</summary>
            <param name="saveType">
                Type of object to convert.</param>
            <param name="saveObject">
                Object to be serialized.</param>
            <param name="options">
                Options.</param>
            <param name="format">
                Implementation of a Classify format. See <see cref="T:RT.Util.Serialization.ClassifyXmlFormat"/> for an example.</param>
            <returns>
                The serialized form generated from the object.</returns>
        </member>
        <member name="T:RT.Util.Serialization.IClassifyXmlObjectProcessor">
            <summary>
                Contains methods to process an object and/or the associated serialized form before or after <see cref="T:RT.Util.Serialization.Classify"/>
                (de)serializes it. To have effect, this interface must be implemented by the object being serialized.</summary>
        </member>
        <member name="T:RT.Util.Serialization.IClassifyXmlTypeProcessor">
            <summary>
                Contains methods to process an object and/or the associated serialized form before or after <see cref="T:RT.Util.Serialization.Classify"/>
                (de)serializes it. To have effect, this interface must be implemented by a class derived from <see cref="T:RT.Util.Serialization.ClassifyTypeOptions"/> and associated with a type via <see cref="M:RT.Util.Serialization.ClassifyOptions.AddTypeOptions(System.Type,RT.Util.Serialization.ClassifyTypeOptions)"/>.</summary>
        </member>
        <member name="T:RT.Util.Serialization.ClassifyXmlFormat">
            <summary>
                Provides a format to serialize/deserialize objects as XML using <see cref="T:RT.Util.Serialization.Classify"/> and any serialization options
                which are format-specific. This class can only be instantiated through the factory method <see cref="M:RT.Util.Serialization.ClassifyXmlFormat.Create(System.String)"/>. See
                also <see cref="P:RT.Util.Serialization.ClassifyXmlFormat.Default"/>.</summary>
        </member>
        <member name="M:RT.Util.Serialization.ClassifyXmlFormat.Create(System.String)">
            <summary>
                Creates an XML Classify format with the specified XML-specific options.</summary>
            <param name="rootTagName">
                Specifies the XML tag name to use for the root element of a serialized object.</param>
            <returns/>
        </member>
        <member name="P:RT.Util.Serialization.ClassifyXmlFormat.Default">
            <summary>Gets the XML Classify format with all options at their defaults.</summary>
        </member>
        <member name="T:RT.Util.Serialization.ObjectFieldInfo`1">
            <summary>
                Encapsulates information about a field in an object and its value.</summary>
            <typeparam name="TElement">
                Type of serialized form used in <see cref="T:RT.Util.Serialization.IClassifyFormat`1"/>.</typeparam>
        </member>
        <member name="M:RT.Util.Serialization.ObjectFieldInfo`1.#ctor(System.String,System.String,`0)">
            <summary>
                Constructor.</summary>
            <param name="fieldName">
                The name of the field.</param>
            <param name="declaringType">
                The assembly-qualified name of the type that declares the field, or null if the name of the field is unique within
                the object being serialized.</param>
            <param name="value">
                The value of the field.</param>
        </member>
        <member name="P:RT.Util.Serialization.ObjectFieldInfo`1.FieldName">
            <summary>The name of the field.</summary>
        </member>
        <member name="P:RT.Util.Serialization.ObjectFieldInfo`1.DeclaringType">
            <summary>
                The assembly-qualified name of the type that declares the field, or null if the name of the field is unique within
                the object being serialized.</summary>
        </member>
        <member name="P:RT.Util.Serialization.ObjectFieldInfo`1.Value">
            <summary>The value of the field.</summary>
        </member>
        <member name="T:RT.Util.StopwatchElement">
            <summary>
            Encapsulates a single entry in a <see cref="T:RT.Util.Stopwatch"/> log.
            </summary>
        </member>
        <member name="F:RT.Util.StopwatchElement.Milliseconds">
            <summary>Number of milliseconds between the start of the stopwatch and this event.</summary>
        </member>
        <member name="F:RT.Util.StopwatchElement.Event">
            <summary>Text describing the event.</summary>
        </member>
        <member name="T:RT.Util.Stopwatch">
            <summary>
            Abstract base class to encapsulate a stopwatch - an object that remembers events as they happen
            and when they happen and outputs a report with timing information at the end.
            </summary>
        </member>
        <member name="M:RT.Util.Stopwatch.Log(System.String)">
            <summary>
            Logs an event.
            </summary>
            <param name="msg">Message to log.</param>
        </member>
        <member name="M:RT.Util.Stopwatch.SaveToFile(System.String)">
            <summary>
            Outputs the stopwatch report with timing information to the specified file.
            </summary>
            <param name="filePath">File to save stopwatch output to. If the file already exists, it will be overwritten.</param>
        </member>
        <member name="P:RT.Util.Stopwatch.GlobalStopwatch">
            <summary>Provides access to a global instance of <see cref="T:RT.Util.StopwatchReal"/>.</summary>
        </member>
        <member name="T:RT.Util.StopwatchReal">
            <summary>
            Concrete implementation of <see cref="T:RT.Util.Stopwatch"/>. This class provides an object that remembers events
            as they happen and when they happen and outputs a report with timing information at the end.
            </summary>
        </member>
        <member name="F:RT.Util.StopwatchReal.StartTime">
            <summary>
            Remembers when the stopwatch was started.
            </summary>
        </member>
        <member name="F:RT.Util.StopwatchReal.Elements">
            <summary>
            Remembers the events as they happen.
            </summary>
        </member>
        <member name="M:RT.Util.StopwatchReal.Log(System.String)">
            <summary>
            Logs an event.
            </summary>
            <param name="msg">Message to log.</param>
        </member>
        <member name="M:RT.Util.StopwatchReal.ToString">
            <summary>
            Generates a report with timing information detailling when each logged event happened relative to the <see cref="F:RT.Util.StopwatchReal.StartTime"/>.
            </summary>
            <returns>A report with timing information detailling when each logged event happened relative to the <see cref="F:RT.Util.StopwatchReal.StartTime"/>.</returns>
        </member>
        <member name="M:RT.Util.StopwatchReal.SaveToFile(System.String)">
            <summary>
            Outputs the stopwatch report with timing information to the specified file.
            </summary>
            <param name="filePath">File to save stopwatch output to. If the file already exists, it will be overwritten.</param>
        </member>
        <member name="T:RT.Util.StopwatchConsole">
            <summary>
            Implementation of <see cref="T:RT.Util.Stopwatch"/> that logs messages to the console.
            </summary>
        </member>
        <member name="M:RT.Util.StopwatchConsole.Log(System.String)">
            <summary>Logs the message to the console.</summary>
        </member>
        <member name="M:RT.Util.StopwatchConsole.SaveToFile(System.String)">
            <summary>Doesn't do anything.</summary>
        </member>
        <member name="T:RT.Util.StopwatchDummy">
            <summary>
            Implementation of <see cref="T:RT.Util.Stopwatch"/> that doesn't do anything.
            </summary>
        </member>
        <member name="M:RT.Util.StopwatchDummy.Log(System.String)">
            <summary>
            Doesn't do anything.
            </summary>
            <param name="msg">Is ignored.</param>
        </member>
        <member name="M:RT.Util.StopwatchDummy.ToString">
            <summary>
            Returns an empty string.
            </summary>
            <returns>An empty string.</returns>
        </member>
        <member name="M:RT.Util.StopwatchDummy.SaveToFile(System.String)">
            <summary>
            Doesn't do anything.
            </summary>
            <param name="filePath">Is ignored.</param>
        </member>
        <member name="T:RT.Util.Streams.BinaryStream">
            <summary>Reads/writes various data types as binary values in a specific encoding.</summary>
            <remarks><para>This class does not use any buffering of its own.</para>
            <para>It is permissible to seek, read from, and write to the underlying stream.</para></remarks>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.#ctor(System.IO.Stream)">
            <summary>Constructs a <see cref="T:RT.Util.Streams.BinaryStream"/> instance.</summary>
            <param name="underlyingStream">Provides an underlying stream from which to read and to which to write.</param>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.Dispose(System.Boolean)">
            <summary>Releases the unmanaged resources used by the stream and optionally releases the managed resources.</summary>
            <param name="disposing">True to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.Flush">
            <summary>Flushes the underlying stream. Note that <see cref="T:RT.Util.Streams.BinaryStream"/> does not use any buffering of its own that requires flushing.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>Sets the position within the underlying stream.</summary>
            <param name="offset">A byte offset relative to the origin parameter.</param>
            <param name="origin">A value indicating the reference point used.</param>
            <returns>The new position within the underlying stream.</returns>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.SetLength(System.Int64)">
            <summary>Sets the length of the underlying stream.</summary>
            <param name="value">The desired length of the underlying stream in bytes.</param>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>Reads a sequence of bytes from the underlying stream and advances the position
            within the stream by the number of bytes read.</summary>
            <param name="buffer">An array of bytes. When this method returns, the buffer contains the specified
            byte array with the values between offset and (offset + count - 1) replaced
            by the bytes read from the underlying source.</param>
            <param name="offset">The zero-based byte offset in buffer at which to begin storing the data read
            from the underlying stream.</param>
            <param name="count">The maximum number of bytes to be read from the underlying stream.</param>
            <returns>The total number of bytes read into the buffer. This can be less than the number of bytes
            requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.</returns>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>Writes a sequence of bytes to the current stream and advances the current position within
            this stream by the number of bytes written.</summary>
            <param name="buffer">An array of bytes. This method copies <paramref name="count"/> bytes from
            <paramref name="buffer"/> to the underlying stream.</param>
            <param name="offset">The zero-based byte offset in buffer at which to begin copying bytes to the
            underlying stream.</param>
            <param name="count">The number of bytes to be written to the underlying stream.</param>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadBytes(System.Int32)">
            <summary>Reads the specified number of bytes from the stream.</summary>
            <param name="count">Number of bytes to read from the stream.</param>
            <returns>A byte array containing exactly the number of bytes requested.</returns>
            <exception cref="T:System.IO.EndOfStreamException">The end of the stream was reached before the requested number of bytes could be read.</exception>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteBytes(System.Byte[])">
            <summary>Writes the specified byte array into the stream.</summary>
            <param name="data">Data to write to the stream.</param>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadBool">
            <summary>Reads a boolean value from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteBool(System.Boolean)">
            <summary>Writes a boolean value to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadByte">
            <summary>Reads a byte from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteByte(System.Byte)">
            <summary>Writes a byte to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadSByte">
            <summary>Reads a signed byte from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteSByte(System.SByte)">
            <summary>Writes a signed byte to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadShort">
            <summary>Reads a 16-bit signed integer from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteShort(System.Int16)">
            <summary>Writes a 16-bit signed integer to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadUShort">
            <summary>Reads a 16-bit unsigned integer from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteUShort(System.UInt16)">
            <summary>Writes a 16-bit unsigned integer to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadInt">
            <summary>Reads a 32-bit signed integer from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteInt(System.Int32)">
            <summary>Writes a 32-bit signed integer to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadUInt">
            <summary>Reads a 32-bit unsigned integer from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteUInt(System.UInt32)">
            <summary>Writes a 32-bit unsigned integer to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadLong">
            <summary>Reads a 64-bit signed integer from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteLong(System.Int64)">
            <summary>Writes a 64-bit signed integer to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadULong">
            <summary>Reads a 64-bit unsigned integer from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteULong(System.UInt64)">
            <summary>Writes a 64-bit unsigned integer to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadFloat">
            <summary>Reads a single-precision floating-point number from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteFloat(System.Single)">
            <summary>Writes a single-precision floating-point number to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadDouble">
            <summary>Reads a double-precision floating-point number from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteDouble(System.Double)">
            <summary>Writes a double-precision floating-point number to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadDecimal">
            <summary>Reads a decimal number from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteDecimal(System.Decimal)">
            <summary>Writes a decimal number to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadVarInt">
            <summary>Reads a 32-bit signed integer using optim encoding (see <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.ReadInt32Optim(System.IO.Stream)"/>) from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteVarInt(System.Int32)">
            <summary>Writes a 32-bit signed integer using optim encoding (see <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteInt32Optim(System.IO.Stream,System.Int32)"/>) to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadVarUInt">
            <summary>Reads a 32-bit unsigned integer using optim encoding (see <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.ReadUInt32Optim(System.IO.Stream)"/>) from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteVarUInt(System.UInt32)">
            <summary>Writes a 32-bit unsigned integer using optim encoding (see <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteUInt32Optim(System.IO.Stream,System.UInt32)"/>) to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadVarLong">
            <summary>Reads a 64-bit signed integer using optim encoding (see <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.ReadInt64Optim(System.IO.Stream)"/>) from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteVarLong(System.Int64)">
            <summary>Writes a 64-bit signed integer using optim encoding (see <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteInt64Optim(System.IO.Stream,System.Int64)"/>) to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadVarULong">
            <summary>Reads a 64-bit unsigned integer using optim encoding (see <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.ReadUInt64Optim(System.IO.Stream)"/>) from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteVarULong(System.UInt64)">
            <summary>Writes a 64-bit unsigned integer using optim encoding (see <see cref="M:RT.Util.ExtensionMethods.StreamExtensions.WriteUInt64Optim(System.IO.Stream,System.UInt64)"/>) to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadChar">
            <summary>Reads a character from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteChar(System.Char)">
            <summary>Writes a character to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadString">
            <summary>Reads a string from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteString(System.String)">
            <summary>Writes a string to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadDateTime">
            <summary>Reads a DateTime from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteDateTime(System.DateTime)">
            <summary>Writes a DateTime to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadTimeSpan">
            <summary>Reads a TimeSpan from the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteTimeSpan(System.TimeSpan)">
            <summary>Writes a TimeSpan to the stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.WriteMemoryStream(System.IO.MemoryStream)">
            <summary>Writes the data contained in the specified <see cref="T:System.IO.MemoryStream"/> to the stream as a length-prefixed block of bytes.</summary>
        </member>
        <member name="M:RT.Util.Streams.BinaryStream.ReadMemoryStream">
            <summary>Reads a length-prefixed block of bytes from the stream (for example, one produced by <see cref="M:RT.Util.Streams.BinaryStream.WriteMemoryStream(System.IO.MemoryStream)"/>).</summary>
        </member>
        <member name="P:RT.Util.Streams.BinaryStream.reader">
            <summary>Gets an instance of <see cref="T:System.IO.BinaryReader"/> for the underlying stream.</summary>
        </member>
        <member name="P:RT.Util.Streams.BinaryStream.writer">
            <summary>Gets an instance of <see cref="T:System.IO.BinaryWriter"/> for the underlying stream.</summary>
        </member>
        <member name="P:RT.Util.Streams.BinaryStream.CanRead">
            <summary>Gets a value indicating whether the underlying stream supports reading.</summary>
        </member>
        <member name="P:RT.Util.Streams.BinaryStream.CanSeek">
            <summary>Gets a value indicating whether the underlying stream supports seeking.</summary>
        </member>
        <member name="P:RT.Util.Streams.BinaryStream.CanWrite">
            <summary>Gets a value indicating whether the underlying stream supports writing.</summary>
        </member>
        <member name="P:RT.Util.Streams.BinaryStream.Length">
            <summary>Gets the length in bytes of the underlying stream.</summary>
        </member>
        <member name="P:RT.Util.Streams.BinaryStream.Position">
            <summary>Gets or sets the position within the underlying stream.</summary>
        </member>
        <member name="T:RT.Util.Streams.ConsoleLoggingStream">
            <summary>
            Implements a stream that passes through all operations to the underlying stream, but also prints
            the bytes read or written to the console.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.ConsoleLoggingStream.#ctor(System.IO.Stream,System.String,System.String)">
            <summary>Constructor.</summary>
            <param name="underlyingStream">The underlying stream on which all operations are to be performed.</param>
            <param name="readPrefix">If not null, all calls to <see cref="M:RT.Util.Streams.ConsoleLoggingStream.Read(System.Byte[],System.Int32,System.Int32)"/> will print a single line to the console starting with this prefix and showing a hex dump of the bytes read.</param>
            <param name="writePrefix">If not null, all calls to <see cref="M:RT.Util.Streams.ConsoleLoggingStream.Read(System.Byte[],System.Int32,System.Int32)"/> will print a single line to the console starting with this prefix and showing a hex dump of the bytes written.</param>
        </member>
        <member name="T:RT.Util.Streams.DoNotCloseStream">
            <summary>
                Passes through every operation to the underlying stream. When disposed, leaves the
                underlying stream alone instead of closing it. Intended for use with certain streams
                which do not have the "do not close the underlying stream" option built-in, such
                as the CryptoStream for example.</summary>
        </member>
        <member name="M:RT.Util.Streams.DoNotCloseStream.#ctor(System.IO.Stream)">
            <summary>
                Constructor.</summary>
        </member>
        <member name="M:RT.Util.Streams.DoNotCloseStream.Flush">
            <summary>
                Passes through this operation to the underlying stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.DoNotCloseStream.SetLength(System.Int64)">
            <summary>
                Passes through this operation to the underlying stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.DoNotCloseStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
                Passes through this operation to the underlying stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.DoNotCloseStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
                Passes through this operation to the underlying stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.DoNotCloseStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
                Passes through this operation to the underlying stream.</summary>
        </member>
        <member name="P:RT.Util.Streams.DoNotCloseStream.CanWrite">
            <summary>
                Passes through this operation to the underlying stream.</summary>
        </member>
        <member name="P:RT.Util.Streams.DoNotCloseStream.CanRead">
            <summary>
                Passes through this operation to the underlying stream.</summary>
        </member>
        <member name="P:RT.Util.Streams.DoNotCloseStream.CanSeek">
            <summary>
                Passes through this operation to the underlying stream.</summary>
        </member>
        <member name="P:RT.Util.Streams.DoNotCloseStream.Length">
            <summary>
                Passes through this operation to the underlying stream.</summary>
        </member>
        <member name="P:RT.Util.Streams.DoNotCloseStream.Position">
            <summary>
                Passes through this operation to the underlying stream.</summary>
        </member>
        <member name="T:RT.Util.Streams.HashingStream">
            <summary>
            Calculates MD5 checksum of all values that are read/written via this stream.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.HashingStream.#ctor(System.IO.Stream,System.Security.Cryptography.HashAlgorithm)">
            <summary>
            Initialises a hash calculation stream, with the specified stream as the underlying stream.
            </summary>
            <param name="stream">The underlying stream.</param>
            <param name="hasher">The hash algorithm to use. For example, <c>System.Security.Cryptography.MD5.Create("MD5")</c>.</param>
        </member>
        <member name="M:RT.Util.Streams.HashingStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            Seeking is ignored (but propagated to the underlying stream).
            All the bytes seeked over will be ignored.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.HashingStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads data from the underlying stream. Updates the hash with the bytes read.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.HashingStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Writes data to the underlying stream. Updates the hash with the bytes written.
            </summary>
        </member>
        <member name="P:RT.Util.Streams.HashingStream.BaseStream">
            <summary>
            This is the underlying stream. All reads/writes and most other operations
            on this class are performed on this underlying stream.
            </summary>
        </member>
        <member name="P:RT.Util.Streams.HashingStream.Hash">
            <summary>
            Retrieves the hash of all data that has been read/written through this
            stream so far. Due to the implementation of the underlying hash algorithm this
            must be called only after all data has been hashed. No further calls to Read/Write
            are allowed after a single call to this.
            </summary>
        </member>
        <member name="T:RT.Util.Streams.NewlineNormalizerStream8bit">
            <summary>Provides functionality to replace the three different newlines (\r, \n, and \r\n) while reading from a stream containing textual data,
            without caring about the text encoding, as long as it is an encoding in which the newline characters are 8-bit ASCII (e.g. UTF-8).</summary>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream8bit.Flush">
            <summary>Does nothing.</summary>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream8bit.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>Throws a <see cref="T:System.NotSupportedException"/>.</summary>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream8bit.SetLength(System.Int64)">
            <summary>Throws a <see cref="T:System.NotSupportedException"/>.</summary>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream8bit.Close">
            <summary>Closes the underlying stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream8bit.#ctor(System.IO.Stream,System.Byte[])">
            <summary>Constructs a <see cref="T:RT.Util.Streams.NewlineNormalizerStream8bit"/>.</summary>
            <param name="underlyingStream">Stream to read textual data from.</param>
            <param name="newline">Normalised newline to use. If not specified, uses <c>Environment.NewLine</c>, encoded to UTF-8.</param>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream8bit.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads a sequence of bytes from the current stream and advances the position within the stream
            by the number of bytes read.
            </summary>
            <param name="buffer">An array of bytes. When this method returns, the buffer contains the specified
                byte array with the values between offset and (offset + count - 1) replaced
                by the bytes read from the current source.</param>
            <param name="offset">The zero-based byte offset in buffer at which to begin storing the data read
                from the current stream.</param>
            <param name="count">The maximum number of bytes to be read from the current stream.</param>
            <returns>The total number of bytes read into the buffer. This can be less than the
                number of bytes requested if that many bytes are not currently available,
                or zero (0) if the end of the stream has been reached.</returns>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream8bit.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>Writes a sequence of bytes to the current stream and advances the
            current position within this stream by the number of bytes written.</summary>
            <param name="buffer">An array of bytes. This method copies <paramref name="count"/> bytes from <paramref name="buffer"/> to the current stream.</param>
            <param name="offset">The zero-based byte offset in <paramref name="buffer"/> at which to begin copying bytes to the current stream.</param>
            <param name="count">The number of bytes to be written to the current stream.</param>
        </member>
        <member name="P:RT.Util.Streams.NewlineNormalizerStream8bit.CanSeek">
            <summary>Returns false.</summary>
        </member>
        <member name="P:RT.Util.Streams.NewlineNormalizerStream8bit.Length">
            <summary>Throws a <see cref="T:System.NotSupportedException"/>.</summary>
        </member>
        <member name="P:RT.Util.Streams.NewlineNormalizerStream8bit.Position">
            <summary>Throws a <see cref="T:System.NotSupportedException"/>.</summary>
        </member>
        <member name="P:RT.Util.Streams.NewlineNormalizerStream8bit.CanRead">
            <summary>Returns true.</summary>
        </member>
        <member name="P:RT.Util.Streams.NewlineNormalizerStream8bit.CanWrite">
            <summary>Returns true.</summary>
        </member>
        <member name="T:RT.Util.Streams.NewlineNormalizerStream16bit">
            <summary>Provides functionality to replace the three different newlines (\r, \n, and \r\n) while reading from a stream containing textual data,
            without caring about the text encoding, as long as it is an encoding in which the newline characters are made of 16-bit characters (e.g. UTF-16).</summary>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream16bit.Flush">
            <summary>Does nothing.</summary>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream16bit.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>Throws a <see cref="T:System.NotSupportedException"/>.</summary>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream16bit.SetLength(System.Int64)">
            <summary>Throws a <see cref="T:System.NotSupportedException"/>.</summary>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream16bit.Close">
            <summary>Closes the underlying stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream16bit.#ctor(System.IO.Stream,System.Byte[],System.Boolean)">
            <summary>Constructs a <see cref="T:RT.Util.Streams.NewlineNormalizerStream16bit"/>.</summary>
            <param name="underlyingStream">Stream to read textual data from.</param>
            <param name="newline">Normalised newline to use.</param>
            <param name="bigEndian">Specifies whether the byte order is big-endian (true) or little-endian (false).</param>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream16bit.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads a sequence of bytes from the current stream and advances the position within the stream
            by the number of bytes read.
            </summary>
            <param name="buffer">An array of bytes. When this method returns, the buffer contains the specified
                byte array with the values between offset and (offset + count - 1) replaced
                by the bytes read from the current source.</param>
            <param name="offset">The zero-based byte offset in buffer at which to begin storing the data read
                from the current stream.</param>
            <param name="count">The maximum number of bytes to be read from the current stream.</param>
            <returns>The total number of bytes read into the buffer. This can be less than the
                number of bytes requested if that many bytes are not currently available,
                or zero (0) if the end of the stream has been reached.</returns>
        </member>
        <member name="M:RT.Util.Streams.NewlineNormalizerStream16bit.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>Writes a sequence of bytes to the current stream and advances the
            current position within this stream by the number of bytes written.</summary>
            <param name="buffer">An array of bytes. This method copies <paramref name="count"/> bytes from <paramref name="buffer"/> to the current stream.</param>
            <param name="offset">The zero-based byte offset in <paramref name="buffer"/> at which to begin copying bytes to the current stream.</param>
            <param name="count">The number of bytes to be written to the current stream.</param>
        </member>
        <member name="P:RT.Util.Streams.NewlineNormalizerStream16bit.CanSeek">
            <summary>Returns false.</summary>
        </member>
        <member name="P:RT.Util.Streams.NewlineNormalizerStream16bit.Length">
            <summary>Throws a <see cref="T:System.NotSupportedException"/>.</summary>
        </member>
        <member name="P:RT.Util.Streams.NewlineNormalizerStream16bit.Position">
            <summary>Throws a <see cref="T:System.NotSupportedException"/>.</summary>
        </member>
        <member name="P:RT.Util.Streams.NewlineNormalizerStream16bit.CanRead">
            <summary>Returns true.</summary>
        </member>
        <member name="P:RT.Util.Streams.NewlineNormalizerStream16bit.CanWrite">
            <summary>Returns true.</summary>
        </member>
        <member name="T:RT.Util.Streams.TimeoutableStream">
            <summary>
            Implements a stream whose synchronous read/write operations respect the <see cref="P:System.IO.Stream.ReadTimeout"/>and <see cref="P:System.IO.Stream.WriteTimeout"/>
            properties. Useful for wrapping streams which do not directly support these properties.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.TimeoutableStream.#ctor(System.IO.Stream)">
            <summary>Constructor.</summary>
            <param name="underlyingStream">The underlying stream on which all operations are to be performed.</param>
        </member>
        <member name="M:RT.Util.Streams.TimeoutableStream.Dispose(System.Boolean)">
            <summary>Disposes of this stream and the underlying stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.TimeoutableStream.Flush">
            <summary>Flushes the underlying stream.</summary>
        </member>
        <member name="M:RT.Util.Streams.TimeoutableStream.SetLength(System.Int64)">
            <summary>Sets the length of the underlying stream, if supported by it.</summary>
        </member>
        <member name="M:RT.Util.Streams.TimeoutableStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>Seeks to the specified position in the underlying stream, if the underlying stream supports it.</summary>
        </member>
        <member name="M:RT.Util.Streams.TimeoutableStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads up to <paramref name="count"/> bytes into <paramref name="buffer"/> starting  at <paramref name="offset"/>
            from the underlying stream, if it supports this. Will block waiting for the read to complete for at most <see cref="P:System.IO.Stream.ReadTimeout"/>
            milliseconds; afterwards, a <see cref="T:System.TimeoutException"/> is thrown.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.TimeoutableStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Writes <paramref name="count"/> bytes from <paramref name="buffer"/> starting at <paramref name="offset"/>
            to the underlying stream, if it supports this. Will block waiting for the write to complete for at most <see cref="P:System.IO.Stream.WriteTimeout"/>
            milliseconds; afterwards, a <see cref="T:System.TimeoutException"/> is thrown.
            </summary>
        </member>
        <member name="P:RT.Util.Streams.TimeoutableStream.CanWrite">
            <summary>Indicates whether the underlying stream, and hence this stream, supports writing.</summary>
        </member>
        <member name="P:RT.Util.Streams.TimeoutableStream.CanRead">
            <summary>Indicates whether the underlying stream, and hence this stream, supports reading.</summary>
        </member>
        <member name="P:RT.Util.Streams.TimeoutableStream.CanSeek">
            <summary>Indicates whether the underlying stream, and hence this stream, supports seeking.</summary>
        </member>
        <member name="P:RT.Util.Streams.TimeoutableStream.CanTimeout">
            <summary>Always returns true.</summary>
        </member>
        <member name="P:RT.Util.Streams.TimeoutableStream.Length">
            <summary>Gets the length of the underlying stream, if supported by it.</summary>
        </member>
        <member name="P:RT.Util.Streams.TimeoutableStream.Position">
            <summary>Gets or sets the current position in the stream, if supported by the underlying stream.</summary>
        </member>
        <member name="P:RT.Util.Streams.TimeoutableStream.ReadTimeout">
            <summary>
            Gets or sets a value, in miliseconds, that determines how long the stream will attempt to read before timing out.
            Specify <see cref="F:System.Threading.Timeout.Infinite"/> to suppress the time-out (which is the default value).
            </summary>
        </member>
        <member name="P:RT.Util.Streams.TimeoutableStream.WriteTimeout">
            <summary>
            Gets or sets a value, in miliseconds, that determines how long the stream will attempt to write before timing out.
            Specify <see cref="F:System.Threading.Timeout.Infinite"/> to suppress the time-out (which is the default value).
            </summary>
        </member>
        <member name="T:RT.Util.Text.OffsetToLineCol">
            <summary>
            Encapsulates a class that offers efficient conversion of a string offset into line/column number. The class
            is best suited for multiple lookups on a single fixed string, and is suboptimal for single lookups into many
            different strings. All common newline styles are supported.
            </summary>
        </member>
        <member name="M:RT.Util.Text.OffsetToLineCol.#ctor(System.String)">
            <summary>Constructor: precomputes certain information to enable efficient lookups.</summary>
            <param name="input">The string on which the lookups will be performed.</param>
        </member>
        <member name="M:RT.Util.Text.OffsetToLineCol.GetLine(System.Int32)">
            <summary>Gets the number of the line containing the character at the specified offset.</summary>
            <param name="offset">Offset of the character in question.</param>
            <returns>The number of the line containing the specified character (first line is number 1).</returns>
        </member>
        <member name="M:RT.Util.Text.OffsetToLineCol.GetColumn(System.Int32)">
            <summary>Gets the number of the column containing the character at the specified offset.</summary>
            <param name="offset">Offset of the character in question.</param>
            <returns>The number of the column containing the specified character (first column is number 1).</returns>
        </member>
        <member name="M:RT.Util.Text.OffsetToLineCol.GetLineAndColumn(System.Int32,System.Int32@,System.Int32@)">
            <summary>Gets the numbers of the line and column containing the character at the specified offset.</summary>
            <param name="offset">Offset of the character in question.</param>
            <param name="line">The number of the line containing the specified character (first line is number 1).</param>
            <param name="column">The number of the column containing the specified character (first column is number 1).</param>
        </member>
        <member name="T:RT.Util.Threading.Periodic">
            <summary>
            Encapsulates a class performing a certain activity periodically, which can be initiated once
            and then permanently shut down, but not paused/resumed. The class owns its own separate
            thread, and manages this thread all by itself. The periodic task is executed on this thread.
            <para>The chief differences to <see cref="T:System.Threading.Timer"/> are as follows. This
            class will never issue overlapping activities, even if an activity takes much longer than the interval;
            the interval is between the end of the previous occurrence of the activity and the start of the next.
            The activity is executed on a foreground thread (by default), and thus will complete once started,
            unless a catastrophic abort occurs. When shutting down the activity, it's possible to wait until the
            last occurrence, if any, has completed fully.</para>
            <para>Threading: unsafe (call public methods on the creating thread only) - or is it?</para>
            </summary>
        </member>
        <member name="M:RT.Util.Threading.Periodic.PeriodicActivity">
            <summary>
            Override with a method that performs the desired periodic activity. If this method throws an exception
            the thread will terminate, but the <see cref="M:RT.Util.Threading.Periodic.LastActivity"/> will occur nevertheless.
            </summary>
        </member>
        <member name="M:RT.Util.Threading.Periodic.LastActivity">
            <summary>
            Override with a method that performs an activity on the same thread as <see cref="M:RT.Util.Threading.Periodic.PeriodicActivity"/> during
            shutdown, just before signalling that the shutdown is complete. The default implementation of this method
            does nothing. This method is guaranteed to be called during a shutdown, even if the shutdown is due to an
            exception propagating outside of <see cref="M:RT.Util.Threading.Periodic.PeriodicActivity"/>.
            </summary>
        </member>
        <member name="M:RT.Util.Threading.Periodic.Start(System.Boolean)">
            <summary>
            Schedules the periodic activity to start occurring. This method may only be called once.
            </summary>
            <param name="backgroundThread">By default (false) the class will use a foreground thread, preventing application shutdown until the thread has terminated. If true, a background thread will be created instead.</param>
        </member>
        <member name="M:RT.Util.Threading.Periodic.Shutdown(System.Boolean)">
            <summary>
            Causes the periodic activity to stop occurring. If called while the activity is being performed,
            will wait until the activity has completed before returning. Ensures that <see cref="P:RT.Util.Threading.Periodic.IsRunning"/>
            is false once this method returns.
            </summary>
        </member>
        <member name="P:RT.Util.Threading.Periodic.FirstInterval">
            <summary>
            Override to indicate how long to wait between the call to <see cref="M:RT.Util.Threading.Periodic.Start(System.Boolean)"/> and the first occurrence
            of the periodic activity.
            </summary>
        </member>
        <member name="P:RT.Util.Threading.Periodic.SubsequentInterval">
            <summary>
            Override to indicate how long to wait between second and subsequent occurrences of the periodic activity.
            </summary>
        </member>
        <member name="P:RT.Util.Threading.Periodic.IsRunning">
            <summary>
            Returns false before the first call to <see cref="M:RT.Util.Threading.Periodic.Start(System.Boolean)"/> and after the first call to <see cref="M:RT.Util.Threading.Periodic.Shutdown(System.Boolean)"/>;
            true between them.
            </summary>
        </member>
        <member name="T:RT.Util.Threading.PeriodicMultiple">
            <summary>
            <para>Encapsulates a class performing multiple related yet independent tasks on the same thread
            at a certain minimum interval each. Schedules the activity that is the most late at every opportunity,
            but will never execute more than one activity at a time (as they all share the same thread).</para>
            <para>Threading: unsafe (call public methods on the creating thread only)</para>
            </summary>
        </member>
        <member name="F:RT.Util.Threading.PeriodicMultiple.Tasks">
            <summary>Initialise this with the list of activities to be executed.</summary>
        </member>
        <member name="M:RT.Util.Threading.PeriodicMultiple.PeriodicActivity">
            <summary>For internal use.</summary>
        </member>
        <member name="P:RT.Util.Threading.PeriodicMultiple.SubsequentInterval">
            <summary>If desired, override to provide a custom interval at which the scheduler
            should re-check whether any activity is due to start. Defaults to 1 second.</summary>
        </member>
        <member name="T:RT.Util.Threading.PeriodicMultiple.Task">
            <summary>
            Used to define the activities to be executed periodically.
            </summary>
        </member>
        <member name="F:RT.Util.Threading.PeriodicMultiple.Task.Action">
            <summary>The activity to be performed.</summary>
        </member>
        <member name="F:RT.Util.Threading.PeriodicMultiple.Task.MinInterval">
            <summary>The mimimum interval at which this activity should be repeated. May be delayed arbitrarily though.</summary>
        </member>
        <member name="F:RT.Util.Threading.PeriodicMultiple.Task.LastExecuted">
            <summary>Stores the last time this activity was executed.</summary>
        </member>
        <member name="M:RT.Util.Threading.PeriodicMultiple.Task.DelayedBy">
            <summary>Calculates by how much this activity has been delayed. Is used internally to pick the next activity to run. Returns negative values for activities that aren't due yet.</summary>
        </member>
        <member name="T:RT.Util.Threading.RateLimitedAction">
            <summary>
            Simplifies the task of performing a certain action on an arbitrary thread with a certain minimum interval
            between two invocations. Only a single thread will execute the task; no threads will block waiting for that.
            </summary>
        </member>
        <member name="M:RT.Util.Threading.RateLimitedAction.#ctor(System.TimeSpan)">
            <summary>Constructor.</summary>
            <param name="minActionInterval">The minimum interval between two invocations.</param>
        </member>
        <member name="M:RT.Util.Threading.RateLimitedAction.Check(System.Action)">
            <summary>
            Checks whether it is time to execute the action. If so, executes it on the calling thread and returns only when
            the action is complete. If not, returns very quickly without blocking. If another thread is currently executing the
            action, returns very quickly without blocking.
            </summary>
            <param name="action">The action to execute.</param>
        </member>
        <member name="M:RT.Util.Threading.RateLimitedAction.Postpone">
            <summary>
            Makes it so that the next action will occur no earlier than the <see cref="P:RT.Util.Threading.RateLimitedAction.MinActionInterval"/>.
            If action is already in progress, it will complete as usual.
            </summary>
        </member>
        <member name="M:RT.Util.Threading.RateLimitedAction.Expire">
            <summary>
            Makes it so that the action will occur as soon as possible - namely, the next time a thread
            invokes the <see cref="M:RT.Util.Threading.RateLimitedAction.Check(System.Action)"/> method.
            </summary>
        </member>
        <member name="P:RT.Util.Threading.RateLimitedAction.MinActionInterval">
            <summary>Gets/sets the minimum interval between two invocations.</summary>
        </member>
        <member name="T:RT.Util.Tmr`1">
            <summary>
                Base class for a timer with particularly self-explanatory method names which are chainable. See Remarks.</summary>
            <typeparam name="T">
                The type of the values that the timer returns. This may be a reference type if need be, as long as the descendant
                fully supports a zero being equal to <c>default(T)</c>.</typeparam>
            <remarks>
                Idiomatic use example: <c>var tmr = new TmrSeconds().StartAndZero();</c></remarks>
        </member>
        <member name="M:RT.Util.Tmr`1.read(`0)">
            <summary>
                Expected to return the amount of time elapsed since the last call to <see cref="M:RT.Util.Tmr`1.zero"/>, plus the specified
                additional amount of time.</summary>
            <param name="add">
                A length of time to be added to the actual time elapsed since the last call to <see cref="M:RT.Util.Tmr`1.zero"/>.</param>
        </member>
        <member name="M:RT.Util.Tmr`1.zero">
            <summary>
                Expected to zero the timer, so that future calls to <see cref="M:RT.Util.Tmr`1.read(`0)"/> return a value relative to the last time
                this method was called.</summary>
        </member>
        <member name="M:RT.Util.Tmr`1.#ctor">
            <summary>Instantiates the timer. The timer will be zeroed, and it will not be running.</summary>
        </member>
        <member name="M:RT.Util.Tmr`1.Zero">
            <summary>Resets the timer back to zero.</summary>
        </member>
        <member name="M:RT.Util.Tmr`1.StartAndZero">
            <summary>Resets the timer and makes sure it's running. The current state of the timer is irrelevant.</summary>
        </member>
        <member name="M:RT.Util.Tmr`1.StopAndZero">
            <summary>Makes sure the timer is not running and zeroes it. The current state of the timer is irrelevant.</summary>
        </member>
        <member name="M:RT.Util.Tmr`1.Pause">
            <summary>
                Pauses the timer without zeroing it. This method may be called while the timer is already paused, but a single
                call to <see cref="M:RT.Util.Tmr`1.Continue"/> is always sufficient to resume the timer.</summary>
        </member>
        <member name="M:RT.Util.Tmr`1.Continue">
            <summary>
                Makes sure the timer is running without zeroing the time reading. If the reading is non-zero, it will continue
                growing. This method may be called while the timer is already running.</summary>
        </member>
        <member name="P:RT.Util.Tmr`1.Current">
            <summary>
                Gets the current reading of the timer. This value increases between consecutive reads while the timer is running,
                and remains fixed while it's paused.</summary>
        </member>
        <member name="P:RT.Util.Tmr`1.Last">
            <summary>
                Gets the reading the timer had just before the last call to any of the methods of this class related to zeroing,
                pausing and resuming the timer.</summary>
        </member>
        <member name="T:RT.Util.TmrSeconds">
            <summary>
                A timer measuring the number of real-time seconds elapsed between the calls. See Remarks on <see cref="T:RT.Util.Tmr`1"/>.</summary>
        </member>
        <member name="M:RT.Util.TmrSeconds.read(System.Double)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.TmrSeconds.zero">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.TmrSeconds.Zero">
            <summary>Resets the timer back to zero.</summary>
        </member>
        <member name="M:RT.Util.TmrSeconds.StartAndZero">
            <summary>Resets the timer and makes sure it's running. The current state of the timer is irrelevant.</summary>
        </member>
        <member name="M:RT.Util.TmrSeconds.StopAndZero">
            <summary>Makes sure the timer is not running and zeroes it. The current state of the timer is irrelevant.</summary>
        </member>
        <member name="M:RT.Util.TmrSeconds.Pause">
            <summary>
                Pauses the timer without zeroing it. This method may be called while the timer is already paused, but a single
                call to <see cref="M:RT.Util.TmrSeconds.Continue"/> is always sufficient to resume the timer.</summary>
        </member>
        <member name="M:RT.Util.TmrSeconds.Continue">
            <summary>
                Makes sure the timer is running without zeroing the time reading. If the reading is non-zero, it will continue
                growing. This method may be called while the timer is already running.</summary>
        </member>
        <member name="T:RT.Util.TmrCycles">
            <summary>
                A timer measuring the number of CPU clock cycles consumed by the calling thread between the calls. To ensure correct
                operation, the timer must be instantiated on the same thread on which the measurements will be performed. See Remarks
                on <see cref="T:RT.Util.Tmr`1"/>.</summary>
        </member>
        <member name="M:RT.Util.TmrCycles.read(System.Int64)">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.TmrCycles.#ctor">
            <summary>
                Constructor. Calibrates the timer. To ensure correct operation, the timer must be instantiated on the same thread
                on which the measurements will be performed.</summary>
        </member>
        <member name="M:RT.Util.TmrCycles.zero">
            <summary>Override; see base.</summary>
        </member>
        <member name="M:RT.Util.TmrCycles.Zero">
            <summary>Resets the timer back to zero.</summary>
        </member>
        <member name="M:RT.Util.TmrCycles.StartAndZero">
            <summary>Resets the timer and makes sure it's running. The current state of the timer is irrelevant.</summary>
        </member>
        <member name="M:RT.Util.TmrCycles.StopAndZero">
            <summary>Makes sure the timer is not running and zeroes it. The current state of the timer is irrelevant.</summary>
        </member>
        <member name="M:RT.Util.TmrCycles.Pause">
            <summary>
                Pauses the timer without zeroing it. This method may be called while the timer is already paused, but a single
                call to <see cref="M:RT.Util.TmrCycles.Continue"/> is always sufficient to resume the timer.</summary>
        </member>
        <member name="M:RT.Util.TmrCycles.Continue">
            <summary>
                Makes sure the timer is running without zeroing the time reading. If the reading is non-zero, it will continue
                growing. This method may be called while the timer is already running.</summary>
        </member>
        <member name="T:RT.Util.FuncStructStruct`2">
            <summary>Provides a function delegate that accepts only value types as input and return types.</summary>
        </member>
        <member name="T:RT.Util.FuncStructClass`2">
            <summary>Provides a function delegate that accepts only value types as input and only reference types as return types.</summary>
        </member>
        <member name="T:RT.Util.FuncClassStruct`2">
            <summary>Provides a function delegate that accepts only reference types as input and only value types as return types.</summary>
        </member>
        <member name="T:RT.Util.FuncClassClass`2">
            <summary>Provides a function delegate that accepts only reference types as input and return types.</summary>
        </member>
        <member name="T:RT.Util.FuncClass`2">
            <summary>Provides a function delegate that accepts only reference types as input.</summary>
        </member>
        <member name="T:RT.Util.FuncStruct`2">
            <summary>Provides a function delegate that accepts only value types as input.</summary>
        </member>
        <member name="T:RT.Util.Ut">
            <summary>Provides extension methods that apply to all types.</summary>
            <summary>This class offers some generic static functions which are hard to categorize under any more specific classes.</summary>
        </member>
        <member name="M:RT.Util.Ut.NullOr``2(``0,RT.Util.FuncClassClass{``0,``1})">
            <summary>Returns null if the input is null, otherwise the result of the specified lambda when applied to the input.</summary>
            <typeparam name="TInput">Type of the input value.</typeparam>
            <typeparam name="TResult">Type of the result from the lambda.</typeparam>
            <param name="input">Input value to check for null.</param>
            <param name="lambda">Function to apply the input value to if it is not null.</param>
        </member>
        <member name="M:RT.Util.Ut.NullOr``2(``0,RT.Util.FuncClass{``0,System.Nullable{``1}})">
            <summary>Returns null if the input is null, otherwise the result of the specified lambda when applied to the input.</summary>
            <typeparam name="TInput">Type of the input value.</typeparam>
            <typeparam name="TResult">Type of the result from the lambda.</typeparam>
            <param name="input">Input value to check for null.</param>
            <param name="lambda">Function to apply the input value to if it is not null.</param>
        </member>
        <member name="M:RT.Util.Ut.NullOr``2(``0,RT.Util.FuncClassStruct{``0,``1})">
            <summary>Returns null if the input is null, otherwise the result of the specified lambda when applied to the input.</summary>
            <typeparam name="TInput">Type of the input value.</typeparam>
            <typeparam name="TResult">Type of the result from the lambda.</typeparam>
            <param name="input">Input value to check for null.</param>
            <param name="lambda">Function to apply the input value to if it is not null.</param>
        </member>
        <member name="M:RT.Util.Ut.NullOr``2(System.Nullable{``0},RT.Util.FuncStructClass{``0,``1})">
            <summary>Returns null if the input is null, otherwise the result of the specified lambda when applied to the input.</summary>
            <typeparam name="TInput">Type of the input value.</typeparam>
            <typeparam name="TResult">Type of the result from the lambda.</typeparam>
            <param name="input">Input value to check for null.</param>
            <param name="lambda">Function to apply the input value to if it is not null.</param>
        </member>
        <member name="M:RT.Util.Ut.NullOr``2(System.Nullable{``0},RT.Util.FuncStruct{``0,System.Nullable{``1}})">
            <summary>Returns null if the input is null, otherwise the result of the specified lambda when applied to the input.</summary>
            <typeparam name="TInput">Type of the input value.</typeparam>
            <typeparam name="TResult">Type of the result from the lambda.</typeparam>
            <param name="input">Input value to check for null.</param>
            <param name="lambda">Function to apply the input value to if it is not null.</param>
        </member>
        <member name="M:RT.Util.Ut.NullOr``2(System.Nullable{``0},RT.Util.FuncStructStruct{``0,``1})">
            <summary>Returns null if the input is null, otherwise the result of the specified lambda when applied to the input.</summary>
            <typeparam name="TInput">Type of the input value.</typeparam>
            <typeparam name="TResult">Type of the result from the lambda.</typeparam>
            <param name="input">Input value to check for null.</param>
            <param name="lambda">Function to apply the input value to if it is not null.</param>
        </member>
        <member name="M:RT.Util.Ut.Nullable``1(``0)">
            <summary>Turns the specified value into a nullable value.</summary>
            <typeparam name="TInput">Any non-nullable value type.</typeparam>
            <param name="input">Any value.</param>
            <returns>The same value cast as nullable.</returns>
        </member>
        <member name="M:RT.Util.Ut.GetFieldValue``1(System.Object,System.String)">
            <summary>Searches the specified object’s type for a field of the specified name and returns that field’s value.</summary>
            <typeparam name="T">Expected type of the field.</typeparam>
            <param name="instance">Instance from which to retrieve the field value.</param>
            <param name="fieldName">Name of the field to return the value of.</param>
            <returns>The value of the field.</returns>
            <exception cref="T:System.InvalidOperationException">
            <list type="bullet">
            <item><description>The field is of a different type than specified.</description></item>
            <item><description>There is no field with the specified name.</description></item>
            </list>
            </exception>
            <remarks>This method is intended to be used only for debugging. Do not rely on it in production code.</remarks>
        </member>
        <member name="M:RT.Util.Ut.OnException``2(System.Func{``1},System.Func{``0,``1})">
            <summary>
                Evaluates the specified code and returns its result. If the code throws an exception of the specified type, runs
                <paramref name="onException"/> instead.</summary>
            <param name="func">
                The code to be executed.</param>
            <param name="onException">
                The code to be executed in case of failure.</param>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionIgnore(System.Action)">
            <summary>
                Evaluates the specified code. If the code throws any exceptions, catches and suppresses them.</summary>
            <param name="action">
                The code to be executed.</param>
            <returns>
                True if <paramref name="action"/> returned without exceptions, false otherwise.</returns>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionIgnore``1(System.Action)">
            <summary>
                Evaluates the specified code and returns its result. If the code throws <typeparamref name="TException"/>, catches
                and suppresses it. Doesn't catch any other exceptions.</summary>
            <param name="action">
                The code to be executed.</param>
            <returns>
                True if <paramref name="action"/> returned without exceptions, false if <typeparamref name="TException"/> was caught and
                suppressed.</returns>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionDefault``1(System.Func{``0},``0)">
            <summary>
                Evaluates the specified code and returns its result. If the code throws any exceptions, returns <paramref
                name="default"/> instead.</summary>
            <param name="func">
                The code to be executed.</param>
            <param name="default">
                Value to return in case of failure.</param>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionDefault``2(System.Func{``0},``0)">
            <summary>
                Evaluates the specified code and returns its result. If the code throws <typeparamref name="TException"/>, returns
                <paramref name="default"/> instead. Doesn't catch any other exceptions.</summary>
            <param name="func">
                The code to be executed.</param>
            <param name="default">
                Value to return in case of failure.</param>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionRetry(System.Action,System.Int32,System.Int32,System.Action)">
            <summary>
                Evaluates the specified code. If the code throws any exceptions, retries the specified number of times. The final
                attempt is executed without any exception handlers.</summary>
            <param name="action">
                The code to be executed.</param>
            <param name="attempts">
                The maximum number of times to retry <paramref name="action"/> before giving up.</param>
            <param name="delayMs">
                Delay, in milliseconds, before retrying <paramref name="action"/>.</param>
            <param name="onException">
                Optional action to execute when an exception occurs and the waiting period starts.</param>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionRetry``1(System.Action,System.Int32,System.Int32)">
            <summary>
                Evaluates the specified code. If the code throws <typeparamref name="TException"/>, retries the specified number
                of times. The final attempt is executed without any exception handlers.</summary>
            <param name="action">
                The code to be executed.</param>
            <param name="attempts">
                The maximum number of times to retry <paramref name="action"/> before giving up.</param>
            <param name="delayMs">
                Delay, in milliseconds, before retrying <paramref name="action"/>.</param>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionRetry``1(System.Func{``0},System.Int32,System.Int32,System.Action)">
            <summary>
                Evaluates the specified code and returns its result. If the code throws any exceptions, retries the specified
                number of times. The final attempt is executed without any exception handlers.</summary>
            <param name="func">
                The code to be executed.</param>
            <param name="attempts">
                The maximum number of times to retry <paramref name="func"/> before giving up.</param>
            <param name="delayMs">
                Delay, in milliseconds, before retrying <paramref name="func"/>.</param>
            <param name="onException">
                Optional action to execute when an exception occurs and the waiting period starts.</param>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionRetry``2(System.Func{``0},System.Int32,System.Int32)">
            <summary>
                Evaluates the specified code and returns its result. If the code throws <typeparamref name="TException"/>, retries
                the specified number of times. The final attempt is executed without any exception handlers.</summary>
            <param name="func">
                The code to be executed.</param>
            <param name="attempts">
                The maximum number of times to retry <paramref name="func"/> before giving up.</param>
            <param name="delayMs">
                Delay, in milliseconds, before retrying <paramref name="func"/>.</param>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionRetryThenIgnore(System.Action,System.Int32,System.Int32)">
            <summary>
                Evaluates the specified code. If the code throws any exceptions, retries the specified number of times. If the
                code still throws on the final attempt, suppresses the exception.</summary>
            <param name="action">
                The code to be executed.</param>
            <param name="attempts">
                The maximum number of times to retry <paramref name="action"/> before giving up.</param>
            <param name="delayMs">
                Delay, in milliseconds, before retrying <paramref name="action"/>.</param>
            <returns>
                True if <paramref name="action"/> returned without exceptions, false if an exception was caught and suppressed on every
                attempt.</returns>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionRetryThenIgnore``1(System.Action,System.Int32,System.Int32)">
            <summary>
                Evaluates the specified code. If the code throws <typeparamref name="TException"/>, retries the specified number
                of times. If the code still throws <typeparamref name="TException"/> on the final attempt, suppresses the
                exception. Doesn't catch any other exceptions.</summary>
            <param name="action">
                The code to be executed.</param>
            <param name="attempts">
                The maximum number of times to retry <paramref name="action"/> before giving up.</param>
            <param name="delayMs">
                Delay, in milliseconds, before retrying <paramref name="action"/>.</param>
            <returns>
                True if <paramref name="action"/> returned without exceptions, false if <typeparamref name="TException"/> was caught and
                suppressed on every attempt.</returns>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionRetryThenDefault``1(System.Func{``0},``0,System.Int32,System.Int32)">
            <summary>
                Evaluates the specified code and returns its result. If the code throws any exceptions, retries the specified
                number of times. If the code still throws on the final attempt, returns <paramref name="default"/>
                instead.</summary>
            <param name="func">
                The code to be executed.</param>
            <param name="default">
                Value to return in case of failure.</param>
            <param name="attempts">
                The maximum number of times to retry <paramref name="func"/> before giving up.</param>
            <param name="delayMs">
                Delay, in milliseconds, before retrying <paramref name="func"/>.</param>
        </member>
        <member name="M:RT.Util.Ut.OnExceptionRetryThenDefault``2(System.Func{``0},``0,System.Int32,System.Int32)">
            <summary>
                Evaluates the specified code and returns its result. If the code throws <typeparamref name="TException"/>, retries
                the specified number of times. If the code still throws <typeparamref name="TException"/> on the final attempt,
                returns <paramref name="default"/> instead. Doesn't catch any other exceptions.</summary>
            <param name="func">
                The code to be executed.</param>
            <param name="default">
                Value to return in case of failure.</param>
            <param name="attempts">
                The maximum number of times to retry <paramref name="func"/> before giving up.</param>
            <param name="delayMs">
                Delay, in milliseconds, before retrying <paramref name="func"/>.</param>
        </member>
        <member name="M:RT.Util.Ut.Parallel(System.Action[])">
            <summary>Runs all of the specified actions in parallel, each in a thread of its own.</summary>
            <param name="actions">Actions to run.</param>
        </member>
        <member name="M:RT.Util.Ut.Parallel(System.Int32,System.Action[])">
            <summary>Runs the specified actions partly in parallel by using no more than the specified maximum number of threads.</summary>
            <param name="maxSimultaneous">Maximum number of concurrent threads allowed.</param>
            <param name="actions">Actions to run.</param>
        </member>
        <member name="M:RT.Util.Ut.ParallelForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
            <summary>Runs the specified action in parallel for each item in the input collection.</summary>
            <typeparam name="T">Type of the items in the collection.</typeparam>
            <param name="items">Input collection of items to pass to the action.</param>
            <param name="action">Action to run for each element.</param>
        </member>
        <member name="M:RT.Util.Ut.ParallelForEach``1(System.Collections.Generic.IEnumerable{``0},System.Int32,System.Action{``0})">
            <summary>Runs the specified action in parallel for each item in the input collection, using no more than the specified maximum number of threads.</summary>
            <typeparam name="T">Type of the items in the collection.</typeparam>
            <param name="items">Input collection of items to pass to the action.</param>
            <param name="maxSimultaneous">Maximum number of concurrent threads allowed.</param>
            <param name="action">Action to run for each element.</param>
        </member>
        <member name="M:RT.Util.Ut.ParallelSelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})">
            <summary>Runs the specified function in parallel for each item in the input collection and returns a collection containing the concatenation of all the results of the function calls.</summary>
            <typeparam name="TSource">The type of the elements of <paramref name="items"/>.</typeparam>
            <typeparam name="TResult">The type of the elements of the sequence returned by <paramref name="selector"/>.</typeparam>
            <param name="items">Input collection of items to pass to the function.</param>
            <param name="selector">Function that returns a collection for each input item.</param>
        </member>
        <member name="M:RT.Util.Ut.ParallelSelectMany``2(System.Collections.Generic.IEnumerable{``0},System.Int32,System.Func{``0,System.Collections.Generic.IEnumerable{``1}})">
            <summary>Runs the specified function in parallel for each item in the input collection and returns a collection containing the concatenation of all the results of the function calls.</summary>
            <typeparam name="TSource">The type of the elements of <paramref name="items"/>.</typeparam>
            <typeparam name="TResult">The type of the elements of the sequence returned by <paramref name="selector"/>.</typeparam>
            <param name="items">Input collection of items to pass to the function.</param>
            <param name="maxSimultaneous">Maximum number of concurrent threads allowed.</param>
            <param name="selector">Function that returns a collection for each input item.</param>
        </member>
        <member name="M:RT.Util.Ut.RunPostBuildChecks(System.String,System.Reflection.Assembly[])">
            <summary>In DEBUG mode, runs all post-build checks defined in the specified assemblies. This is intended to be run as a post-build event. See remarks for details.</summary>
            <remarks><para>In non-DEBUG mode, does nothing and returns 0.</para>
            <para>Intended use is as follows:</para>
            <list type="bullet">
               <item><description><para>Add the following line to your project's post-build event:</para>
                   <code>"$(TargetPath)" --post-build-check "$(SolutionDir)."</code></description></item>
               <item><description><para>Add the following code at the beginning of your project's Main() method:</para>
                   <code>
                       if (args.Length == 2 &amp;&amp; args[0] == "--post-build-check")
                           return Ut.RunPostBuildChecks(args[1], Assembly.GetExecutingAssembly());
                   </code>
                   <para>If your project entails several assemblies, you can specify additional assemblies in the call to <see cref="M:RT.Util.Ut.RunPostBuildChecks(System.String,System.Reflection.Assembly[])"/>.
                       For example, you could specify <c>typeof(SomeTypeInMyLibrary).Assembly</c>.</para>
                   </description></item>
               <item><description>
                   <para>Add post-build check methods to any type where they may be relevant. For example, for a command-line program that uses
                       <see cref="T:RT.Util.CommandLine.CommandLineParser"/>, you might use code similar to the following:</para>
                   <code>
                       #if DEBUG
                           private static void PostBuildCheck(IPostBuildReporter rep)
                           {
                               // Replace “CommandLine” with the name of your command-line type, and “Translation”
                               // with the name of your translation type (<see cref="T:RT.Util.Lingo.TranslationBase"/>)
                               CommandLineParser.PostBuildStep&lt;CommandLine&gt;(rep, typeof(Translation));
                           }
                       #endif
                   </code>
                   <para>The method is expected to have one parameter of type <see cref="T:RT.Util.IPostBuildReporter"/>, a return type of void, and it is expected
                       to be static and non-public. Errors and warnings can be reported by calling methods on said <see cref="T:RT.Util.IPostBuildReporter"/> object.
                       Alternatively, throwing an exception will also report an error.</para>
               </description></item>
            </list></remarks>
            <param name="sourcePath">Specifies the path to the folder containing the C# source files.</param>
            <param name="assemblies">Specifies the compiled assemblies from which to run post-build checks.</param>
            <returns>1 if any errors occurred, otherwise 0.</returns>
        </member>
        <member name="M:RT.Util.Ut.Diff``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0},System.Func{``0,System.Boolean},System.Func{System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{System.Tuple{``0,RT.Util.DiffOp}}})">
            <summary>
                Computes a representation of the differences between <paramref name="old"/> and <paramref name="new"/> using
                the specified options.</summary>
            <typeparam name="T">
                The type of items to compare.</typeparam>
            <param name="old">
                The first sequence of elements. Elements only in this sequence are considered "deleted".</param>
            <param name="new">
                The second sequence of elements. Elements only in this sequence are considered "inserted".</param>
            <param name="comparer">
                The equality comparer to use to compare items in the two sequences, or null to use the default comparer.</param>
            <param name="predicate">
                If not null, determines which elements are "hard matches" (true) and which are "soft matches" (false). A "hard
                match" element is one that can always be matched. A "soft match" element is only matched if it is adjacent to
                a hard match.</param>
            <param name="postProcessor">
                If not null, provides a post-processing step for parts of the diff in between consecutive matches. Without a
                post-processing step, or when the post-processor returns null, these parts are returned as a sequence of
                deletes followed by a sequence of inserts.</param>
            <returns>
                An <c>IEnumerable&lt;Tuple&lt;T, DiffOp&gt;&gt;</c> representing the differences between <paramref
                name="old"/> and <paramref name="new"/>. Each element in the returned <c>IEnumerable&lt;Tuple&lt;T,
                DiffOp&gt;&gt;</c> corresponds either to an element present only in <paramref name="old"/> (the element is
                considered “deleted”), an element present only in <paramref name="new"/> (the element is considered
                “inserted”) or an element present in both.</returns>
        </member>
        <member name="M:RT.Util.Ut.SizeToString(System.Int64)">
            <summary>
                Converts file size in bytes to a string that uses KB, MB, GB or TB.</summary>
            <param name="size">
                The file size in bytes.</param>
            <returns>
                The converted string.</returns>
        </member>
        <member name="M:RT.Util.Ut.Min``1(``0,``0)">
            <summary>Returns the smaller of the two IComparable values. If the values are equal, returns the first one.</summary>
        </member>
        <member name="M:RT.Util.Ut.Min``1(``0,``0,``0)">
            <summary>Returns the smaller of the three IComparable values. If two values are equal, returns the earlier one.</summary>
        </member>
        <member name="M:RT.Util.Ut.Min``1(``0[])">
            <summary>Returns the smallest of all arguments passed in. Uses the Linq .Min extension method to do the work.</summary>
        </member>
        <member name="M:RT.Util.Ut.Max``1(``0,``0)">
            <summary>Returns the larger of the two IComparable values. If the values are equal, returns the first one.</summary>
        </member>
        <member name="M:RT.Util.Ut.Max``1(``0,``0,``0)">
            <summary>Returns the larger of the three IComparable values. If two values are equal, returns the earlier one.</summary>
        </member>
        <member name="M:RT.Util.Ut.Max``1(``0[])">
            <summary>Returns the largest of all arguments passed in. Uses the Linq .Max extension method to do the work.</summary>
        </member>
        <member name="M:RT.Util.Ut.SendKeystrokes(System.Collections.Generic.IEnumerable{System.Object})">
            <summary>
                Sends the specified sequence of key strokes to the active application. See remarks for details.</summary>
            <param name="keys">
                A collection of objects of type <see cref="T:System.Windows.Forms.Keys"/>, <see cref="T:System.Char"/>, or <c>System.Tuple&lt;Keys,
                bool&gt;</c>.</param>
            <exception cref="T:System.ArgumentNullException">
                <paramref name="keys"/> was null.</exception>
            <exception cref="T:System.ArgumentException">
                <paramref name="keys"/> contains an object which is of an unexpected type. Only <see cref="T:System.Windows.Forms.Keys"/>, <see cref="T:System.Char"/> and <c>System.Tuple&lt;System.Windows.Forms.Keys, bool&gt;</c> are accepted.</exception>
            <remarks>
                <list type="bullet">
                    <item><description>
                        For objects of type <see cref="T:System.Windows.Forms.Keys"/>, the relevant key is pressed and released.</description></item>
                    <item><description>
                        For objects of type <see cref="T:System.Char"/>, the specified Unicode character is simulated as a keypress and
                        release.</description></item>
                    <item><description>
                        For objects of type <c>Tuple&lt;Keys, bool&gt;</c>, the bool specifies whether to simulate only a
                        key-down (false) or only a key-up (true).</description></item></list></remarks>
            <example>
                <para>
                    The following example demonstrates how to use this method to send the key combination Win+R:</para>
                <code>
                    Ut.SendKeystrokes(Ut.NewArray&lt;object&gt;(
                        Tuple.Create(Keys.LWin, true),
                        Keys.R,
                        Tuple.Create(Keys.LWin, false)
                    ));</code></example>
        </member>
        <member name="M:RT.Util.Ut.SendKeystrokes(System.Windows.Forms.Keys,System.Int32)">
            <summary>
                Sends the specified key the specified number of times.</summary>
            <param name="key">
                Key stroke to send.</param>
            <param name="times">
                Number of times to send the <paramref name="key"/>.</param>
        </member>
        <member name="M:RT.Util.Ut.SendKeystrokesForText(System.String)">
            <summary>Sends key strokes equivalent to typing the specified text.</summary>
        </member>
        <member name="M:RT.Util.Ut.Sha1(System.String)">
            <summary>
                Reads the specified file and computes the SHA1 hash function from its contents.</summary>
            <param name="path">
                Path to the file to compute SHA1 hash function from.</param>
            <returns>
                Result of the SHA1 hash function as a string of hexadecimal digits.</returns>
        </member>
        <member name="M:RT.Util.Ut.Md5(System.String)">
            <summary>
                Reads the specified file and computes the MD5 hash function from its contents.</summary>
            <param name="path">
                Path to the file to compute MD5 hash function from.</param>
            <returns>
                Result of the MD5 hash function as a string of hexadecimal digits.</returns>
        </member>
        <member name="M:RT.Util.Ut.VersionOfExe">
            <summary>Returns the version of the entry assembly (the .exe file) in a standard format.</summary>
        </member>
        <member name="M:RT.Util.Ut.Assert(System.Boolean,System.String)">
            <summary>
                Checks the specified condition and causes the debugger to break if it is false. Throws an <see cref="T:RT.Util.InternalErrorException"/> afterwards.</summary>
        </member>
        <member name="M:RT.Util.Ut.AssertAll``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean},System.String)">
            <summary>
                Checks the specified condition and causes the debugger to break if it is false. Throws an <see cref="T:RT.Util.InternalErrorException"/> afterwards.</summary>
        </member>
        <member name="M:RT.Util.Ut.Throw``1(System.Exception)">
            <summary>
                Throws the specified exception.</summary>
            <typeparam name="TResult">
                The type to return.</typeparam>
            <param name="exception">
                The exception to throw.</param>
            <returns>
                This method never returns a value. It always throws.</returns>
        </member>
        <member name="M:RT.Util.Ut.Lambda(System.Action)">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.Lambda``1(System.Action{``0})">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.Lambda``2(System.Action{``0,``1})">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.Lambda``3(System.Action{``0,``1,``2})">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.Lambda``4(System.Action{``0,``1,``2,``3})">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.Lambda``5(System.Action{``0,``1,``2,``3,``4})">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.Lambda``1(System.Func{``0})">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.Lambda``2(System.Func{``0,``1})">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.Lambda``3(System.Func{``0,``1,``2})">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.Lambda``4(System.Func{``0,``1,``2,``3})">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.Lambda``5(System.Func{``0,``1,``2,``3,``4})">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.Lambda``6(System.Func{``0,``1,``2,``3,``4,``5})">
            <summary>
                Allows the use of C#’s powerful type inference when declaring local lambdas whose delegate type doesn't make
                any difference.</summary>
        </member>
        <member name="M:RT.Util.Ut.KeyValuePair``2(``0,``1)">
            <summary>Allows the use of type inference when creating .NET’s KeyValuePair&lt;TK,TV&gt;.</summary>
        </member>
        <member name="M:RT.Util.Ut.NewArray``1(``0[])">
            <summary>
                Returns the parameters as a new array.</summary>
            <remarks>
                Useful to circumvent Visual Studio’s bug where multi-line literal arrays are not auto-formatted.</remarks>
        </member>
        <member name="M:RT.Util.Ut.NewArray``1(System.Int32,System.Func{System.Int32,``0})">
            <summary>
                Instantiates a fully-initialized array with the specified dimensions.</summary>
            <param name="size">
                Size of the first dimension.</param>
            <param name="initialiser">
                Function to initialise the value of every element.</param>
            <typeparam name="T">
                Type of the array element.</typeparam>
        </member>
        <member name="M:RT.Util.Ut.NewArray``1(System.Int32,System.Int32,System.Func{System.Int32,System.Int32,``0})">
            <summary>
                Instantiates a fully-initialized rectangular jagged array with the specified dimensions.</summary>
            <param name="size1">
                Size of the first dimension.</param>
            <param name="size2">
                Size of the second dimension.</param>
            <param name="initialiser">
                Optional function to initialise the value of every element.</param>
            <typeparam name="T">
                Type of the array element.</typeparam>
        </member>
        <member name="M:RT.Util.Ut.NewArray``1(System.Int32,System.Int32,System.Int32,System.Func{System.Int32,System.Int32,System.Int32,``0})">
            <summary>
                Instantiates a fully-initialized "rectangular" jagged array with the specified dimensions.</summary>
            <param name="size1">
                Size of the first dimension.</param>
            <param name="size2">
                Size of the second dimension.</param>
            <param name="size3">
                Size of the third dimension.</param>
            <param name="initialiser">
                Optional function to initialise the value of every element.</param>
            <typeparam name="T">
                Type of the array element.</typeparam>
        </member>
        <member name="M:RT.Util.Ut.ParseInt32(System.String)">
            <summary>
                Returns the integer represented by the specified string, or null if the string does not represent a valid
                32-bit integer.</summary>
        </member>
        <member name="M:RT.Util.Ut.ParseInt64(System.String)">
            <summary>
                Returns the integer represented by the specified string, or null if the string does not represent a valid
                64-bit integer.</summary>
        </member>
        <member name="M:RT.Util.Ut.ParseDouble(System.String)">
            <summary>
                Returns the floating-point number represented by the specified string, or null if the string does not
                represent a valid double-precision floating-point number.</summary>
        </member>
        <member name="M:RT.Util.Ut.ParseDateTime(System.String)">
            <summary>
                Returns the date/time stamp represented by the specified string, or null if the string does not represent a
                valid date/time stamp.</summary>
        </member>
        <member name="M:RT.Util.Ut.ParseEnum``1(System.String,System.Boolean)">
            <summary>
                Returns the enum value represented by the specified string, or null if the string does not represent a valid
                enum value.</summary>
        </member>
        <member name="M:RT.Util.Ut.CreateDelegate(System.Object,System.Reflection.MethodInfo)">
            <summary>
                Creates a delegate using Action&lt;,*&gt; or Func&lt;,*&gt; depending on the number of parameters of the
                specified method.</summary>
            <param name="firstArgument">
                Object to call the method on, or null for static methods.</param>
            <param name="method">
                The method to call.</param>
        </member>
        <member name="M:RT.Util.Ut.IfType``2(``0,System.Action{``1},System.Action{``0})">
            <summary>
                Executes the specified action if the current object is of the specified type, and the alternative action
                otherwise.</summary>
            <typeparam name="TObj">
                Static type of the object to examine.</typeparam>
            <typeparam name="TTest">
                Type the object must have at runtime to execute the action.</typeparam>
            <param name="obj">
                Object whose type is to be examined.</param>
            <param name="action">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest"/>.</param>
            <param name="elseAction">
                Action to execute otherwise. If it's null, this action is not performed.</param>
        </member>
        <member name="M:RT.Util.Ut.IfType``3(``0,System.Action{``1},System.Action{``2},System.Action{``0})">
            <summary>
                Executes the relevant action depending on the type of the current object, or the alternative action otherwise.</summary>
            <typeparam name="TObj">
                Static type of the object to examine.</typeparam>
            <typeparam name="TTest1">
                Type the object must have at runtime to execute <paramref name="action1"/>.</typeparam>
            <typeparam name="TTest2">
                Type the object must have at runtime to execute <paramref name="action2"/>.</typeparam>
            <param name="obj">
                Object whose type is to be examined.</param>
            <param name="action1">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest1"/>.</param>
            <param name="action2">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest2"/>.</param>
            <param name="elseAction">
                Action to execute otherwise. If it's null, <c>default(TResult)</c> is returned.</param>
            <returns>
                The result of the action called.</returns>
        </member>
        <member name="M:RT.Util.Ut.IfType``4(``0,System.Action{``1},System.Action{``2},System.Action{``3},System.Action{``0})">
            <summary>
                Executes the relevant action depending on the type of the current object, or the alternative action otherwise.</summary>
            <typeparam name="TObj">
                Static type of the object to examine.</typeparam>
            <typeparam name="TTest1">
                Type the object must have at runtime to execute <paramref name="action1"/>.</typeparam>
            <typeparam name="TTest2">
                Type the object must have at runtime to execute <paramref name="action2"/>.</typeparam>
            <typeparam name="TTest3">
                Type the object must have at runtime to execute <paramref name="action3"/>.</typeparam>
            <param name="obj">
                Object whose type is to be examined.</param>
            <param name="action1">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest1"/>.</param>
            <param name="action2">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest2"/>.</param>
            <param name="action3">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest3"/>.</param>
            <param name="elseAction">
                Action to execute otherwise. If it's null, <c>default(TResult)</c> is returned.</param>
            <returns>
                The result of the action called.</returns>
        </member>
        <member name="M:RT.Util.Ut.IfType``5(``0,System.Action{``1},System.Action{``2},System.Action{``3},System.Action{``4},System.Action{``0})">
            <summary>
                Executes the relevant action depending on the type of the current object, or the alternative action otherwise.</summary>
            <typeparam name="TObj">
                Static type of the object to examine.</typeparam>
            <typeparam name="TTest1">
                Type the object must have at runtime to execute <paramref name="action1"/>.</typeparam>
            <typeparam name="TTest2">
                Type the object must have at runtime to execute <paramref name="action2"/>.</typeparam>
            <typeparam name="TTest3">
                Type the object must have at runtime to execute <paramref name="action3"/>.</typeparam>
            <typeparam name="TTest4">
                Type the object must have at runtime to execute <paramref name="action4"/>.</typeparam>
            <param name="obj">
                Object whose type is to be examined.</param>
            <param name="action1">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest1"/>.</param>
            <param name="action2">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest2"/>.</param>
            <param name="action3">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest3"/>.</param>
            <param name="action4">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest4"/>.</param>
            <param name="elseAction">
                Action to execute otherwise. If it's null, <c>default(TResult)</c> is returned.</param>
            <returns>
                The result of the action called.</returns>
        </member>
        <member name="M:RT.Util.Ut.IfType``6(``0,System.Action{``1},System.Action{``2},System.Action{``3},System.Action{``4},System.Action{``5},System.Action{``0})">
            <summary>
                Executes the relevant action depending on the type of the current object, or the alternative action otherwise.</summary>
            <typeparam name="TObj">
                Static type of the object to examine.</typeparam>
            <typeparam name="TTest1">
                Type the object must have at runtime to execute <paramref name="action1"/>.</typeparam>
            <typeparam name="TTest2">
                Type the object must have at runtime to execute <paramref name="action2"/>.</typeparam>
            <typeparam name="TTest3">
                Type the object must have at runtime to execute <paramref name="action3"/>.</typeparam>
            <typeparam name="TTest4">
                Type the object must have at runtime to execute <paramref name="action4"/>.</typeparam>
            <typeparam name="TTest5">
                Type the object must have at runtime to execute <paramref name="action5"/>.</typeparam>
            <param name="obj">
                Object whose type is to be examined.</param>
            <param name="action1">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest1"/>.</param>
            <param name="action2">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest2"/>.</param>
            <param name="action3">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest3"/>.</param>
            <param name="action4">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest4"/>.</param>
            <param name="action5">
                Action to execute if <paramref name="obj"/> has the type <typeparamref name="TTest5"/>.</param>
            <param name="elseAction">
                Action to execute otherwise. If it's null, <c>default(TResult)</c> is returned.</param>
            <returns>
                The result of the action called.</returns>
        </member>
        <member name="M:RT.Util.Ut.IfType``3(``0,System.Func{``1,``2},System.Func{``0,``2})">
            <summary>
                Executes the relevant function depending on the type of the current object, or the alternative function
                otherwise.</summary>
            <typeparam name="TObj">
                Static type of the object to examine.</typeparam>
            <typeparam name="TTest">
                Type the object must have at runtime to execute the function.</typeparam>
            <typeparam name="TResult">
                Type of the result returned by the functions.</typeparam>
            <param name="obj">
                Object whose type is to be examined.</param>
            <param name="function">
                Function to execute if <paramref name="obj"/> has the type <typeparamref name="TTest"/>.</param>
            <param name="elseFunction">
                Function to execute otherwise. If it's null, <c>default(TResult)</c> is returned.</param>
            <returns>
                The result of the function called.</returns>
        </member>
        <member name="M:RT.Util.Ut.IfType``3(``0,System.Func{``1,``2},``2)">
            <summary>
                Executes the relevant function depending on the type of the current object, or returns the alternative value
                otherwise.</summary>
            <typeparam name="TObj">
                Static type of the object to examine.</typeparam>
            <typeparam name="TTest">
                Type the object must have at runtime to execute the function.</typeparam>
            <typeparam name="TResult">
                Type of the result returned by the functions.</typeparam>
            <param name="obj">
                Object whose type is to be examined.</param>
            <param name="function">
                Function to execute if <paramref name="obj"/> has the type <typeparamref name="TTest"/>.</param>
            <param name="elseValue">
                Value to return otherwise.</param>
            <returns>
                The result of <paramref name="function"/> or the value of <paramref name="elseValue"/>.</returns>
        </member>
        <member name="M:RT.Util.Ut.IfType``4(``0,System.Func{``1,``3},System.Func{``2,``3},System.Func{``0,``3})">
            <summary>
                Executes the relevant function depending on the type of the current object, or the alternative function
                otherwise.</summary>
            <typeparam name="TObj">
                Static type of the object to examine.</typeparam>
            <typeparam name="TTest1">
                Type the object must have at runtime to execute <paramref name="function1"/>.</typeparam>
            <typeparam name="TTest2">
                Type the object must have at runtime to execute <paramref name="function2"/>.</typeparam>
            <typeparam name="TResult">
                Type of the result returned by the functions.</typeparam>
            <param name="obj">
                Object whose type is to be examined.</param>
            <param name="function1">
                Function to execute if <paramref name="obj"/> has the type <typeparamref name="TTest1"/>.</param>
            <param name="function2">
                Function to execute if <paramref name="obj"/> has the type <typeparamref name="TTest2"/>.</param>
            <param name="elseFunction">
                Function to execute otherwise. If it's null, <c>default(TResult)</c> is returned.</param>
            <returns>
                The result of the function called.</returns>
        </member>
        <member name="M:RT.Util.Ut.IfType``5(``0,System.Func{``1,``4},System.Func{``2,``4},System.Func{``3,``4},System.Func{``0,``4})">
            <summary>
                Executes the relevant function depending on the type of the current object, or the alternative function
                otherwise.</summary>
            <typeparam name="TObj">
                Static type of the object to examine.</typeparam>
            <typeparam name="TTest1">
                Type the object must have at runtime to execute <paramref name="function1"/>.</typeparam>
            <typeparam name="TTest2">
                Type the object must have at runtime to execute <paramref name="function2"/>.</typeparam>
            <typeparam name="TTest3">
                Type the object must have at runtime to execute <paramref name="function3"/>.</typeparam>
            <typeparam name="TResult">
                Type of the result returned by the functions.</typeparam>
            <param name="obj">
                Object whose type is to be examined.</param>
            <param name="function1">
                Function to execute if <paramref name="obj"/> has the type <typeparamref name="TTest1"/>.</param>
            <param name="function2">
                Function to execute if <paramref name="obj"/> has the type <typeparamref name="TTest2"/>.</param>
            <param name="function3">
                Function to execute if <paramref name="obj"/> has the type <typeparamref name="TTest3"/>.</param>
            <param name="elseFunction">
                Function to execute otherwise. If it's null, <c>default(TResult)</c> is returned.</param>
            <returns>
                The result of the function called.</returns>
        </member>
        <member name="M:RT.Util.Ut.IfType``6(``0,System.Func{``1,``5},System.Func{``2,``5},System.Func{``3,``5},System.Func{``4,``5},System.Func{``0,``5})">
            <summary>
                Executes the relevant function depending on the type of the current object, or the alternative function
                otherwise.</summary>
            <typeparam name="TObj">
                Static type of the object to examine.</typeparam>
            <typeparam name="TTest1">
                Type the object must have at runtime to execute <paramref name="function1"/>.</typeparam>
            <typeparam name="TTest2">
                Type the object must have at runtime to execute <paramref name="function2"/>.</typeparam>
            <typeparam name="TTest3">
                Type the object must have at runtime to execute <paramref name="function3"/>.</typeparam>
            <typeparam name="TTest4">
                Type the object must have at runtime to execute <paramref name="function4"/>.</typeparam>
            <typeparam name="TResult">
                Type of the result returned by the functions.</typeparam>
            <param name="obj">
                Object whose type is to be examined.</param>
            <param name="function1">
                Function to execute if <paramref name="obj"/> has the type <typeparamref name="TTest1"/>.</param>
            <param name="function2">
                Function to execute if <paramref name="obj"/> has the type <typeparamref name="TTest2"/>.</param>
            <param name="function3">
                Function to execute if <paramref name="obj"/> has the type <typeparamref name="TTest3"/>.</param>
            <param name="function4">
                Function to execute if <paramref name="obj"/> has the type <typeparamref name="TTest4"/>.</param>
            <param name="elseFunction">
                Function to execute otherwise. If it's null, <c>default(TResult)</c> is returned.</param>
            <returns>
                The result of the function called.</returns>
        </member>
        <member name="M:RT.Util.Ut.Apply``2(``0,System.Func{``0,``1})">
            <summary>
                Executes the specified function with the specified argument.</summary>
            <typeparam name="TSource">
                Type of the argument to the function.</typeparam>
            <typeparam name="TResult">
                Type of the result of the function.</typeparam>
            <param name="source">
                The argument to the function.</param>
            <param name="func">
                The function to execute.</param>
            <returns>
                The result of the function.</returns>
        </member>
        <member name="M:RT.Util.Ut.Apply``1(``0,System.Action{``0})">
            <summary>
                Executes the specified action with the specified argument.</summary>
            <typeparam name="TSource">
                Type of the argument to the action.</typeparam>
            <param name="source">
                The argument to the action.</param>
            <param name="action">
                The action to execute.</param>
            <returns>
                The result of the function.</returns>
        </member>
        <member name="M:RT.Util.Ut.WaitSharingVio(System.Action,System.Nullable{System.TimeSpan},System.Action)">
            <summary>
                Executes the specified action. If the action results in a file sharing violation exception, the action will be
                repeatedly retried after a short delay (which increases after every failed attempt).</summary>
            <param name="action">
                The action to be attempted and possibly retried.</param>
            <param name="maximum">
                Maximum amount of time to keep retrying for. When expired, any sharing violation exception will propagate to
                the caller of this method. Use null to retry indefinitely.</param>
            <param name="onSharingVio">
                Action to execute when a sharing violation does occur (is called before the waiting).</param>
        </member>
        <member name="M:RT.Util.Ut.WaitSharingVio``1(System.Func{``0},System.Nullable{System.TimeSpan},System.Action)">
            <summary>
                Executes the specified function. If the function results in a file sharing violation exception, the function
                will be repeatedly retried after a short delay (which increases after every failed attempt).</summary>
            <param name="func">
                The function to be attempted and possibly retried.</param>
            <param name="maximum">
                Maximum amount of time to keep retrying for. When expired, any sharing violation exception will propagate to
                the caller of this method. Use null to retry indefinitely.</param>
            <param name="onSharingVio">
                Action to execute when a sharing violation does occur (is called before the waiting).</param>
        </member>
        <member name="M:RT.Util.Ut.ThreadPool(System.Action)">
            <summary>
                Queues the specified action to be executed on the thread pool. This is just a shortcut for
                <c>ThreadPool.QueueUserWorkItem</c>, and also does not require the method to accept a parameter (which has
                been useless ever since C# gained support for lambdas).</summary>
        </member>
        <member name="M:RT.Util.Ut.Swap``1(``0@,``0@)">
            <summary>Swaps the values of the specified two variables.</summary>
        </member>
        <member name="M:RT.Util.Ut.GetLongestCommonSubstring(System.String[])">
            <summary>
                Finds the longest substring that all of the specified input strings contain.</summary>
            <param name="strings">
                Strings to examine.</param>
            <returns>
                The longest shared substring. This may be the empty string, but not will not be <c>null</c>.</returns>
        </member>
        <member name="M:RT.Util.Ut.BytesToUShort(System.Byte[],System.Int32,System.Boolean)">
            <summary>
                Converts the bytes at the specified <paramref name="index"/> within the specified <paramref name="buffer"/> to
                a 16-bit unsigned integer.</summary>
            <param name="buffer">
                Array to take values from.</param>
            <param name="index">
                Index within the array at which to start taking values.</param>
            <param name="bigEndian">
                <c>true</c> to interpret the data as big-endian byte order; <c>false</c> for little-endian byte order.</param>
            <returns>
                The converted 16-bit unsigned integer.</returns>
        </member>
        <member name="M:RT.Util.Ut.BytesToShort(System.Byte[],System.Int32,System.Boolean)">
            <summary>
                Converts the bytes at the specified <paramref name="index"/> within the specified <paramref name="buffer"/> to
                a 16-bit signed integer.</summary>
            <param name="buffer">
                Array to take values from.</param>
            <param name="index">
                Index within the array at which to start taking values.</param>
            <param name="bigEndian">
                <c>true</c> to interpret the data as big-endian byte order; <c>false</c> for little-endian byte order.</param>
            <returns>
                The converted 16-bit signed integer.</returns>
        </member>
        <member name="M:RT.Util.Ut.BytesToUInt(System.Byte[],System.Int32,System.Boolean)">
            <summary>
                Converts the bytes at the specified <paramref name="index"/> within the specified <paramref name="buffer"/> to
                a 32-bit unsigned integer.</summary>
            <param name="buffer">
                Array to take values from.</param>
            <param name="index">
                Index within the array at which to start taking values.</param>
            <param name="bigEndian">
                <c>true</c> to interpret the data as big-endian byte order; <c>false</c> for little-endian byte order.</param>
            <returns>
                The converted 32-bit unsigned integer.</returns>
        </member>
        <member name="M:RT.Util.Ut.BytesToInt(System.Byte[],System.Int32,System.Boolean)">
            <summary>
                Converts the bytes at the specified <paramref name="index"/> within the specified <paramref name="buffer"/> to
                a 32-bit signed integer.</summary>
            <param name="buffer">
                Array to take values from.</param>
            <param name="index">
                Index within the array at which to start taking values.</param>
            <param name="bigEndian">
                <c>true</c> to interpret the data as big-endian byte order; <c>false</c> for little-endian byte order.</param>
            <returns>
                The converted 32-bit signed integer.</returns>
        </member>
        <member name="M:RT.Util.Ut.BytesToULong(System.Byte[],System.Int32,System.Boolean)">
            <summary>
                Converts the bytes at the specified <paramref name="index"/> within the specified <paramref name="buffer"/> to
                a 64-bit unsigned integer.</summary>
            <param name="buffer">
                Array to take values from.</param>
            <param name="index">
                Index within the array at which to start taking values.</param>
            <param name="bigEndian">
                <c>true</c> to interpret the data as big-endian byte order; <c>false</c> for little-endian byte order.</param>
            <returns>
                The converted 64-bit unsigned integer.</returns>
        </member>
        <member name="M:RT.Util.Ut.BytesToLong(System.Byte[],System.Int32,System.Boolean)">
            <summary>
                Converts the bytes at the specified <paramref name="index"/> within the specified <paramref name="buffer"/> to
                a 64-bit signed integer.</summary>
            <param name="buffer">
                Array to take values from.</param>
            <param name="index">
                Index within the array at which to start taking values.</param>
            <param name="bigEndian">
                <c>true</c> to interpret the data as big-endian byte order; <c>false</c> for little-endian byte order.</param>
            <returns>
                The converted 64-bit signed integer.</returns>
        </member>
        <member name="M:RT.Util.Ut.GetCustomAttributes``1(System.Enum)">
            <summary>
                Returns the set of custom attributes of the specified <typeparamref name="TAttribute"/> type that are attached
                to the declaration of the enum value represented by <paramref name="enumValue"/>.</summary>
            <typeparam name="TAttribute">
                The type of the custom attributes to retrieve.</typeparam>
            <param name="enumValue">
                The enum value for which to retrieve the custom attributes.</param>
            <returns>
                An array containing the custom attributes, or <c>null</c> if <paramref name="enumValue"/> does not correspond
                to a declared value.</returns>
            <remarks>
                This method keeps an internal cache forever.</remarks>
            <exception cref="T:System.ArgumentNullException">
                <paramref name="enumValue"/> is <c>null</c>.</exception>
        </member>
        <member name="M:RT.Util.Ut.GetCustomAttribute``1(System.Enum)">
            <summary>
                Returns the single custom attribute of the specified <typeparamref name="TAttribute"/> type that is attached
                to the declaration of the enum value represented by <paramref name="enumValue"/>, or <c>null</c> if there is
                no such attribute.</summary>
            <typeparam name="TAttribute">
                The type of the custom attribute to retrieve.</typeparam>
            <param name="enumValue">
                The enum value for which to retrieve the custom attribute.</param>
            <returns>
                The custom attribute, or <c>null</c> if the enum value does not have a custom attribute of the specified type
                attached to it. If <paramref name="enumValue"/> does not correspond to a declared enum value, or there is more
                than one custom attribute of the same type, an exception is thrown.</returns>
            <remarks>
                This method uses <see cref="M:RT.Util.Ut.GetCustomAttributes``1(System.Enum)"/>, which keeps an internal cache
                forever.</remarks>
            <exception cref="T:System.ArgumentNullException">
                <paramref name="enumValue"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException">
                There is more than one custom attribute of the specified type attached to the enum value declaration.</exception>
        </member>
        <member name="M:RT.Util.Ut.IsDefault``1(``0)">
            <summary>Returns true if this value is equal to the default value for this type.</summary>
        </member>
        <member name="M:RT.Util.Ut.ArrayHash(System.Object[])">
            <summary>
                Computes a hash value from an array of elements.</summary>
            <param name="input">
                The array of elements to hash.</param>
            <returns>
                The computed hash value.</returns>
        </member>
        <member name="M:RT.Util.Ut.InternalError">
            <summary>
            Informs the user nicely that an internal error has occurred. Does not
            actually terminate the program, so if the problem is not fatal the user
            could save their work etc.
            </summary>
        </member>
        <member name="M:RT.Util.Ut.InternalError(System.Int32)">
            <summary>
            Informs the user nicely that an internal error has occurred. Does not
            actually terminate the program, so if the problem is not fatal the user
            could save their work etc.
            </summary>
            <param name="errorCode">Some error code to help the developer pinpoint the problem.</param>
        </member>
        <member name="M:RT.Util.Ut.InternalError(System.String)">
            <summary>
            Informs the user nicely that an internal error has occurred. Does not
            actually terminate the program, so if the problem is not fatal the user
            could save their work etc.
            </summary>
            <param name="errorMsg">An error message to help the developer pinpoint the problem.</param>
        </member>
        <member name="M:RT.Util.Ut.InternalErrorPrivate(System.String)">
            <summary>
            Raises an internal error. The reason why this is private is so that only
            the other InternalError functions can call it. This ensures that the
            function can always backtrack exactly 2 stack frames to get to the place
            which invoked InternalError.
            </summary>
        </member>
        <member name="M:RT.Util.Ut.ReduceRequiredSet``1(System.Collections.Generic.IEnumerable{``0},System.Func{RT.Util.Ut.ReduceRequiredSetState{``0},System.Boolean},System.Boolean,System.Boolean)">
            <summary>
                Given a set of values and a function that returns true when given this set, will efficiently remove items from
                this set which are not essential for making the function return true. The relative order of items is
                preserved. This method cannot generally guarantee that the result is optimal, but for some types of functions
                the result will be guaranteed optimal.</summary>
            <typeparam name="T">
                Type of the values in the set.</typeparam>
            <param name="items">
                The set of items to reduce.</param>
            <param name="test">
                The function that examines the set. Must always return the same value for the same set.</param>
            <param name="breadthFirst">
                A value selecting a breadth-first or a depth-first approach. Depth-first is best at quickly locating a single
                value which will be present in the final required set. Breadth-first is best at quickly placing a lower bound
                on the total number of individual items in the required set.</param>
            <param name="skipConsistencyTest">
                When the function is particularly slow, you might want to set this to true to disable calls which are not
                required to reduce the set and are only there to ensure that the function behaves consistently.</param>
            <returns>
                A hopefully smaller set of values that still causes the function to return true.</returns>
        </member>
        <member name="M:RT.Util.Ut.RunMain(System.Action,System.Action{System.Exception},System.Action{System.Exception})">
            <summary>
                Execute the core of the application. In debug mode, exceptions are passed through untouched. In release mode, all
                exceptions are caught, including those on other threads, and passed on to the specified handlers. Also, the main thread
                is given the name "Main".</summary>
            <param name="main">
                A method which executes the core of the application.</param>
            <param name="onUnhandledMain">
                Method called in case the main method throws an unhandled exception.</param>
            <param name="onUnhandledThread">
                Method called in case a thread other than the one executing the main method throws an unhandled exception. If null,
                <paramref name="onUnhandledMain"/> will be called instead.</param>
        </member>
        <member name="M:RT.Util.Ut.RunMain(System.Func{System.Int32},System.Func{System.Exception,System.Int32},System.Action{System.Exception})">
            <summary>
                Execute the core of the application. In debug mode, exceptions are passed through untouched. In release mode, all
                exceptions are caught, including those on other threads, and passed on to the specified handlers. Also, the main thread
                is given the name "Main".</summary>
            <param name="main">
                A method which executes the core of the application.</param>
            <param name="onUnhandledMain">
                Method called in case the main method throws an unhandled exception. The return value is what this method will return.</param>
            <param name="onUnhandledThread">
                Method called in case a thread other than the one executing the main method throws an unhandled exception. If null,
                <paramref name="onUnhandledMain"/> will be called instead, and its return value will be ignored.</param>
        </member>
        <member name="M:RT.Util.Ut.Tic">
            <summary>Starts a simple performance timer. Use <see cref="M:RT.Util.Ut.Toc"/> to stop.</summary>
        </member>
        <member name="M:RT.Util.Ut.Toc">
            <summary>
                Stops a simple performance timer started by <see cref="M:RT.Util.Ut.Tic"/> and returns the number of seconds elapsed, accurate
                to the resolution of the system timer. Note that there exists only a single timer; <see cref="M:RT.Util.Ut.Toc"/> returns the
                time since the very last call to <see cref="M:RT.Util.Ut.Tic"/>.</summary>
        </member>
        <member name="P:RT.Util.Ut.Ctrl">
            <summary>Determines whether the Ctrl key is pressed.</summary>
        </member>
        <member name="P:RT.Util.Ut.Alt">
            <summary>Determines whether the Alt key is pressed.</summary>
        </member>
        <member name="P:RT.Util.Ut.Shift">
            <summary>Determines whether the Shift key is pressed.</summary>
        </member>
        <member name="T:RT.Util.IPostBuildReporter">
            <summary>Provides the ability to output post-build messages (with filename and line number) to Console.Error. This interface is used by <see cref="M:RT.Util.Ut.RunPostBuildChecks(System.String,System.Reflection.Assembly[])"/>.</summary>
        </member>
        <member name="M:RT.Util.IPostBuildReporter.Error(System.String,System.String[])">
            <summary>When implemented in a class, searches the source directory for the first occurrence of the first token in <paramref name="tokens"/>,
            and then starts searching there to find the first occurrence of each of the subsequent <paramref name="tokens"/> within the same file. When found,
            outputs the error <paramref name="message"/> including the filename and line number where the last token was found.</summary>
        </member>
        <member name="M:RT.Util.IPostBuildReporter.Error(System.String,System.String,System.Int32,System.Nullable{System.Int32})">
            <summary>When implemented in a class, outputs the error <paramref name="message"/> including the specified <paramref name="filename"/>, <paramref name="lineNumber"/> and optional <paramref name="columnNumber"/>.</summary>
        </member>
        <member name="M:RT.Util.IPostBuildReporter.Warning(System.String,System.String[])">
            <summary>When implemented in a class, searches the source directory for the first occurrence of the first token in <paramref name="tokens"/>,
            and then starts searching there to find the first occurrence of each of the subsequent <paramref name="tokens"/> within the same file. When found,
            outputs the warning <paramref name="message"/> including the filename and line number where the last token was found.</summary>
        </member>
        <member name="M:RT.Util.IPostBuildReporter.Warning(System.String,System.String,System.Int32,System.Nullable{System.Int32})">
            <summary>When implemented in a class, outputs the warning <paramref name="message"/> including the specified <paramref name="filename"/>, <paramref name="lineNumber"/> and optional <paramref name="columnNumber"/>.</summary>
        </member>
        <member name="T:RT.Util.Ut.ReduceRequiredSetState`1">
            <summary>
                Encapsulates the state of the <see cref="M:RT.Util.Ut.ReduceRequiredSet``1(System.Collections.Generic.IEnumerable{``0},System.Func{RT.Util.Ut.ReduceRequiredSetState{``0},System.Boolean},System.Boolean,System.Boolean)"/> algorithm and exposes statistics about it.</summary>
        </member>
        <member name="F:RT.Util.Ut.ReduceRequiredSetState`1.Ranges">
            <summary>Internal; do not use.</summary>
        </member>
        <member name="F:RT.Util.Ut.ReduceRequiredSetState`1.Items">
            <summary>Internal; do not use.</summary>
        </member>
        <member name="F:RT.Util.Ut.ReduceRequiredSetState`1.ExcludedRange">
            <summary>Internal; do not use.</summary>
        </member>
        <member name="F:RT.Util.Ut.ReduceRequiredSetState`1.IncludedRange">
            <summary>Internal; do not use.</summary>
        </member>
        <member name="P:RT.Util.Ut.ReduceRequiredSetState`1.DefinitelyRequired">
            <summary>
                Enumerates every item that is known to be in the final required set. "Definitely" doesn't mean that there
                exists no subset resulting in "true" without these members. Rather, it means that the algorithm will
                definitely return these values, and maybe some others too.</summary>
        </member>
        <member name="P:RT.Util.Ut.ReduceRequiredSetState`1.PartitionsCount">
            <summary>
                Gets the current number of partitions containing uncertain items. The more of these, the slower the
                algorithm will converge from here onwards.</summary>
        </member>
        <member name="P:RT.Util.Ut.ReduceRequiredSetState`1.SmallestPartitionSize">
            <summary>
                Gets the number of items in the smallest partition. This is the value that is halved upon a successful
                depth-first iteration.</summary>
        </member>
        <member name="P:RT.Util.Ut.ReduceRequiredSetState`1.LargestPartitionSize">
            <summary>
                Gets the number of items in the largest partition. This is the value that is halved upon a successful
                breadth-first iteration.</summary>
        </member>
        <member name="P:RT.Util.Ut.ReduceRequiredSetState`1.ItemsRemaining">
            <summary>Gets the total number of items about which the algorithm is currently undecided.</summary>
        </member>
        <member name="P:RT.Util.Ut.ReduceRequiredSetState`1.SetToTest">
            <summary>Gets the set of items for which the function should be evaluated in the current step.</summary>
        </member>
        <member name="T:RT.Util.InternalErrorException">
            <summary>
            Represents an internal error in the code. Any place where the code is able
            to verify its own consistency is where this exception should be thrown, for
            example in "unreachable" code safeguards.
            </summary>
        </member>
        <member name="M:RT.Util.InternalErrorException.#ctor(System.String)">
            <summary>Creates an exception instance with the specified message.</summary>
        </member>
        <member name="M:RT.Util.InternalErrorException.#ctor(System.String,System.Exception)">
            <summary>Creates an exception instance with the specified message and inner exception.</summary>
        </member>
        <member name="T:RT.Util.SettingsUtil">
            <summary>Provides convenience methods for loading and saving application settings.</summary>
        </member>
        <member name="M:RT.Util.SettingsUtil.GetAttribute(System.Type)">
            <summary>
                Retrieves the mandatory <see cref="T:RT.Util.SettingsAttribute"/> for the specified settings class type. Throws if the
                type doesn't have it specified.</summary>
            <param name="settingsType">
                Type of the settings class whose attribute is to be retrieved</param>
        </member>
        <member name="M:RT.Util.SettingsUtil.GetAttribute``1">
            <summary>
                Retrieves the mandatory <see cref="T:RT.Util.SettingsAttribute"/> for the type <typeparamref name="TSettings"/>. Throws
                if the type doesn't have it specified.</summary>
            <typeparam name="TSettings">
                Type of the settings class whose attribute is to be retrieved</typeparam>
        </member>
        <member name="M:RT.Util.SettingsUtil.PostBuildStep``1(RT.Util.IPostBuildReporter)">
            <summary>
                Performs safety checks to ensure that a settings object conforms to various requirements imposed by
                SettingsUtil methods. Run this method as a post-build step to ensure reliability of execution. For an example
                of use, see <see cref="M:RT.Util.Ut.RunPostBuildChecks(System.String,System.Reflection.Assembly[])"/>. This method is available only in DEBUG mode.</summary>
            <typeparam name="TSettings">
                The type of the settings object, derived from <see cref="T:RT.Util.SettingsBase"/>, which would be passed to
                SettingsUtil methods at normal run-time.</typeparam>
            <param name="rep">
                Object to report post-build errors to.</param>
        </member>
        <member name="M:RT.Util.SettingsUtil.LoadSettings``1(``0@,System.String,System.Nullable{RT.Util.SettingsSerializer})">
            <summary>
                Loads settings into the specified class, or, if not available, creates a new instance of the class. See
                Remarks.</summary>
            <remarks>
                If the settings file exists but can't be loaded, this function will automatically create a backup of the
                settings file. If the file is opened exclusively by other code, will retry reading from it for up to 1.5
                seconds.</remarks>
            <param name="settings">
                Destination - the settings class will be placed here</param>
            <param name="filename">
                If specified, overrides the filename that is normally derived from the values specified in the <see cref="T:RT.Util.SettingsAttribute"/> on the settings class.</param>
            <param name="serializer">
                If specified, overrides the serializer specified in the <see cref="T:RT.Util.SettingsAttribute"/> on the settings class.</param>
            <returns>
                true if loaded an existing file, false if created a new one.</returns>
        </member>
        <member name="M:RT.Util.SettingsUtil.EncryptPassword(System.String,System.Byte[])">
            <summary>
                Encrypts a password using AES. The result is encoded into base 64 for easy storage.</summary>
            <param name="plain">
                Plaintext password to encrypt.</param>
            <param name="key">
                The key to use for encryption. Must be exactly 32 bytes long.</param>
            <returns>
                The encrypted password as a base64-encoded string.</returns>
        </member>
        <member name="M:RT.Util.SettingsUtil.DecryptPassword(System.String,System.Byte[])">
            <summary>
                Decrypts a password encrypted with <see cref="M:RT.Util.SettingsUtil.EncryptPassword(System.String,System.Byte[])"/>.</summary>
            <param name="cipher">
                The output of <see cref="M:RT.Util.SettingsUtil.EncryptPassword(System.String,System.Byte[])"/>.</param>
            <param name="key">
                The key used to encrypt the password.</param>
            <returns>
                The decrypted password.</returns>
        </member>
        <member name="T:RT.Util.SettingsThreadedBase">
            <summary>Like <see cref="T:RT.Util.SettingsBase"/>, but implements an additional save method.</summary>
        </member>
        <member name="M:RT.Util.SettingsThreadedBase.CloneForSaveThreaded">
            <summary>
                Must return a deep clone of this class. This will be used to create a snapshot of the settings at the time
                when <see cref="M:RT.Util.SettingsThreadedBase.SaveThreaded(System.String,System.Nullable{RT.Util.SettingsSerializer})"/> is called.</summary>
        </member>
        <member name="M:RT.Util.SettingsThreadedBase.SaveThreaded(System.String,System.Nullable{RT.Util.SettingsSerializer})">
            <summary>
                <para>
                    Saves the settings. Intended for frequent use at any point where it would make sense to commit settings,
                    but would not make sense to bug the user about any failures. This method is like <see cref="M:RT.Util.SettingsBase.SaveQuiet(System.String,System.Nullable{RT.Util.SettingsSerializer})"/>, except that the actual save occurs slightly later on a separate thread.
                    The method returns as soon as <see cref="M:RT.Util.SettingsThreadedBase.CloneForSaveThreaded"/> returns.</para>
                <para>
                    Note that this method is NOT guaranteed to save settings, but it usually will. Make sure you call <see cref="M:RT.Util.SettingsBase.Save(System.String,System.Nullable{RT.Util.SettingsSerializer},RT.Util.SettingsOnFailure)"/> when you want to guarantee a save, especially just before the program
                    terminates.</para></summary>
        </member>
        <member name="T:RT.Util.SettingsKind">
            <summary>Determines what the settings in the settings file are logically "attached" to.</summary>
        </member>
        <member name="F:RT.Util.SettingsKind.MachineSpecific">
            <summary>
                These settings are specific to a particular computer. In normal mode: shared among all user accounts, and do
                not roam. In portable mode: separate settings stored for every machine name; user account doesn't matter.</summary>
        </member>
        <member name="F:RT.Util.SettingsKind.UserSpecific">
            <summary>
                These settings are specific to a particular user. In normal mode: separate settings for each user account;
                will roam to other machines if roaming is configured. In portable mode: always shared; user account and
                machine name do not matter.</summary>
        </member>
        <member name="F:RT.Util.SettingsKind.UserAndMachineSpecific">
            <summary>
                These settings are specific to a particular combination of user and machine. In normal mode: separate settings
                for each user account on each machine; will not roam. In portable mode: separate settings stored for every
                machine name; user account doesn't matter.</summary>
        </member>
        <member name="F:RT.Util.SettingsKind.Global">
            <summary>
                These settings are intended to be global, with constraints imposed by reality. In normal mode: shared among
                all user accounts, and do not roam. In portable mode: always shared; user account and machine name do not
                matter.</summary>
        </member>
        <member name="T:RT.Util.SettingsOnFailure">
            <summary>Specifies what to do in case of operation failing.</summary>
        </member>
        <member name="F:RT.Util.SettingsOnFailure.DoNothing">
            <summary>Just ignore the failure: no exceptions thrown, no dialogs shown</summary>
        </member>
        <member name="F:RT.Util.SettingsOnFailure.Throw">
            <summary>Throw an exception in case of failure</summary>
        </member>
        <member name="F:RT.Util.SettingsOnFailure.ShowRetryOnly">
            <summary>Ask the user to retry or to skip operation. No exceptions thrown.</summary>
        </member>
        <member name="F:RT.Util.SettingsOnFailure.ShowRetryWithCancel">
            <summary>Ask the user to retry, skip operation or cancel. <see cref="T:RT.Util.SettingsCancelException"/> thrown on cancel.</summary>
        </member>
        <member name="T:RT.Util.SettingsSerializer">
            <summary>Determines which serializer the settings are read/written by.</summary>
        </member>
        <member name="F:RT.Util.SettingsSerializer.XmlClassify">
            <summary>Use the XmlClassify serializer (obsolete).</summary>
        </member>
        <member name="F:RT.Util.SettingsSerializer.DotNetBinary">
            <summary>Use the .NET binary serializer.</summary>
        </member>
        <member name="F:RT.Util.SettingsSerializer.ClassifyXml">
            <summary>Use the Classify serializer with the XML format.</summary>
        </member>
        <member name="F:RT.Util.SettingsSerializer.ClassifyJson">
            <summary>Use the Classify serializer with the JSON format.</summary>
        </member>
        <member name="T:RT.Util.SettingsCancelException">
            <summary>Indicates that the user chose to cancel the current operation.</summary>
        </member>
        <member name="M:RT.Util.SettingsCancelException.#ctor">
            <summary>Creates an exception instance with the specified message.</summary>
        </member>
        <member name="T:RT.Util.SettingsAttribute">
            <summary>Describes the intended usage of a "settings" class to <see cref="T:RT.Util.SettingsUtil"/> methods.</summary>
        </member>
        <member name="M:RT.Util.SettingsAttribute.#ctor(System.String,RT.Util.SettingsKind,RT.Util.SettingsSerializer)">
            <summary>
                Creates an instance of this attribute.</summary>
            <param name="appName">
                The name of the settings file is formed from this <paramref name="appName"/> according to certain rules. This
                should be a string equal to the name of the application. Paths and extensions should be omitted. It is
                important to specify the same name for settings of different <paramref name="kind"/>, because this allows
                their portability to be controlled with the same {name}.IsPortable.txt file.</param>
            <param name="kind">
                Specifies what the settings in this settings class are logically "attached" to.</param>
            <param name="serializer">
                Specifies which serializer to use.</param>
        </member>
        <member name="M:RT.Util.SettingsAttribute.GetFileName">
            <summary>
                Returns the full path and file name that should be used to store the settings class marked with this
                attribute. Note that the return value may change depending on external factors (see remarks). The recommended
                approach is to load settings once, and then save them whenever necessary to whichever path is returned by this
                function.</summary>
            <remarks>
                This method checks if a file by the name <c>(AppName).IsPortable.txt</c> exists in the application path (see
                <see cref="P:RT.Util.PathUtil.AppPath"/>). If that file exists, the settings are always stored in that application path.
                This check is skipped if there is no entry assembly (<see cref="M:System.Reflection.Assembly.GetEntryAssembly"/> is null).</remarks>
        </member>
        <member name="P:RT.Util.SettingsAttribute.AppName">
            <summary>
                The name of the settings file is formed from this <see cref="P:RT.Util.SettingsAttribute.AppName"/> according to certain rules. This
                should normally be a string equal to the name of the application. Paths and extensions should be omitted.</summary>
        </member>
        <member name="P:RT.Util.SettingsAttribute.Kind">
            <summary>Specifies what the settings in this settings class are logically "attached" to.</summary>
        </member>
        <member name="P:RT.Util.SettingsAttribute.Serializer">
            <summary>Specifies which serializer is used to read/write the settings file.</summary>
        </member>
        <member name="T:RT.Util.SoundPlayerAsync">
            <summary>The way SoundPlayer was meant to be, but someone screwed it up. This is the official MS workaround.</summary>
        </member>
        <member name="M:RT.Util.SoundPlayerAsync.#ctor(System.IO.Stream)">
            <summary>Creates a new player using the specified stream as the source of wave data to play.</summary>
        </member>
        <member name="M:RT.Util.SoundPlayerAsync.#ctor">
            <summary>Creates a new player.</summary>
        </member>
        <member name="M:RT.Util.SoundPlayerAsync.LoadStream(System.IO.Stream)">
            <summary>Loads the wave data to play from the specified stream. The stream can be closed immediately afterwards.</summary>
        </member>
        <member name="M:RT.Util.SoundPlayerAsync.Play">
            <summary>Plays the loaded file once, asynchronously.</summary>
        </member>
        <member name="M:RT.Util.SoundPlayerAsync.PlayLoop">
            <summary>Plays the loaded file forever in a loop, asynchronously. This class provides no methods for stopping this.</summary>
        </member>
        <member name="M:RT.Util.SoundPlayerAsync.Dispose">
            <summary>Disposes of the class</summary>
        </member>
        <member name="M:RT.Util.SoundPlayerAsync.Finalize">
            <summary>Destroys the class</summary>
        </member>
        <member name="P:RT.Util.SoundPlayerAsync.BytesToPlay">
            <summary>Gets or sets the bytes representing the wave data to be played.</summary>
        </member>
        <member name="T:RT.Util.Streams.ArithmeticCodingReader">
            <summary>
            Provides a read-only stream that can decompress data that was compressed using Arithmetic Coding.
            </summary>
            <seealso cref="T:RT.Util.Streams.ArithmeticCodingWriter"/>
        </member>
        <member name="F:RT.Util.Streams.ArithmeticCodingReader.END_OF_STREAM">
            <summary>
            Encapsulates a symbol that represents the end of the stream. All other symbols are byte values.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.ArithmeticCodingReader.#ctor(System.IO.Stream,System.UInt64[])">
            <summary>
            Initialises an <see cref="T:RT.Util.Streams.ArithmeticCodingReader"/> instance given a base stream and a set of byte probabilities.
            </summary>
            <param name="basestr">The base stream to which the compressed data will be written.</param>
            <param name="probabilities">The probability of each byte occurring. Can be null, in which
            case all bytes are assumed to have the same probability. The set of probabilities must be
            exactly the same as the one used when the data was written using <see cref="T:RT.Util.Streams.ArithmeticCodingWriter"/>.</param>
        </member>
        <member name="M:RT.Util.Streams.ArithmeticCodingReader.ReadSymbol">
            <summary>
            Reads a single symbol. Use this if you are not using bytes as your symbol alphabet.
            </summary>
            <returns>Symbol read.</returns>
        </member>
        <member name="T:RT.Util.Streams.ArithmeticCodingWriter">
            <summary>
            Provides a write-only stream that can compress data using Arithmetic Coding.
            </summary>
            <seealso cref="T:RT.Util.Streams.ArithmeticCodingReader"/>
        </member>
        <member name="F:RT.Util.Streams.ArithmeticCodingWriter.END_OF_STREAM">
            <summary>
            Encapsulates a symbol that represents the end of the stream. All other symbols are byte values.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.ArithmeticCodingWriter.#ctor(System.IO.Stream,System.UInt64[])">
            <summary>
            Initialises an <see cref="T:RT.Util.Streams.ArithmeticCodingWriter"/> instance given a base stream and a set of byte probabilities.
            </summary>
            <param name="basestr">The base stream to which the compressed data will be written.</param>
            <param name="probabilities">The probability of each byte occurring. Can be null, in which 
            case all bytes are assumed to have the same probability. When reading the data back using
            an <see cref="T:RT.Util.Streams.ArithmeticCodingReader"/>, the set of probabilities must be exactly the same.</param>
            <remarks>The compressed data will not be complete until the stream is closed using <see cref="M:RT.Util.Streams.ArithmeticCodingWriter.Close"/>.</remarks>
        </member>
        <member name="M:RT.Util.Streams.ArithmeticCodingWriter.WriteSymbol(System.Int32)">
            <summary>
            Writes a single symbol. Use this if you are not using bytes as your symbol alphabet.
            </summary>
            <param name="p">Symbol to write. Must be an integer between 0 and the length of the probabilities array passed in the constructor.</param>
        </member>
        <member name="M:RT.Util.Streams.ArithmeticCodingWriter.Close(System.Boolean)">
            <summary>
            Closes the stream, optionally writing an end-of-stream symbol first. The end-of-stream symbol
            has the numeric value 257, which is useful only if you have 256 symbols or fewer. If you intend
            to use a larger symbol alphabet, write your own end-of-stream symbol and then invoke Close(false).
            </summary>
            <param name="writeEndOfStreamSymbol">Determines whether to write the end-of-stream symbol or not.</param>
        </member>
        <member name="M:RT.Util.Streams.ArithmeticCodingWriter.TweakProbabilities(System.UInt64[])">
            <summary>
            Changes the probabilities of the symbols. This can be used at any point in the middle of encoding,
            as long as the same change is made at the same time when decoding using <see cref="T:RT.Util.Streams.ArithmeticCodingReader"/>.
            </summary>
            <param name="newProbs"></param>
        </member>
        <member name="T:RT.Util.Streams.CRC32Stream">
            <summary>
            Calculates CRC32 checksum of all values that are read/written via this stream.
            Seeking is ignored. All the bytes seeked over will be ignored.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.CRC32Stream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads a chunk of bytes from the underlying stream. Updates the CRC with the
            data read.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.CRC32Stream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Writes a chunk of bytes to the underlying stream. Updates the CRC with the
            data written.
            </summary>
        </member>
        <member name="P:RT.Util.Streams.CRC32Stream.BaseStream">
            <summary>
            The underlying stream to/from which writing/reading is performed.
            </summary>
        </member>
        <member name="P:RT.Util.Streams.CRC32Stream.CRC">
            <summary>
            Gets the current value of the CRC32 for all the bytes that passed through this stream.
            </summary>
        </member>
        <member name="T:RT.Util.Streams.DynamicContentStream">
            <summary>
            Provides a read-only stream that can “read from” an <c>IEnumerable&lt;string&gt;</c> or <c>IEnumerable&lt;byte[]&gt;</c>.
            In particular, an intended application is to “read from” a method that uses <c>yield return</c> to return strings or data as execution proceeds.
            This enables generation of, for example, HTML for dynamic web pages.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.DynamicContentStream.#ctor(System.Collections.Generic.IEnumerable{System.String},System.Boolean)">
            <summary>Instantiates a <see cref="T:RT.Util.Streams.DynamicContentStream"/> that reads strings (which are converted to UTF-8)
            and lets you configure whether it’s buffered or not.</summary>
            <param name="enumerable">The object that provides the content for this stream to read from.</param>
            <param name="buffered">Provides an initial value for the <see cref="P:RT.Util.Streams.DynamicContentStream.Buffered"/> property.</param>
        </member>
        <member name="M:RT.Util.Streams.DynamicContentStream.#ctor(System.Collections.Generic.IEnumerable{System.Byte[]},System.Boolean)">
            <summary>Instantiates a <see cref="T:RT.Util.Streams.DynamicContentStream"/> that reads raw bytes
            and lets you configure whether it’s buffered or not.</summary>
            <param name="enumerable">The object that provides the content for this stream to read from.</param>
            <param name="buffered">Provides an initial value for the <see cref="P:RT.Util.Streams.DynamicContentStream.Buffered"/> property.</param>
        </member>
        <member name="M:RT.Util.Streams.DynamicContentStream.Dispose(System.Boolean)">
            <summary>Releases the unmanaged resources used by this stream and optionally releases the managed resources.</summary>
        </member>
        <member name="M:RT.Util.Streams.DynamicContentStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads some text or data into the specified buffer. The behaviour depends on the <see cref="P:RT.Util.Streams.DynamicContentStream.Buffered"/> property.
            The bytes returned respresent the text or data returned by the underlying enumerator. In the case of UTF-8-encoded
            text, DynamicContentStream may potentially return incomplete multi-byte sequences; however, all output will be
            valid UTF-8 when concatenated.
            </summary>
            <param name="buffer">The buffer to copy the data into.</param>
            <param name="offset">The offset at which to start copying into buffer.</param>
            <param name="count">The maximum number of bytes to copy. The stream may return less than this.</param>
            <returns>The number of bytes actually copied into the buffer.</returns>
        </member>
        <member name="P:RT.Util.Streams.DynamicContentStream.Buffered">
            <summary>
            If true, each call to <see cref="M:RT.Util.Streams.DynamicContentStream.Read(System.Byte[],System.Int32,System.Int32)"/> will move the enumerator forward as far as necessary to fill the buffer.
            If false, each call to <see cref="M:RT.Util.Streams.DynamicContentStream.Read(System.Byte[],System.Int32,System.Int32)"/> returns only the text produced by a single MoveNext() of the enumerator.
            </summary>
        </member>
        <member name="T:RT.Util.Streams.RSyncChecksumCalculator">
            <summary>
            Calculates RSync checksums over bytes.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.RSyncChecksumCalculator.#ctor(System.Int32)">
            <summary>
            Initialises the checksum calculator. Window Size determines the number of bytes
            which are hashed (see rsync algorithm details if this is unclear).
            </summary>
        </member>
        <member name="M:RT.Util.Streams.RSyncChecksumCalculator.ProcessBytes(System.Byte[])">
            <summary>
            Passes all bytes in the array through the rsync hash algorithm.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.RSyncChecksumCalculator.ProcessBytes(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Passes the specified bytes in the array through the rsync hash algorithm.
            </summary>
        </member>
        <member name="P:RT.Util.Streams.RSyncChecksumCalculator.CurrentChecksum">
            <summary>
            Returns the rsync checksum calculated so far.
            </summary>
        </member>
        <member name="P:RT.Util.Streams.RSyncChecksumCalculator.CurrentChecksumBytes">
            <summary>
            Returns the rsync checksum calculated so far.
            </summary>
        </member>
        <member name="T:RT.Util.Streams.RSyncChecksumCalculatorTimwi">
            <summary>
            Timwi's version of the RSync checksum calculator. Based on the generic queue class.
            May or may not be noticeably slower than the much longer version above.
            </summary>
        </member>
        <member name="T:RT.Util.Streams.RSyncChecksumStream">
            <summary>
            Calculates rsync checksum of all values that are read/written via this stream.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.RSyncChecksumStream.#ctor(System.IO.Stream,System.Int32)">
            <summary>
            Initialises an rsync calculation stream using the specified stream as the
            underlying stream and the specified rsync window size (number of bytes)
            </summary>
        </member>
        <member name="M:RT.Util.Streams.RSyncChecksumStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            Seeking is ignored (but propagated to the underlying stream).
            All the bytes seeked over will be ignored.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.RSyncChecksumStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads data from the underlying stream. Updates the RSync with the bytes read.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.RSyncChecksumStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Writes data to the underlying stream. Updates the RSync with the bytes written.
            </summary>
        </member>
        <member name="P:RT.Util.Streams.RSyncChecksumStream.BaseStream">
            <summary>
            This is the underlying stream. All reads/writes and most other operations
            on this class are performed on this underlying stream.
            </summary>
        </member>
        <member name="P:RT.Util.Streams.RSyncChecksumStream.CurrentChecksum">
            <summary>
            Returns the rsync checksum calculated so far for all the bytes read/written.
            </summary>
        </member>
        <member name="P:RT.Util.Streams.RSyncChecksumStream.CurrentChecksumBytes">
            <summary>
            Returns the rsync checksum calculated so far for all the bytes read/written.
            </summary>
        </member>
        <member name="T:RT.Util.Streams.SlowStream">
            <summary>
            Provides methods to read from a stream in small chunks at a time. Optionally suspends
            the thread for a specified interval on every chunk.
            </summary>
        </member>
        <member name="M:RT.Util.Streams.SlowStream.#ctor(System.IO.Stream,System.Int32)">
            <summary>Initialises a new SlowStream instance.</summary>
            <param name="stream">The underlying stream to read in chunks from.</param>
            <param name="chunkSize">The number of bytes to read per chunk. Defaults to 1 KB.</param>
        </member>
        <member name="M:RT.Util.Streams.SlowStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>Reads at most <see cref="P:RT.Util.Streams.SlowStream.ChunkSize"/> bytes from the underlying stream.</summary>
            <param name="buffer">Buffer to store results into.</param>
            <param name="offset">Offset in buffer to store results at.</param>
            <param name="count">Maximum number of bytes to read.</param>
            <returns>Number of bytes read.</returns>
        </member>
        <member name="P:RT.Util.Streams.SlowStream.ChunkSize">
            <summary>Gets or sets the current chunk size (number of bytes read at a time).</summary>
        </member>
        <member name="P:RT.Util.Streams.SlowStream.SleepInterval">
            <summary>Gets or sets the current interval, in ms, for which the reading thread is suspended on every chunk. Defaults to 0, which means no delay.</summary>
        </member>
        <member name="T:RT.Util.Streams.VoidStream">
            <summary>
            A stream that discards everything that goes in; all reads result in 0's.
            Can be used as the underlying stream for things like <see cref="T:RT.Util.Streams.CRC32Stream"/>.
            Pretends to be a zero-length stream that can swallow writes and length changes.
            </summary>
        </member>
        <member name="T:RT.Util.EnumStrong">
            <summary>
            Provides generic versions of some of the static methods of the <see cref="T:System.Enum"/> class.
            </summary>
        </member>
        <member name="M:RT.Util.EnumStrong.Parse``1(System.String)">
            <summary>Returns the enum value corresponding to the specified string.</summary>
            <typeparam name="T">The enum type from which to retrieve the value.</typeparam>
            <param name="value">The string value for which to return the corresponding enum value.</param>
        </member>
        <member name="M:RT.Util.EnumStrong.Parse``1(System.String,System.Boolean)">
            <summary>Returns the enum value corresponding to the specified string.</summary>
            <typeparam name="T">The enum type from which to retrieve the value.</typeparam>
            <param name="value">A string containing the name or value to convert.</param>
            <param name="ignoreCase">If true, ignore case; otherwise, regard case.</param>
        </member>
        <member name="M:RT.Util.EnumStrong.TryParse``1(System.String,``0@)">
            <summary>Finds the enum value corresponding to the specified string.</summary>
            <typeparam name="T">The enum type from which to retrieve the value.</typeparam>
            <param name="value">A string containing the name or value to convert.</param>
            <param name="result">Variable receiving the converted value.</param>
            <returns>True if the value was successfully converted; false otherwise.</returns>
        </member>
        <member name="M:RT.Util.EnumStrong.TryParse``1(System.String,``0@,System.Boolean)">
            <summary>Finds the enum value corresponding to the specified string.</summary>
            <typeparam name="T">The enum type from which to retrieve the value.</typeparam>
            <param name="value">A string containing the name or value to convert.</param>
            <param name="result">Variable receiving the converted value.</param>
            <param name="ignoreCase">If true, ignore case; otherwise, regard case.</param>
            <returns>True if the value was successfully converted; false otherwise.</returns>
        </member>
        <member name="M:RT.Util.EnumStrong.TryParse``1(System.String)">
            <summary>Finds the enum value corresponding to the specified string.</summary>
            <typeparam name="T">The enum type from which to retrieve the value.</typeparam>
            <param name="value">A string containing the name or value to convert.</param>
            <returns>The value if it was successfully converted; null otherwise.</returns>
        </member>
        <member name="M:RT.Util.EnumStrong.TryParse``1(System.String,System.Boolean)">
            <summary>Finds the enum value corresponding to the specified string.</summary>
            <typeparam name="T">The enum type from which to retrieve the value.</typeparam>
            <param name="value">A string containing the name or value to convert.</param>
            <param name="ignoreCase">If true, ignore case; otherwise, regard case.</param>
            <returns>The value if it was successfully converted; null otherwise.</returns>
        </member>
        <member name="M:RT.Util.EnumStrong.GetValues``1">
            <summary>Returns the set of enum values from the specified enum type.</summary>
            <typeparam name="T">The enum type from which to retrieve the values.</typeparam>
            <returns>A strongly-typed array containing the enum values from the specified type.</returns>
        </member>
        <member name="T:RT.Util.Text.TextTable">
            <summary>
            Produces a table in a fixed-width character environment.
            </summary>
        </member>
        <member name="M:RT.Util.Text.TextTable.SetCell(System.Int32,System.Int32,System.String,System.Int32,System.Int32,System.Boolean,System.Nullable{RT.Util.Text.TextTable.Alignment})">
            <summary>Places the specified content into the cell at the specified co-ordinates.</summary>
            <param name="col">Column where to place the content.</param>
            <param name="row">Row where to place the content.</param>
            <param name="content">The content to place.</param>
            <param name="colSpan">The number of columns to span.</param>
            <param name="rowSpan">The number of rows to span.</param>
            <param name="noWrap">If true, indicates that this cell should not be automatically word-wrapped except at explicit newlines in <paramref name="content"/>. 
            The cell is word-wrapped only if doing so is necessary to fit all no-wrap cells into the table's total width. If false, the cell is automatically word-wrapped to optimise the table's layout.</param>
            <param name="alignment">How to align the contents within the cell, or null to use <see cref="P:RT.Util.Text.TextTable.DefaultAlignment"/>.</param>
        </member>
        <member name="M:RT.Util.Text.TextTable.SetCell(System.Int32,System.Int32,RT.Util.Consoles.ConsoleColoredString,System.Int32,System.Int32,System.Boolean,System.Nullable{RT.Util.Text.TextTable.Alignment})">
            <summary>Places the specified content into the cell at the specified co-ordinates.</summary>
            <param name="col">Column where to place the content.</param>
            <param name="row">Row where to place the content.</param>
            <param name="content">The content to place.</param>
            <param name="colSpan">The number of columns to span.</param>
            <param name="rowSpan">The number of rows to span.</param>
            <param name="noWrap">If true, indicates that this cell should not be automatically word-wrapped except at explicit newlines in <paramref name="content"/>. 
            The cell is word-wrapped only if doing so is necessary to fit all no-wrap cells into the table's total width. If false, the cell is automatically word-wrapped to optimise the table's layout.</param>
            <param name="alignment">How to align the contents within the cell, or null to use <see cref="P:RT.Util.Text.TextTable.DefaultAlignment"/>.</param>
        </member>
        <member name="M:RT.Util.Text.TextTable.ToString">
            <summary>Generates the table.</summary>
            <returns>The complete rendered table as a single string.</returns>
        </member>
        <member name="M:RT.Util.Text.TextTable.ToColoredString">
            <summary>Generates the table.</summary>
            <returns>The complete rendered table as a single <see cref="T:RT.Util.Consoles.ConsoleColoredString"/>.</returns>
        </member>
        <member name="M:RT.Util.Text.TextTable.WriteToConsole">
            <summary>Outputs the entire table to the console.</summary>
        </member>
        <member name="M:RT.Util.Text.TextTable.RemoveEmptyColumns">
            <summary>Removes columns that contain only empty cells. Subsequent columns are moved to the left accordingly.</summary>
        </member>
        <member name="M:RT.Util.Text.TextTable.AddRow(System.String[])">
            <summary>Adds a new row to the end of the table, using default cell settings for each cell.</summary>
            <param name="values">Values to add, one for each column.</param>
        </member>
        <member name="P:RT.Util.Text.TextTable.ColumnSpacing">
            <summary>Gets or sets the number of characters to space each column apart from the next.</summary>
        </member>
        <member name="P:RT.Util.Text.TextTable.RowSpacing">
            <summary>Gets or sets the number of characters to space each row apart from the next.</summary>
        </member>
        <member name="P:RT.Util.Text.TextTable.MaxWidth">
            <summary>Gets or sets the maximum width of the table, including all column spacing. If <see cref="P:RT.Util.Text.TextTable.UseFullWidth"/> is false, the table may be narrower. If this is null, the table width depends on which method is used to generate it.</summary>
        </member>
        <member name="P:RT.Util.Text.TextTable.HorizontalRules">
            <summary>Gets or sets a value indicating whether horizontal rules are rendered between rows. The horizontal rules are rendered only if <see cref="P:RT.Util.Text.TextTable.RowSpacing"/> is greater than zero.</summary>
        </member>
        <member name="P:RT.Util.Text.TextTable.VerticalRules">
            <summary>Gets or sets a value indicating whether vertical rules are rendered between columns. The vertical rules are rendered only if <see cref="P:RT.Util.Text.TextTable.ColumnSpacing"/> is greater than zero.</summary>
        </member>
        <member name="P:RT.Util.Text.TextTable.HeaderRows">
            <summary>Gets or sets a value indicating the number of rows from the top that are considered table headers. The only effect of this is that the horizontal rule (if any) after the header rows is rendered using '=' characters instead of '-'.</summary>
        </member>
        <member name="P:RT.Util.Text.TextTable.UseFullWidth">
            <summary>If true, the table will be expanded to fill the <see cref="P:RT.Util.Text.TextTable.MaxWidth"/>. If false, the table will fill the whole width only if any cells need to be word-wrapped.</summary>
        </member>
        <member name="P:RT.Util.Text.TextTable.DefaultAlignment">
            <summary>Specifies the default alignment to use for cells where the alignment is not explicitly set. Default is <see cref="F:RT.Util.Text.TextTable.Alignment.Left"/>.</summary>
        </member>
        <member name="P:RT.Util.Text.TextTable.LeftMargin">
            <summary>Gets or sets a value indicating the number of spaces to add left of the table. This does not count towards the <see cref="P:RT.Util.Text.TextTable.MaxWidth"/>.</summary>
        </member>
        <member name="T:RT.Util.Text.TextTable.Alignment">
            <summary>Provides values to change the horizontal alignment of text within cells.</summary>
        </member>
        <member name="F:RT.Util.Text.TextTable.Alignment.Left">
            <summary>Specifies alignment to the left edge of each cell.</summary>
        </member>
        <member name="F:RT.Util.Text.TextTable.Alignment.Center">
            <summary>Specifies horizontally centered alignment.</summary>
        </member>
        <member name="F:RT.Util.Text.TextTable.Alignment.Right">
            <summary>Specifies alignment to the right edge of each cell.</summary>
        </member>
        <member name="T:RT.Util.DiffOp">
            <summary>Indicates insertions and deletions in the output of <see cref="M:RT.Util.Ut.Diff``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0},System.Func{``0,System.Boolean},System.Func{System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{System.Tuple{``0,RT.Util.DiffOp}}})"/>.</summary>
        </member>
        <member name="F:RT.Util.DiffOp.Del">
            <summary>Indicates that the relevant item has been deleted.</summary>
        </member>
        <member name="F:RT.Util.DiffOp.None">
            <summary>Indicates that the relevant item has not changed.</summary>
        </member>
        <member name="F:RT.Util.DiffOp.Ins">
            <summary>Indicates that the relevant item has been inserted.</summary>
        </member>
        <member name="T:RT.Util.Rnd">
            <summary>This class offers static functions which generate random numbers in a thread-safe manner.</summary>
        </member>
        <member name="M:RT.Util.Rnd.Reset(System.Int32)">
            <summary>Resets the random number generator using the specified <paramref name="seed"/>.</summary>
        </member>
        <member name="M:RT.Util.Rnd.NextDouble">
            <summary>Returns a random double between 0.0 and 1.0.</summary>
        </member>
        <member name="M:RT.Util.Rnd.NextDouble(System.Double,System.Double)">
            <summary>
                Returns a random double between <paramref name="min"/> and <paramref name="max"/>. It is unclear whether
                <paramref name="min"/> or <paramref name="max"/> can ever be returned.</summary>
        </member>
        <member name="M:RT.Util.Rnd.Next">
            <summary>Returns a random non-negative integer.</summary>
        </member>
        <member name="M:RT.Util.Rnd.Next(System.Int32)">
            <summary>Returns a non-negative random number less than <paramref name="max"/>.</summary>
        </member>
        <member name="M:RT.Util.Rnd.Next(System.Int32,System.Int32)">
            <summary>
                Returns a random integer between <paramref name="min"/> (inclusive) and <paramref name="max"/> (exclusive).</summary>
        </member>
        <member name="M:RT.Util.Rnd.NextBoolean">
            <summary>Returns a random boolean.</summary>
        </member>
        <member name="M:RT.Util.Rnd.NextBytes(System.Byte[])">
            <summary>Fills the specified buffer with random bytes.</summary>
        </member>
        <member name="M:RT.Util.Rnd.NextBytes(System.Int32)">
            <summary>Returns a new array with the specified number of elements, filled with random bytes.</summary>
        </member>
        <member name="M:RT.Util.Rnd.NextLong">
            <summary>Returns a random non-negative 64-bit integer.</summary>
        </member>
        <member name="M:RT.Util.Rnd.GenerateString(System.Int32,System.String,System.Random)">
            <summary>
                Generates a random string of the specified length, taking characters from the specified arsenal of characters.</summary>
            <param name="length">
                Length of the string to generate.</param>
            <param name="takeCharactersFrom">
                Arsenal to take random characters from. (Default is upper- and lower-case letters and digits.)</param>
            <param name="rnd">
                If not <c>null</c>, uses the specified random number generator.</param>
        </member>
        <member name="T:RT.Util.RndCrypto">
            <summary>
                This class offers static functions which generate cryptographically-strong random numbers in a thread-safe manner.</summary>
        </member>
        <member name="F:RT.Util.RndCrypto._rnd">
            <summary>This class is documented to be completely thread-safe, so no locking is required.</summary>
        </member>
        <member name="M:RT.Util.RndCrypto.NextBytes(System.Byte[])">
            <summary>Fills the specified buffer with cryptographically-strong random bytes.</summary>
        </member>
        <member name="M:RT.Util.RndCrypto.NextBytes(System.Int32)">
            <summary>
                Returns a new array with the specified number of elements, filled with cryptographically-strong random bytes.</summary>
        </member>
        <member name="M:RT.Util.RndCrypto.Next">
            <summary>Returns a random non-negative integer.</summary>
        </member>
        <member name="M:RT.Util.RndCrypto.Next(System.Int32)">
            <summary>Returns a non-negative random number less than <paramref name="max"/>.</summary>
        </member>
        <member name="M:RT.Util.RndCrypto.Next(System.Int32,System.Int32)">
            <summary>
                Returns a random integer between <paramref name="min"/> (inclusive) and <paramref name="max"/> (exclusive).</summary>
        </member>
        <member name="M:RT.Util.RndCrypto.NextLong">
            <summary>Returns a random non-negative 64-bit integer.</summary>
        </member>
        <member name="M:RT.Util.RndCrypto.NextDouble">
            <summary>Returns a random double between 0.0 and 1.0.</summary>
        </member>
        <member name="M:RT.Util.RndCrypto.NextDouble(System.Double,System.Double)">
            <summary>
                Returns a random double between <paramref name="min"/> and <paramref name="max"/>. It is unclear whether
                <paramref name="min"/> or <paramref name="max"/> can ever be returned.</summary>
        </member>
        <member name="M:RT.Util.RndCrypto.NextBoolean">
            <summary>Returns a random boolean.</summary>
        </member>
        <member name="M:RT.Util.RndCrypto.GenerateString(System.Int32,System.String)">
            <summary>
                Generates a random string of the specified length, taking characters from the specified arsenal of characters.</summary>
            <param name="length">
                Length of the string to generate.</param>
            <param name="takeCharactersFrom">
                Arsenal to take random characters from. (Default is upper- and lower-case letters and digits.)</param>
        </member>
        <member name="T:RT.Util.TicTocCycles">
            <summary>
                Provides a more accurate way to measure the amount of CPU time consumed by a thread, using the new
                QueryThreadCycleTime call introduced in Vista. Unlike <see cref="M:RT.Util.Ut.Tic"/>, this measures in unspecified units, and
                only counts the times when this thread is actually in possession of a CPU time slice.</summary>
        </member>
        <member name="M:RT.Util.TicTocCycles.#ctor">
            <summary>
                Constructor. For the results to be valid, this class must be instantiated on the same thread on which the
                measurements are to be made.</summary>
        </member>
        <member name="M:RT.Util.TicTocCycles.Tic">
            <summary>Indicates the start of a measurement interval.</summary>
        </member>
        <member name="M:RT.Util.TicTocCycles.Toc">
            <summary>
                Indicates the end of a measurement interval. Returns the amount of CPU time consumed by _this thread only_ since
                the last call to <see cref="M:RT.Util.TicTocCycles.Tic"/>.</summary>
        </member>
        <member name="T:RT.Util.Waiter">
            <summary>
                Helps limit the rate of an action to be within all of the defined rate limits, by suspending the calling thread until
                the action may be executed without exceeding any of the limits. Warning: this class is not thread-safe!</summary>
        </member>
        <member name="F:RT.Util.Waiter.Limits">
            <summary>A list of limits to be observed. The waiter will ensure that *all* of these limits are satisfied.</summary>
        </member>
        <member name="M:RT.Util.Waiter.#ctor(RT.Util.WaiterLimit[])">
            <summary>
                Constructor.</summary>
            <param name="limits">
                The limits to be observed.</param>
        </member>
        <member name="M:RT.Util.Waiter.#ctor(RT.Util.LoggerBase,RT.Util.WaiterLimit[])">
            <summary>
                Constructor.</summary>
            <param name="log">
                Whenever a wait is triggered, a warning is reported through this logger.</param>
            <param name="limits">
                The limits to be observed.</param>
        </member>
        <member name="M:RT.Util.Waiter.WaitIfNecessary">
            <summary>
                Call this method every time before performing the limited action. If the action would exceed any of the limits,
                the call will block until the action can be performed without exceeding any limits.</summary>
        </member>
        <member name="P:RT.Util.Waiter.Log">
            <summary>Whenever a wait is triggered, a warning is reported through this logger.</summary>
        </member>
        <member name="T:RT.Util.WaiterLimit">
            <summary>
                Defines a rate limit for use with <see cref="T:RT.Util.Waiter"/>, as an absolute maximum number of occurrences permitted in the
                specified time interval.</summary>
        </member>
        <member name="M:RT.Util.WaiterLimit.#ctor(System.TimeSpan,System.Int32)">
            <summary>
                Constructor.</summary>
            <param name="interval">
                Time interval to which the limit applies.</param>
            <param name="maxOccurrences">
                Maximum number of occurrences allowed per time interval.</param>
        </member>
        <member name="P:RT.Util.WaiterLimit.Interval">
            <summary>Time interval to which the limit applies.</summary>
        </member>
        <member name="P:RT.Util.WaiterLimit.MaxOccurrences">
            <summary>Maximum number of occurrences allowed per time interval.</summary>
        </member>
        <member name="T:RT.Util.WinAPI">
            <summary>WinAPI function wrappers</summary>
        </member>
        <member name="F:RT.Util.WinAPI.PerformanceFreq">
            <summary>
                This field is statically initialised by calling QueryPerformanceFrequency. It contains the frequency of the
                performance counter for the current system.</summary>
        </member>
        <member name="M:RT.Util.WinAPI.DisableGeneralProtectionFaultErrorBox">
            <summary>
                Normally an unhandled exception will result in Windows showing a generic error dialog, while keeping the process
                alive and stopped. This method will disable that: an unhandled exception will result in the process terminating
                quietly.</summary>
        </member>
        <member name="M:RT.Util.WinAPI.SetWindowsHookEx(System.Int32,RT.Util.WinAPI.KeyboardHookProc,System.IntPtr,System.UInt32)">
            <summary>
                Sets the windows hook, do the desired event, one of hInstance or threadId must be non-null</summary>
            <param name="idHook">
                The id of the event you want to hook</param>
            <param name="callback">
                The callback.</param>
            <param name="hInstance">
                The handle you want to attach the event to, can be null</param>
            <param name="threadId">
                The thread you want to attach the event to, can be null</param>
            <returns>
                a handle to the desired hook</returns>
        </member>
        <member name="M:RT.Util.WinAPI.UnhookWindowsHookEx(System.IntPtr)">
            <summary>
                Unhooks the windows hook.</summary>
            <param name="hInstance">
                The hook handle that was returned from SetWindowsHookEx</param>
            <returns>
                True if successful, false otherwise</returns>
        </member>
        <member name="M:RT.Util.WinAPI.CallNextHookEx(System.IntPtr,System.Int32,System.Int32,RT.Util.WinAPI.KeyboardHookStruct@)">
            <summary>
                Calls the next hook.</summary>
            <param name="idHook">
                The hook id</param>
            <param name="nCode">
                The hook code</param>
            <param name="wParam">
                The wparam.</param>
            <param name="lParam">
                The lparam.</param>
            <returns/>
        </member>
        <member name="M:RT.Util.WinAPI.LoadLibrary(System.String)">
            <summary>
                Loads the library.</summary>
            <param name="lpFileName">
                Name of the library</param>
            <returns>
                A handle to the library</returns>
        </member>
        <member name="M:RT.Util.WinAPI.GetConsoleWindow">
            <summary>
                Returns the window handle of the console window associated with the current process, or IntPtr.Zero if there is no
                console window.</summary>
        </member>
        <member name="M:RT.Util.WinAPI.ShowWindow(System.IntPtr,System.Int32)">
            <summary>
                Shows or hides the window identified by <paramref name="hWnd"/>. For <paramref name="nCmdShow"/>, use <see cref="F:RT.Util.WinAPI.SW_SHOW"/> et al.</summary>
        </member>
        <member name="M:RT.Util.WinAPI.GetFocusedControlInActiveWindow(System.IntPtr)">
            <summary>
                Retrieves the window handle of the focused control in the currently active window.</summary>
            <param name="ownHandle">
                The handle to one of your own windows.</param>
        </member>
        <member name="T:RT.Util.WinAPI.MessageBeepType">
            <summary>Specifies a sound to be played back when displaying a message dialog.</summary>
        </member>
        <member name="F:RT.Util.WinAPI.MessageBeepType.Default">
            <summary>Specifies the default sound.</summary>
        </member>
        <member name="F:RT.Util.WinAPI.MessageBeepType.Ok">
            <summary>Specifies the OK sound.</summary>
        </member>
        <member name="F:RT.Util.WinAPI.MessageBeepType.Error">
            <summary>Specifies the error sound.</summary>
        </member>
        <member name="F:RT.Util.WinAPI.MessageBeepType.Question">
            <summary>Specifies the question sound.</summary>
        </member>
        <member name="F:RT.Util.WinAPI.MessageBeepType.Warning">
            <summary>Specifies the warning sound.</summary>
        </member>
        <member name="F:RT.Util.WinAPI.MessageBeepType.Information">
            <summary>Specifies the information sound.</summary>
        </member>
        <member name="T:RT.Util.WinAPI.KeyboardHookProc">
            <summary>Defines the callback type for a keyboard hook procedure.</summary>
        </member>
        <member name="T:RT.Util.Xml.XmlClassify">
            <summary>
                This class is obsolete. Use <see cref="T:RT.Util.Serialization.Classify"/> instead. — Provides static methods to save
                objects of (almost) arbitrary classes into XML files and load them again. See the remarks section for features and
                limitations.</summary>
            <remarks>
                <para>
                    This class is obsolete. New code should use <see cref="T:RT.Util.Serialization.Classify"/> instead.</para>
                <para>
                    By default, XmlClassify persists the value of all instance fields, including private, inherited and
                    compiler-generated ones. It does not persist static members or the result of property getters. Each field is
                    persisted in an XML tag whose name is the field’s name minus any leading underscores. Compiler-generated fields
                    for automatically-implemented properties are instead persisted in an XML tag whose name is the
                    automatically-implemented property’s name minus any leading underscores.</para>
                <para>
                    Features:</para>
                <list type="bullet">
                    <item><description>
                        XmlClassify fully supports all the built-in types which are keywords in C# except ‘object’ and ‘dynamic’. It
                        also supports DateTime.</description></item>
                    <item><description>
                        XmlClassify fully supports classes and structs that contain only fields of the above types as well as fields
                        whose type is itself such a class or struct.</description></item>
                    <item><description>
                        XmlClassify has special handling for classes that implement IDictionary&lt;K, V&gt;, where V must be a type
                        also supported by XmlClassify. K must be string, an integer type, or an enum type. If the field is of a
                        concrete type, that type is maintained. If the field is of the interface type IDictionary&lt;K, V&gt; itself,
                        the type Dictionary&lt;K, V&gt; is used to reconstruct the object.</description></item>
                    <item><description>
                        XmlClassify has special handling for classes that implement ICollection&lt;T&gt;, where T must be a type also
                        supported by XmlClassify. If the field is of a concrete type, that type is maintained. If the field is of the
                        interface type ICollection&lt;T&gt; itself, the type List&lt;T&gt; is used to reconstruct the object. If the
                        type also implements IDictionary&lt;K, V&gt;, the special handling for that takes
                        precedence.</description></item>
                    <item><description>
                        XmlClassify handles the <see cref="T:System.Xml.Linq.XElement"/> type by persisting the XML directly.</description></item>
                    <item><description>
                        XmlClassify also supports <see cref="T:System.Collections.Generic.KeyValuePair`2"/> and all the different Tuple
                        types.</description></item>
                    <item><description>
                        For classes that don’t implement any of the above-mentioned interfaces, XmlClassify supports polymorphism. The
                        actual type of an instance is persisted if it is different from the declared type.</description></item>
                    <item><description>
                        XmlClassify supports auto-implemented properties. The XML tag’s name is the name of the property rather than
                        the hidden auto-generated field, although the field’s value is persisted. All other properties are
                        ignored.</description></item>
                    <item><description>
                        XmlClassify ignores the order of XML tags (except when handling collections and dictionaries). It uses tag
                        names to identify which tag belongs to which field.</description></item>
                    <item><description>
                        XmlClassify silently discards unrecognised XML tags instead of throwing errors. This is by design because it
                        enables the programmer to remove a field from a class without invalidating previously-saved XML
                        files.</description></item>
                    <item><description>
                        XmlClassify silently ignores missing XML tags. A field whose XML tag is missing retains the value assigned to
                        it by the parameterless constructor. This is by design because it enables the programmer to add a new field to
                        a class (and to specify a default initialisation value for it) without invalidating previously-saved XML
                        files.</description></item>
                    <item><description>
                        The following custom attributes can be used to alter XmlClassify’s behaviour. See the custom attribute class’s
                        documentation for more information: <see cref="T:RT.Util.Xml.XmlFollowIdAttribute"/>, <see cref="T:RT.Util.Xml.XmlIdAttribute"/>, <see cref="T:RT.Util.Xml.XmlIgnoreAttribute"/>, <see cref="T:RT.Util.Xml.XmlIgnoreIfAttribute"/>, <see cref="T:RT.Util.Xml.XmlIgnoreIfDefaultAttribute"/>,
                        <see cref="T:RT.Util.Xml.XmlIgnoreIfEmptyAttribute"/>, <see cref="T:RT.Util.Xml.XmlParentAttribute"/>. Any attribute that can be used on a
                        field, can equally well be used on an auto-implemented property, but not on any other
                        properties.</description></item>
                    <item><description>
                        XmlClassify maintains object identity and correctly handles cycles in the object graph (by using XML
                        attributes to refer to earlier tags).</description></item>
                    <item><description>
                        XmlClassify can make use of type substitutions. See <see cref="T:RT.Util.Xml.IXmlClassifySubstitute`2"/>
                        for more information.</description></item>
                    <item><description>
                        XmlClassify allows you to pre-/post-process the objects serialised by it. See <see cref="T:RT.Util.Xml.IXmlClassifyProcess"/> for more information.</description></item>
                    <item><description>
                        XmlClassify allows you to pre-/post-process the XML generated by it. See <see cref="T:RT.Util.Xml.IXmlClassifyProcessXml"/>
                        for more information.</description></item></list>
                <para>
                    Limitations:</para>
                <list type="bullet">
                    <item><description>
                        XmlClassify requires that every type involved have a parameterless constructor, although it need not be
                        public. This parameterless constructor is executed with all its side-effects before each object is
                        reconstructed.</description></item>
                    <item><description>
                        If a field is of type ICollection&lt;T&gt;, IList&lt;T&gt;, IDictionary&lt;K, V&gt;, or any class that
                        implements either of these, polymorphism is not supported, and nor is any information stored in those classes.
                        In particular, this means that the comparer used by a SortedDictionary&lt;K, V&gt; is not persisted. A
                        comparer assigned by the class’s parameterless constructor is also not
                        used.</description></item></list></remarks>
        </member>
        <member name="F:RT.Util.Xml.XmlClassify.DefaultOptions">
            <summary>
                Options used when null is passed to methods that take options. Make sure not to modify this instance if any thread
                in the application might be in the middle of using <see cref="T:RT.Util.Xml.XmlClassify"/>; ideally the options shoud be set
                once during startup and never changed after that.</summary>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.LoadObjectFromXmlFile``1(System.String,RT.Util.Xml.XmlClassifyOptions)">
            <summary>
                Reads an object of the specified type from the specified XML file.</summary>
            <typeparam name="T">
                Type of object to read.</typeparam>
            <param name="filename">
                Path and filename of the XML file to read from.</param>
            <param name="options">
                Options.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.LoadObjectFromXmlFile(System.Type,System.String,RT.Util.Xml.XmlClassifyOptions,System.Object)">
            <summary>
                Reads an object of the specified type from the specified XML file.</summary>
            <param name="type">
                Type of object to read.</param>
            <param name="filename">
                Path and filename of the XML file to read from.</param>
            <param name="options">
                Options.</param>
            <param name="parent">
                If the class to be declassified has a field with the [XmlParent] attribute, that field will receive this
                object.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.ObjectFromXElement``1(System.Xml.Linq.XElement,RT.Util.Xml.XmlClassifyOptions)">
            <summary>
                Reconstructs an object of the specified type from the specified XML tree.</summary>
            <typeparam name="T">
                Type of object to reconstruct.</typeparam>
            <param name="elem">
                XML tree to reconstruct object from.</param>
            <param name="options">
                Options.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.ObjectFromXElement(System.Type,System.Xml.Linq.XElement,RT.Util.Xml.XmlClassifyOptions)">
            <summary>
                Reconstructs an object of the specified type from the specified XML tree.</summary>
            <param name="type">
                Type of object to reconstruct.</param>
            <param name="elem">
                XML tree to reconstruct object from.</param>
            <param name="options">
                Options.</param>
            <returns>
                A new instance of the requested type.</returns>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.XmlIntoObject``1(System.Xml.Linq.XElement,``0,RT.Util.Xml.XmlClassifyOptions)">
            <summary>
                Reconstructs an object of the specified type from the specified XML tree by applying the values to an existing
                instance of the type. Any objects contained within the object are instantiated anew; only the top-level object
                passed in is re-used.</summary>
            <typeparam name="T">
                Type of object to reconstruct.</typeparam>
            <param name="xml">
                XML tree to reconstruct object from.</param>
            <param name="intoObject">
                Object to assign values to in order to reconstruct the original object.</param>
            <param name="options">
                Options.</param>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.ReadXmlFileIntoObject(System.String,System.Object,RT.Util.Xml.XmlClassifyOptions)">
            <summary>
                Reconstructs an object from the specified XML file by applying the values to an existing instance of the desired
                type. Any objects contained within the object are instantiated anew; only the top-level object passed in is
                re-used. The type of object is inferred from the object passed in.</summary>
            <param name="filename">
                Path and filename of the XML file to read from.</param>
            <param name="intoObject">
                Object to assign values to in order to reconstruct the original object. Also determines the type of object
                expected from the XML.</param>
            <param name="options">
                Options.</param>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.SaveObjectToXmlFile``1(``0,System.String,RT.Util.Xml.XmlClassifyOptions)">
            <summary>
                Stores the specified object in an XML file with the given path and filename.</summary>
            <typeparam name="T">
                Type of the object to store.</typeparam>
            <param name="saveObject">
                Object to store in an XML file.</param>
            <param name="filename">
                Path and filename of the XML file to be created. If the file already exists, it is overwritten.</param>
            <param name="options">
                Options.</param>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.SaveObjectToXmlFile(System.Object,System.Type,System.String,RT.Util.Xml.XmlClassifyOptions)">
            <summary>
                Stores the specified object in an XML file with the given path and filename.</summary>
            <param name="saveObject">
                Object to store in an XML file.</param>
            <param name="saveType">
                Type of the object to store.</param>
            <param name="filename">
                Path and filename of the XML file to be created. If the file already exists, it is overwritten.</param>
            <param name="options">
                Options.</param>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.ObjectToXElement``1(``0,RT.Util.Xml.XmlClassifyOptions)">
            <summary>
                Converts the specified object into an XML tree.</summary>
            <typeparam name="T">
                Type of object to convert.</typeparam>
            <param name="saveObject">
                Object to convert to an XML tree.</param>
            <param name="options">
                Options.</param>
            <returns>
                XML tree generated from the object.</returns>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.ObjectToXElement(System.Type,System.Object,RT.Util.Xml.XmlClassifyOptions)">
            <summary>
                Converts the specified object into an XML tree.</summary>
            <param name="saveType">
                Type of object to convert.</param>
            <param name="saveObject">
                Object to convert to an XML tree.</param>
            <param name="options">
                Options.</param>
            <returns>
                XML tree generated from the object.</returns>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.PostBuildStep``1(RT.Util.IPostBuildReporter)">
            <summary>
                Performs safety checks to ensure that a specific type doesn't cause XmlClassify exceptions. Note that this doesn't
                guarantee that the data is preserved correctly. Run this method as a post-build step to ensure reliability of
                execution. For an example of use, see <see cref="M:RT.Util.Ut.RunPostBuildChecks(System.String,System.Reflection.Assembly[])"/>. This method is available only in DEBUG
                mode.</summary>
            <typeparam name="T">
                The type that must be XmlClassify-able.</typeparam>
            <param name="rep">
                Object to report post-build errors to.</param>
        </member>
        <member name="M:RT.Util.Xml.XmlClassify.PostBuildStep(System.Type,RT.Util.IPostBuildReporter)">
            <summary>
                Performs safety checks to ensure that a specific type doesn't cause XmlClassify exceptions. Note that this doesn't
                guarantee that the data is preserved correctly. Run this method as a post-build step to ensure reliability of
                execution. For an example of use, see <see cref="M:RT.Util.Ut.RunPostBuildChecks(System.String,System.Reflection.Assembly[])"/>. This method is available only in DEBUG
                mode.</summary>
            <param name="type">
                The type that must be XmlClassify-able.</param>
            <param name="rep">
                Object to report post-build errors to.</param>
        </member>
        <member name="T:RT.Util.Xml.IXmlClassifyProcess">
            <summary>
                Contains methods to process an object before <see cref="T:RT.Util.Xml.XmlClassify"/> turns it into XML or after it has restored it
                from XML. To have effect, this interface must be implemented by the object being serialised.</summary>
        </member>
        <member name="M:RT.Util.Xml.IXmlClassifyProcess.BeforeXmlClassify">
            <summary>
                Pre-processes this object before <see cref="T:RT.Util.Xml.XmlClassify"/> turns it into XML. This method is automatically invoked
                by <see cref="T:RT.Util.Xml.XmlClassify"/> and should not be called directly.</summary>
        </member>
        <member name="M:RT.Util.Xml.IXmlClassifyProcess.AfterXmlDeclassify">
            <summary>
                Post-processes this object after <see cref="T:RT.Util.Xml.XmlClassify"/> has restored it from XML. This method is automatically
                invoked by <see cref="T:RT.Util.Xml.XmlClassify"/> and should not be called directly.</summary>
        </member>
        <member name="T:RT.Util.Xml.IXmlClassifyProcess2">
            <summary>
                Contains methods to process an object and/or the associated XML before or after <see cref="T:RT.Util.Xml.XmlClassify"/>
                (de)serializes it. To have effect, this interface must be implemented by the object being serialised.</summary>
        </member>
        <member name="M:RT.Util.Xml.IXmlClassifyProcess2.BeforeXmlClassify(System.Xml.Linq.XElement)">
            <summary>
                Pre-processes this object before <see cref="T:RT.Util.Xml.XmlClassify"/> turns it into XML. This method is automatically invoked
                by <see cref="T:RT.Util.Xml.XmlClassify"/> and should not be called directly.</summary>
            <param name="xml">
                The (initially empty) XML element which will be populated once this class returns. Any changes made to it by the
                method may be either trampled upon the method's return, or conflict with <see cref="T:RT.Util.Xml.XmlClassify"/> changes and
                cause it to throw an exception.</param>
        </member>
        <member name="M:RT.Util.Xml.IXmlClassifyProcess2.AfterXmlClassify(System.Xml.Linq.XElement)">
            <summary>
                Post-processes the XML produced by <see cref="T:RT.Util.Xml.XmlClassify"/> for this object. This method is automatically invoked
                by <see cref="T:RT.Util.Xml.XmlClassify"/> and should not be called directly.</summary>
            <param name="xml">
                The XML element produced for this object. All changes made to it are final and will appear in <see cref="T:RT.Util.Xml.XmlClassify"/>'s output.</param>
        </member>
        <member name="M:RT.Util.Xml.IXmlClassifyProcess2.BeforeXmlDeclassify(System.Xml.Linq.XElement)">
            <summary>
                Pre-processes this object's XML before <see cref="T:RT.Util.Xml.XmlClassify"/> has restored it from XML. The object's fields
                have not yet been populated when this method is called. This method is automatically invoked by <see cref="T:RT.Util.Xml.XmlClassify"/> and should not be called directly.</summary>
            <param name="xml">
                The XML element from which this object is about to be restored. All changes made to it will affect how the object
                is restored from XML.</param>
        </member>
        <member name="M:RT.Util.Xml.IXmlClassifyProcess2.AfterXmlDeclassify(System.Xml.Linq.XElement)">
            <summary>
                Post-processes this object after <see cref="T:RT.Util.Xml.XmlClassify"/> has restored it from XML. This method is automatically
                invoked by <see cref="T:RT.Util.Xml.XmlClassify"/> and should not be called directly.</summary>
            <param name="xml">
                The XML element from which this object was restored. Changes made to this XML will have no effect as the XML is
                discarded afterwards.</param>
        </member>
        <member name="T:RT.Util.Xml.IXmlClassifyProcessXml">
            <summary>
                Allows a class to preprocess XML before declassifying, or postprocess the XML generated by XmlClassify after
                classifying. To have effect, this interface must be implemented by a class derived from <see cref="T:RT.Util.Xml.XmlClassifyTypeOptions"/> and associated with a type via <see cref="M:RT.Util.Xml.XmlClassifyOptions.AddTypeOptions(System.Type,RT.Util.Xml.XmlClassifyTypeOptions)"/>.</summary>
        </member>
        <member name="M:RT.Util.Xml.IXmlClassifyProcessXml.XmlPreprocess(System.Xml.Linq.XElement)">
            <summary>
                Pre-processes the provided XML before declassifying.</summary>
            <param name="xml">
                XML to preprocess.</param>
        </member>
        <member name="M:RT.Util.Xml.IXmlClassifyProcessXml.XmlPostprocess(System.Xml.Linq.XElement)">
            <summary>
                Post-processes the generated XML after classifying.</summary>
            <param name="xml">
                XML to postprocess.</param>
        </member>
        <member name="T:RT.Util.Xml.IXmlClassifySubstitute`2">
            <summary>
                Implement this interface in a subclass of <see cref="T:RT.Util.Xml.XmlClassifyTypeOptions"/> to specify how to substitute a type for
                another type during XmlClassify.</summary>
            <typeparam name="TTrue">
                The type that is actually used for instances in memory.</typeparam>
            <typeparam name="TSubstitute">
                The substitute type to be used for purposes of classifying and declassifying.</typeparam>
        </member>
        <member name="M:RT.Util.Xml.IXmlClassifySubstitute`2.ToSubstitute(`0)">
            <summary>
                Converts an instance of the “real” type to a substitute instance to be classified.</summary>
            <param name="instance">
                An instance of the “real” type to be substituted.</param>
            <returns>
                The converted object to use in classifying.</returns>
        </member>
        <member name="M:RT.Util.Xml.IXmlClassifySubstitute`2.FromSubstitute(`1)">
            <summary>
                Converts a substitute instance, generated by declassifying, back to the “real” type.</summary>
            <param name="instance">
                An instance of the substituted type, provided by XmlClassify.</param>
            <returns>
                The converted object to put into the real type.</returns>
        </member>
        <member name="T:RT.Util.Xml.XmlClassifyOptions">
            <summary>Specifies some options for use in XmlClassify.</summary>
        </member>
        <member name="F:RT.Util.Xml.XmlClassifyOptions.BaseDir">
            <summary>
                The base directory from which to construct the paths for additional XML files whenever a field has an <see cref="T:RT.Util.Xml.XmlFollowIdAttribute"/> attribute. Inferred automatically from filename if null.</summary>
        </member>
        <member name="F:RT.Util.Xml.XmlClassifyOptions.RootElementName">
            <summary>The name of the root element for classified objects.</summary>
        </member>
        <member name="M:RT.Util.Xml.XmlClassifyOptions.AddTypeOptions(System.Type,RT.Util.Xml.XmlClassifyTypeOptions)">
            <summary>
                Adds options that are relevant to classifying/declassifying a specific type.</summary>
            <param name="type">
                The type to which these options apply.</param>
            <param name="options">
                Options that apply to the <paramref name="type"/>. To enable type substitution, pass an instance of a class that
                implements <see cref="T:RT.Util.Xml.IXmlClassifySubstitute`2"/>. To use XML pre-/post-processing, pass an
                instance of a class that implements <see cref="T:RT.Util.Xml.IXmlClassifyProcessXml"/>.</param>
            <returns>
                Itself.</returns>
        </member>
        <member name="T:RT.Util.Xml.XmlClassifyTypeOptions">
            <summary>
                Provides an abstract base type to derive from to specify type-specific options for use in XmlClassify. See remarks for
                more information.</summary>
            <remarks>
                <para>
                    Derive from this type and implement <see cref="T:RT.Util.Xml.IXmlClassifySubstitute`2"/> to enable type
                    substitution during XmlClassify.</para>
                <para>
                    Derive from this type and implement <see cref="T:RT.Util.Xml.IXmlClassifyProcessXml"/> to pre-/post-process the XML before/after
                    XmlClassify.</para>
                <para>
                    Instances of derived classes are passed into <see cref="M:RT.Util.Xml.XmlClassifyOptions.AddTypeOptions(System.Type,RT.Util.Xml.XmlClassifyTypeOptions)"/>.</para></remarks>
        </member>
        <member name="T:RT.Util.Xml.XmlFollowIdAttribute">
            <summary>
                If this attribute is used on a field or automatically-implemented property, <see cref="T:RT.Util.Xml.XmlClassify"/> stores an ID in
                the corresponding XML tag that points to another, separate XML file which in turn contains the actual object for this
                field or automatically-implemented property. This is only allowed on fields or automatically-implemented properties of
                type <see cref="T:RT.Util.Xml.XmlDeferredObject`1"/> for some type T. Use <see cref="P:RT.Util.Xml.XmlDeferredObject`1.Value"/> to
                retrieve the object. This retrieval is deferred until first use. Use <see cref="P:RT.Util.Xml.XmlDeferredObject`1.Id"/> to
                retrieve the ID used to reference the object. You can also capture the ID into the class or struct T by using the <see cref="T:RT.Util.Xml.XmlIdAttribute"/> attribute within that class or struct.</summary>
        </member>
        <member name="T:RT.Util.Xml.XmlIgnoreAttribute">
            <summary>
                If this attribute is used on a field or automatically-implemented property, it is ignored by <see cref="T:RT.Util.Xml.XmlClassify"/>. Data stored in this field or automatically-implemented property is not persisted.</summary>
        </member>
        <member name="T:RT.Util.Xml.XmlIgnoreIfDefaultAttribute">
            <summary>
                If this attribute is used on a field or automatically-implemented property, <see cref="T:RT.Util.Xml.XmlClassify"/> does not
                generate a tag if the value is null, 0, false, etc. If it is used on a class or struct, it applies to all fields and
                automatically-implemented properties in the class or struct. Notice that using this together with <see cref="T:RT.Util.Xml.XmlIgnoreIfEmptyAttribute"/> will cause the distinction between null and an empty element to be lost. However, a
                collection containing only null elements is persisted correctly.</summary>
            <remarks>
                Warning: Do not use this custom attribute on a field that has a non-default value set in the containing class’s
                constructor. Doing so will cause a serialised “null” to revert to that constructor value upon
                deserliasation.</remarks>
        </member>
        <member name="T:RT.Util.Xml.XmlIgnoreIfEmptyAttribute">
            <summary>
                If this attribute is used on a field or automatically-implemented property, <see cref="T:RT.Util.Xml.XmlClassify"/> does not
                generate a tag if that tag would be completely empty (no attributes or subelements). If it is used on a class or
                struct, it applies to all collection-type fields in the class or struct. Notice that using this together with <see cref="T:RT.Util.Xml.XmlIgnoreIfDefaultAttribute"/> will cause the distinction between null and an empty element to be lost. However,
                a collection containing only null elements is persisted correctly.</summary>
        </member>
        <member name="T:RT.Util.Xml.XmlIgnoreIfAttribute">
            <summary>
                If this attribute is used on a field or automatically-implemented property, <see cref="T:RT.Util.Xml.XmlClassify"/> does not
                generate a tag if the field’s or property’s value is equal to the specified value. Notice that using this together
                with <see cref="T:RT.Util.Xml.XmlIgnoreIfDefaultAttribute"/> will cause the distinction between the type’s default value and the
                specified value to be lost.</summary>
        </member>
        <member name="M:RT.Util.Xml.XmlIgnoreIfAttribute.#ctor(System.Object)">
            <summary>
                Constructs an <see cref="T:RT.Util.Xml.XmlIgnoreIfAttribute"/> instance.</summary>
            <param name="value">
                Specifies the value which causes a field or automatically-implemented property to be ignored.</param>
        </member>
        <member name="P:RT.Util.Xml.XmlIgnoreIfAttribute.Value">
            <summary>Retrieves the value which causes a field or automatically-implemented property to be ignored.</summary>
        </member>
        <member name="T:RT.Util.Xml.XmlParentAttribute">
            <summary>
                When reconstructing persisted objects using <see cref="T:RT.Util.Xml.XmlClassify"/>, a field or automatically-implemented property
                with this attribute receives a reference to the object which was its parent node in the XML tree. If the field or
                automatically-implemented property is of an incompatible type, a run-time exception occurs. If there was no parent
                node, the field or automatically-implemented property is set to null. When persisting objects, fields and
                automatically-implemented properties with this attribute are skipped.</summary>
        </member>
        <member name="T:RT.Util.Xml.XmlIdAttribute">
            <summary>
                When reconstructing persisted objects using <see cref="T:RT.Util.Xml.XmlClassify"/>, a field or automatically-implemented property
                with this attribute receives the ID that was used to refer to the XML file that stores this object. See <see cref="T:RT.Util.Xml.XmlFollowIdAttribute"/> for more information. The field or automatically-implemented property must be of type
                string.</summary>
        </member>
        <member name="T:RT.Util.Xml.XmlDeferredObject`1">
            <summary>
                Provides mechanisms to hold an object that has an ID and gets evaluated at first use.</summary>
            <typeparam name="T">
                The type of the contained object.</typeparam>
        </member>
        <member name="M:RT.Util.Xml.XmlDeferredObject`1.#ctor(System.String,System.Func{`0})">
            <summary>
                Initialises a deferred object using a delegate or lambda expression.</summary>
            <param name="id">
                Id that refers to the object to be generated.</param>
            <param name="generator">
                Function to generate the object.</param>
        </member>
        <member name="M:RT.Util.Xml.XmlDeferredObject`1.#ctor(System.String,`0)">
            <summary>
                Initialises a deferred object using an actual object. Evaluation is not deferred.</summary>
            <param name="id">
                Id that refers to the object.</param>
            <param name="value">
                The object to store.</param>
        </member>
        <member name="M:RT.Util.Xml.XmlDeferredObject`1.#ctor(System.String,System.Reflection.MethodInfo,System.Object,System.Object[])">
            <summary>
                Initialises a deferred object using a method reference and an array of parameters.</summary>
            <param name="id">
                ID that refers to the object to be generated.</param>
            <param name="generatorMethod">
                Reference to a method that generates the object.</param>
            <param name="generatorObject">
                Object on which the method should be invoked. Use null for static methods.</param>
            <param name="generatorParams">
                Set of parameters for the method invocation.</param>
        </member>
        <member name="P:RT.Util.Xml.XmlDeferredObject`1.Value">
            <summary>
                Gets or sets the object stored in this <see cref="T:RT.Util.Xml.XmlDeferredObject`1"/>. The property getter causes the
                object to be evaluated when called. The setter overrides the object with a pre-computed object whose evaluation is
                not deferred.</summary>
        </member>
        <member name="P:RT.Util.Xml.XmlDeferredObject`1.Evaluated">
            <summary>Determines whether the object has been computed.</summary>
        </member>
        <member name="P:RT.Util.Xml.XmlDeferredObject`1.Id">
            <summary>Returns the ID used to refer to the object.</summary>
        </member>
        <member name="T:XamlGeneratedNamespace.GeneratedInternalTypeHelper">
            <summary>
            GeneratedInternalTypeHelper
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.CreateInstance(System.Type,System.Globalization.CultureInfo)">
            <summary>
            CreateInstance
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.GetPropertyValue(System.Reflection.PropertyInfo,System.Object,System.Globalization.CultureInfo)">
            <summary>
            GetPropertyValue
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.SetPropertyValue(System.Reflection.PropertyInfo,System.Object,System.Object,System.Globalization.CultureInfo)">
            <summary>
            SetPropertyValue
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.CreateDelegate(System.Type,System.Object,System.String)">
            <summary>
            CreateDelegate
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.AddEventHandler(System.Reflection.EventInfo,System.Object,System.Delegate)">
            <summary>
            AddEventHandler
            </summary>
        </member>
    </members>
</doc>
