using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Text; namespace System.Net { /// Contains protocol headers associated with a request or response. // Token: 0x02000268 RID: 616 [ComVisible(true)] [Serializable] public class WebHeaderCollection : global::System.Collections.Specialized.NameValueCollection, ISerializable { /// Initializes a new instance of the class. // Token: 0x0600169B RID: 5787 RVA: 0x0004BC94 File Offset: 0x00049E94 public WebHeaderCollection() { } /// Initializes a new instance of the class from the specified instances of the and classes. /// A containing the information required to serialize the . /// A containing the source of the serialized stream associated with the new . /// /// contains invalid characters. /// /// is a null reference or . // Token: 0x0600169C RID: 5788 RVA: 0x0004BC9C File Offset: 0x00049E9C protected WebHeaderCollection(SerializationInfo serializationInfo, StreamingContext streamingContext) { try { int num = serializationInfo.GetInt32("Count"); for (int i = 0; i < num; i++) { this.Add(serializationInfo.GetString(i.ToString()), serializationInfo.GetString((num + i).ToString())); } } catch (SerializationException) { int num = serializationInfo.GetInt32("count"); for (int j = 0; j < num; j++) { this.Add(serializationInfo.GetString("k" + j), serializationInfo.GetString("v" + j)); } } } // Token: 0x0600169D RID: 5789 RVA: 0x0004BD68 File Offset: 0x00049F68 internal WebHeaderCollection(bool internallyCreated) { this.internallyCreated = internallyCreated; } // Token: 0x0600169E RID: 5790 RVA: 0x0004BD78 File Offset: 0x00049F78 static WebHeaderCollection() { WebHeaderCollection.restricted.Add("accept", true); WebHeaderCollection.restricted.Add("connection", true); WebHeaderCollection.restricted.Add("content-length", true); WebHeaderCollection.restricted.Add("content-type", true); WebHeaderCollection.restricted.Add("date", true); WebHeaderCollection.restricted.Add("expect", true); WebHeaderCollection.restricted.Add("host", true); WebHeaderCollection.restricted.Add("if-modified-since", true); WebHeaderCollection.restricted.Add("range", true); WebHeaderCollection.restricted.Add("referer", true); WebHeaderCollection.restricted.Add("transfer-encoding", true); WebHeaderCollection.restricted.Add("user-agent", true); WebHeaderCollection.restricted.Add("proxy-connection", true); WebHeaderCollection.restricted_response = new Dictionary(StringComparer.InvariantCultureIgnoreCase); WebHeaderCollection.restricted_response.Add("Content-Length", true); WebHeaderCollection.restricted_response.Add("Transfer-Encoding", true); WebHeaderCollection.restricted_response.Add("WWW-Authenticate", true); WebHeaderCollection.multiValue = new Hashtable(CaseInsensitiveHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant); WebHeaderCollection.multiValue.Add("accept", true); WebHeaderCollection.multiValue.Add("accept-charset", true); WebHeaderCollection.multiValue.Add("accept-encoding", true); WebHeaderCollection.multiValue.Add("accept-language", true); WebHeaderCollection.multiValue.Add("accept-ranges", true); WebHeaderCollection.multiValue.Add("allow", true); WebHeaderCollection.multiValue.Add("authorization", true); WebHeaderCollection.multiValue.Add("cache-control", true); WebHeaderCollection.multiValue.Add("connection", true); WebHeaderCollection.multiValue.Add("content-encoding", true); WebHeaderCollection.multiValue.Add("content-language", true); WebHeaderCollection.multiValue.Add("expect", true); WebHeaderCollection.multiValue.Add("if-match", true); WebHeaderCollection.multiValue.Add("if-none-match", true); WebHeaderCollection.multiValue.Add("proxy-authenticate", true); WebHeaderCollection.multiValue.Add("public", true); WebHeaderCollection.multiValue.Add("range", true); WebHeaderCollection.multiValue.Add("transfer-encoding", true); WebHeaderCollection.multiValue.Add("upgrade", true); WebHeaderCollection.multiValue.Add("vary", true); WebHeaderCollection.multiValue.Add("via", true); WebHeaderCollection.multiValue.Add("warning", true); WebHeaderCollection.multiValue.Add("www-authenticate", true); WebHeaderCollection.multiValue.Add("set-cookie", true); WebHeaderCollection.multiValue.Add("set-cookie2", true); } /// Serializes this instance into the specified object. /// The object into which this will be serialized. /// The destination of the serialization. // Token: 0x0600169F RID: 5791 RVA: 0x0004C124 File Offset: 0x0004A324 void ISerializable.GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext) { this.GetObjectData(serializationInfo, streamingContext); } /// Inserts the specified header into the collection. /// The header to add, with the name and value separated by a colon. /// /// is null or . /// /// does not contain a colon (:) character.The length of is greater than 65535.-or- The name part of is or contains invalid characters.-or- is a restricted header that should be set with a property.-or- The value part of contains invalid characters. /// The length the string after the colon (:) is greater than 65535. // Token: 0x060016A0 RID: 5792 RVA: 0x0004C130 File Offset: 0x0004A330 public void Add(string header) { if (header == null) { throw new ArgumentNullException("header"); } int num = header.IndexOf(':'); if (num == -1) { throw new ArgumentException("no colon found", "header"); } this.Add(header.Substring(0, num), header.Substring(num + 1)); } /// Inserts a header with the specified name and value into the collection. /// The header to add to the collection. /// The content of the header. /// /// is null, , or contains invalid characters.-or- is a restricted header that must be set with a property setting.-or- contains invalid characters. /// The length of is greater than 65535. // Token: 0x060016A1 RID: 5793 RVA: 0x0004C188 File Offset: 0x0004A388 public override void Add(string name, string value) { if (name == null) { throw new ArgumentNullException("name"); } if (this.internallyCreated && WebHeaderCollection.IsRestricted(name)) { throw new ArgumentException("This header must be modified with the appropiate property."); } this.AddWithoutValidate(name, value); } /// Inserts a header into the collection without checking whether the header is on the restricted header list. /// The header to add to the collection. /// The content of the header. /// /// is null, , or contains invalid characters.-or- contains invalid characters. // Token: 0x060016A2 RID: 5794 RVA: 0x0004C1D0 File Offset: 0x0004A3D0 protected void AddWithoutValidate(string headerName, string headerValue) { if (!WebHeaderCollection.IsHeaderName(headerName)) { throw new ArgumentException("invalid header name: " + headerName, "headerName"); } if (headerValue == null) { headerValue = string.Empty; } else { headerValue = headerValue.Trim(); } if (!WebHeaderCollection.IsHeaderValue(headerValue)) { throw new ArgumentException("invalid header value: " + headerValue, "headerValue"); } base.Add(headerName, headerValue); } /// Gets an array of header values stored in a header. /// An array of header strings. /// The header to return. // Token: 0x060016A3 RID: 5795 RVA: 0x0004C244 File Offset: 0x0004A444 public override string[] GetValues(string header) { if (header == null) { throw new ArgumentNullException("header"); } string[] values = base.GetValues(header); if (values == null || values.Length == 0) { return null; } return values; } /// Gets an array of header values stored in the position of the header collection. /// An array of header strings. /// The header index to return. // Token: 0x060016A4 RID: 5796 RVA: 0x0004C27C File Offset: 0x0004A47C public override string[] GetValues(int index) { string[] values = base.GetValues(index); if (values == null || values.Length == 0) { return null; } return values; } /// Tests whether the specified HTTP header can be set for the request. /// true if the header is restricted; otherwise false. /// The header to test. /// /// is null or . /// /// contains invalid characters. // Token: 0x060016A5 RID: 5797 RVA: 0x0004C2A4 File Offset: 0x0004A4A4 public static bool IsRestricted(string headerName) { if (headerName == null) { throw new ArgumentNullException("headerName"); } if (headerName == string.Empty) { throw new ArgumentException("empty string", "headerName"); } if (!WebHeaderCollection.IsHeaderName(headerName)) { throw new ArgumentException("Invalid character in header"); } return WebHeaderCollection.restricted.ContainsKey(headerName); } /// Tests whether the specified HTTP header can be set for the request or the response. /// true if the header is restricted; otherwise, false. /// The header to test. /// Does the Framework test the response or the request? /// /// is null or . /// /// contains invalid characters. // Token: 0x060016A6 RID: 5798 RVA: 0x0004C304 File Offset: 0x0004A504 public static bool IsRestricted(string headerName, bool response) { if (string.IsNullOrEmpty(headerName)) { throw new ArgumentNullException("headerName"); } if (!WebHeaderCollection.IsHeaderName(headerName)) { throw new ArgumentException("Invalid character in header"); } if (response) { return WebHeaderCollection.restricted_response.ContainsKey(headerName); } return WebHeaderCollection.restricted.ContainsKey(headerName); } /// Implements the interface and raises the deserialization event when the deserialization is complete. /// The source of the deserialization event. // Token: 0x060016A7 RID: 5799 RVA: 0x0004C35C File Offset: 0x0004A55C public override void OnDeserialization(object sender) { } /// Removes the specified header from the collection. /// The name of the header to remove from the collection. /// /// is null. /// /// is a restricted header.-or- contains invalid characters. // Token: 0x060016A8 RID: 5800 RVA: 0x0004C360 File Offset: 0x0004A560 public override void Remove(string name) { if (name == null) { throw new ArgumentNullException("name"); } if (this.internallyCreated && WebHeaderCollection.IsRestricted(name)) { throw new ArgumentException("restricted header"); } base.Remove(name); } /// Sets the specified header to the specified value. /// The header to set. /// The content of the header to set. /// /// is null or . /// The length of is greater than 65535. /// /// is a restricted header.-or- or contain invalid characters. // Token: 0x060016A9 RID: 5801 RVA: 0x0004C39C File Offset: 0x0004A59C public override void Set(string name, string value) { if (name == null) { throw new ArgumentNullException("name"); } if (this.internallyCreated && WebHeaderCollection.IsRestricted(name)) { throw new ArgumentException("restricted header"); } if (!WebHeaderCollection.IsHeaderName(name)) { throw new ArgumentException("invalid header name"); } if (value == null) { value = string.Empty; } else { value = value.Trim(); } if (!WebHeaderCollection.IsHeaderValue(value)) { throw new ArgumentException("invalid header value"); } base.Set(name, value); } /// Converts the to a byte array.. /// A array holding the header collection. // Token: 0x060016AA RID: 5802 RVA: 0x0004C42C File Offset: 0x0004A62C public byte[] ToByteArray() { return Encoding.UTF8.GetBytes(this.ToString()); } // Token: 0x060016AB RID: 5803 RVA: 0x0004C440 File Offset: 0x0004A640 internal string ToStringMultiValue() { StringBuilder stringBuilder = new StringBuilder(); int count = base.Count; for (int i = 0; i < count; i++) { string key = this.GetKey(i); if (WebHeaderCollection.IsMultiValue(key)) { foreach (string text in this.GetValues(i)) { stringBuilder.Append(key).Append(": ").Append(text) .Append("\r\n"); } } else { stringBuilder.Append(key).Append(": ").Append(this.Get(i)) .Append("\r\n"); } } return stringBuilder.Append("\r\n").ToString(); } /// Obsolete. /// The representation of the collection. // Token: 0x060016AC RID: 5804 RVA: 0x0004C508 File Offset: 0x0004A708 public override string ToString() { StringBuilder stringBuilder = new StringBuilder(); int count = base.Count; for (int i = 0; i < count; i++) { stringBuilder.Append(this.GetKey(i)).Append(": ").Append(this.Get(i)) .Append("\r\n"); } return stringBuilder.Append("\r\n").ToString(); } /// Populates a with the data needed to serialize the target object. /// The to populate with data. /// A that specifies the destination for this serialization. // Token: 0x060016AD RID: 5805 RVA: 0x0004C574 File Offset: 0x0004A774 public override void GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext) { int count = base.Count; serializationInfo.AddValue("Count", count); for (int i = 0; i < count; i++) { serializationInfo.AddValue(i.ToString(), this.GetKey(i)); serializationInfo.AddValue((count + i).ToString(), this.Get(i)); } } /// Gets all header names (keys) in the collection. /// An array of type containing all header names in a Web request. // Token: 0x17000742 RID: 1858 // (get) Token: 0x060016AE RID: 5806 RVA: 0x0004C5D4 File Offset: 0x0004A7D4 public override string[] AllKeys { get { return base.AllKeys; } } /// Gets the number of headers in the collection. /// An indicating the number of headers in a request. // Token: 0x17000743 RID: 1859 // (get) Token: 0x060016AF RID: 5807 RVA: 0x0004C5DC File Offset: 0x0004A7DC public override int Count { get { return base.Count; } } /// Gets the collection of header names (keys) in the collection. /// A containing all header names in a Web request. // Token: 0x17000744 RID: 1860 // (get) Token: 0x060016B0 RID: 5808 RVA: 0x0004C5E4 File Offset: 0x0004A7E4 public override global::System.Collections.Specialized.NameObjectCollectionBase.KeysCollection Keys { get { return base.Keys; } } /// Get the value of a particular header in the collection, specified by an index into the collection. /// A containing the value of the specified header. /// The zero-based index of the key to get from the collection. /// /// is negative. -or- exceeds the size of the collection. // Token: 0x060016B1 RID: 5809 RVA: 0x0004C5EC File Offset: 0x0004A7EC public override string Get(int index) { return base.Get(index); } /// Get the value of a particular header in the collection, specified by the name of the header. /// A holding the value of the specified header. /// The name of the Web header. // Token: 0x060016B2 RID: 5810 RVA: 0x0004C5F8 File Offset: 0x0004A7F8 public override string Get(string name) { return base.Get(name); } /// Get the header name at the specified position in the collection. /// A holding the header name. /// The zero-based index of the key to get from the collection. /// /// is negative. -or- exceeds the size of the collection. // Token: 0x060016B3 RID: 5811 RVA: 0x0004C604 File Offset: 0x0004A804 public override string GetKey(int index) { return base.GetKey(index); } /// Inserts the specified header with the specified value into the collection. /// The header to add to the collection. /// The content of the header. /// The length of is greater than 65535. /// This instance does not allow instances of . // Token: 0x060016B4 RID: 5812 RVA: 0x0004C610 File Offset: 0x0004A810 public void Add(HttpRequestHeader header, string value) { this.Add(this.RequestHeaderToString(header), value); } /// Removes the specified header from the collection. /// The instance to remove from the collection. /// This instance does not allow instances of . /// /// /// // Token: 0x060016B5 RID: 5813 RVA: 0x0004C620 File Offset: 0x0004A820 public void Remove(HttpRequestHeader header) { this.Remove(this.RequestHeaderToString(header)); } /// Sets the specified header to the specified value. /// The value to set. /// The content of the header to set. /// The length of is greater than 65535. /// This instance does not allow instances of . // Token: 0x060016B6 RID: 5814 RVA: 0x0004C630 File Offset: 0x0004A830 public void Set(HttpRequestHeader header, string value) { this.Set(this.RequestHeaderToString(header), value); } /// Inserts the specified header with the specified value into the collection. /// The header to add to the collection. /// The content of the header. /// The length of is greater than 65535. /// This instance does not allow instances of . // Token: 0x060016B7 RID: 5815 RVA: 0x0004C640 File Offset: 0x0004A840 public void Add(HttpResponseHeader header, string value) { this.Add(this.ResponseHeaderToString(header), value); } /// Removes the specified header from the collection. /// The instance to remove from the collection. /// This instance does not allow instances of . /// /// /// // Token: 0x060016B8 RID: 5816 RVA: 0x0004C650 File Offset: 0x0004A850 public void Remove(HttpResponseHeader header) { this.Remove(this.ResponseHeaderToString(header)); } /// Sets the specified header to the specified value. /// The value to set. /// The content of the header to set. /// The length of is greater than 65535. /// This instance does not allow instances of . // Token: 0x060016B9 RID: 5817 RVA: 0x0004C660 File Offset: 0x0004A860 public void Set(HttpResponseHeader header, string value) { this.Set(this.ResponseHeaderToString(header), value); } // Token: 0x060016BA RID: 5818 RVA: 0x0004C670 File Offset: 0x0004A870 private string RequestHeaderToString(HttpRequestHeader value) { switch (value) { case HttpRequestHeader.CacheControl: return "cache-control"; case HttpRequestHeader.Connection: return "connection"; case HttpRequestHeader.Date: return "date"; case HttpRequestHeader.KeepAlive: return "keep-alive"; case HttpRequestHeader.Pragma: return "pragma"; case HttpRequestHeader.Trailer: return "trailer"; case HttpRequestHeader.TransferEncoding: return "transfer-encoding"; case HttpRequestHeader.Upgrade: return "upgrade"; case HttpRequestHeader.Via: return "via"; case HttpRequestHeader.Warning: return "warning"; case HttpRequestHeader.Allow: return "allow"; case HttpRequestHeader.ContentLength: return "content-length"; case HttpRequestHeader.ContentType: return "content-type"; case HttpRequestHeader.ContentEncoding: return "content-encoding"; case HttpRequestHeader.ContentLanguage: return "content-language"; case HttpRequestHeader.ContentLocation: return "content-location"; case HttpRequestHeader.ContentMd5: return "content-md5"; case HttpRequestHeader.ContentRange: return "content-range"; case HttpRequestHeader.Expires: return "expires"; case HttpRequestHeader.LastModified: return "last-modified"; case HttpRequestHeader.Accept: return "accept"; case HttpRequestHeader.AcceptCharset: return "accept-charset"; case HttpRequestHeader.AcceptEncoding: return "accept-encoding"; case HttpRequestHeader.AcceptLanguage: return "accept-language"; case HttpRequestHeader.Authorization: return "authorization"; case HttpRequestHeader.Cookie: return "cookie"; case HttpRequestHeader.Expect: return "expect"; case HttpRequestHeader.From: return "from"; case HttpRequestHeader.Host: return "host"; case HttpRequestHeader.IfMatch: return "if-match"; case HttpRequestHeader.IfModifiedSince: return "if-modified-since"; case HttpRequestHeader.IfNoneMatch: return "if-none-match"; case HttpRequestHeader.IfRange: return "if-range"; case HttpRequestHeader.IfUnmodifiedSince: return "if-unmodified-since"; case HttpRequestHeader.MaxForwards: return "max-forwards"; case HttpRequestHeader.ProxyAuthorization: return "proxy-authorization"; case HttpRequestHeader.Referer: return "referer"; case HttpRequestHeader.Range: return "range"; case HttpRequestHeader.Te: return "te"; case HttpRequestHeader.Translate: return "translate"; case HttpRequestHeader.UserAgent: return "user-agent"; default: throw new InvalidOperationException(); } } /// Gets or sets the specified request header. /// A instance containing the specified header value. /// The request header value. /// This instance does not allow instances of . /// /// /// // Token: 0x17000745 RID: 1861 public string this[HttpRequestHeader hrh] { get { return this.Get(this.RequestHeaderToString(hrh)); } set { this.Add(this.RequestHeaderToString(hrh), value); } } // Token: 0x060016BD RID: 5821 RVA: 0x0004C84C File Offset: 0x0004AA4C private string ResponseHeaderToString(HttpResponseHeader value) { switch (value) { case HttpResponseHeader.CacheControl: return "cache-control"; case HttpResponseHeader.Connection: return "connection"; case HttpResponseHeader.Date: return "date"; case HttpResponseHeader.KeepAlive: return "keep-alive"; case HttpResponseHeader.Pragma: return "pragma"; case HttpResponseHeader.Trailer: return "trailer"; case HttpResponseHeader.TransferEncoding: return "transfer-encoding"; case HttpResponseHeader.Upgrade: return "upgrade"; case HttpResponseHeader.Via: return "via"; case HttpResponseHeader.Warning: return "warning"; case HttpResponseHeader.Allow: return "allow"; case HttpResponseHeader.ContentLength: return "content-length"; case HttpResponseHeader.ContentType: return "content-type"; case HttpResponseHeader.ContentEncoding: return "content-encoding"; case HttpResponseHeader.ContentLanguage: return "content-language"; case HttpResponseHeader.ContentLocation: return "content-location"; case HttpResponseHeader.ContentMd5: return "content-md5"; case HttpResponseHeader.ContentRange: return "content-range"; case HttpResponseHeader.Expires: return "expires"; case HttpResponseHeader.LastModified: return "last-modified"; case HttpResponseHeader.AcceptRanges: return "accept-ranges"; case HttpResponseHeader.Age: return "age"; case HttpResponseHeader.ETag: return "etag"; case HttpResponseHeader.Location: return "location"; case HttpResponseHeader.ProxyAuthenticate: return "proxy-authenticate"; case HttpResponseHeader.RetryAfter: return "RetryAfter"; case HttpResponseHeader.Server: return "server"; case HttpResponseHeader.SetCookie: return "set-cookie"; case HttpResponseHeader.Vary: return "vary"; case HttpResponseHeader.WwwAuthenticate: return "www-authenticate"; default: throw new InvalidOperationException(); } } /// Gets or sets the specified response header. /// A instance containing the specified header. /// The response header value. /// The length of is greater than 65535. /// This instance does not allow instances of . /// /// /// // Token: 0x17000746 RID: 1862 public string this[HttpResponseHeader hrh] { get { return this.Get(this.ResponseHeaderToString(hrh)); } set { this.Add(this.ResponseHeaderToString(hrh), value); } } /// Removes all headers from the collection. // Token: 0x060016C0 RID: 5824 RVA: 0x0004C9B8 File Offset: 0x0004ABB8 public override void Clear() { base.Clear(); } /// Returns an enumerator that can iterate through the instance. /// An for the . // Token: 0x060016C1 RID: 5825 RVA: 0x0004C9C0 File Offset: 0x0004ABC0 public override IEnumerator GetEnumerator() { return base.GetEnumerator(); } // Token: 0x060016C2 RID: 5826 RVA: 0x0004C9C8 File Offset: 0x0004ABC8 internal void SetInternal(string header) { int num = header.IndexOf(':'); if (num == -1) { throw new ArgumentException("no colon found", "header"); } this.SetInternal(header.Substring(0, num), header.Substring(num + 1)); } // Token: 0x060016C3 RID: 5827 RVA: 0x0004CA0C File Offset: 0x0004AC0C internal void SetInternal(string name, string value) { if (value == null) { value = string.Empty; } else { value = value.Trim(); } if (!WebHeaderCollection.IsHeaderValue(value)) { throw new ArgumentException("invalid header value"); } if (WebHeaderCollection.IsMultiValue(name)) { base.Add(name, value); } else { base.Remove(name); base.Set(name, value); } } // Token: 0x060016C4 RID: 5828 RVA: 0x0004CA70 File Offset: 0x0004AC70 internal void RemoveAndAdd(string name, string value) { if (value == null) { value = string.Empty; } else { value = value.Trim(); } base.Remove(name); base.Set(name, value); } // Token: 0x060016C5 RID: 5829 RVA: 0x0004CA9C File Offset: 0x0004AC9C internal void RemoveInternal(string name) { if (name == null) { throw new ArgumentNullException("name"); } base.Remove(name); } // Token: 0x060016C6 RID: 5830 RVA: 0x0004CAB8 File Offset: 0x0004ACB8 internal static bool IsMultiValue(string headerName) { return headerName != null && !(headerName == string.Empty) && WebHeaderCollection.multiValue.ContainsKey(headerName); } // Token: 0x060016C7 RID: 5831 RVA: 0x0004CAE0 File Offset: 0x0004ACE0 internal static bool IsHeaderValue(string value) { int length = value.Length; for (int i = 0; i < length; i++) { char c = value[i]; if (c == '\u007f') { return false; } if (c < ' ' && c != '\r' && c != '\n' && c != '\t') { return false; } if (c == '\n' && ++i < length) { c = value[i]; if (c != ' ' && c != '\t') { return false; } } } return true; } // Token: 0x060016C8 RID: 5832 RVA: 0x0004CB68 File Offset: 0x0004AD68 internal static bool IsHeaderName(string name) { if (name == null || name.Length == 0) { return false; } int length = name.Length; for (int i = 0; i < length; i++) { char c = name[i]; if (c > '~' || !WebHeaderCollection.allowed_chars[(int)c]) { return false; } } return true; } // Token: 0x0400126E RID: 4718 private static readonly Hashtable restricted = new Hashtable(CaseInsensitiveHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant); // Token: 0x0400126F RID: 4719 private static readonly Hashtable multiValue; // Token: 0x04001270 RID: 4720 private static readonly Dictionary restricted_response; // Token: 0x04001271 RID: 4721 private bool internallyCreated; // Token: 0x04001272 RID: 4722 private static bool[] allowed_chars = new bool[] { false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, true, true, true, false, false, false, true, true, false, true, true, false, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false }; } }