using System; using System.IO; using System.Text; namespace UnityEngine { // Token: 0x02000290 RID: 656 internal class WWWTranscoder { // Token: 0x06002CF9 RID: 11513 RVA: 0x0003F5BC File Offset: 0x0003D7BC private static byte Hex2Byte(byte[] b, int offset) { byte b2 = 0; for (int i = offset; i < offset + 2; i++) { b2 *= 16; int num = (int)b[i]; if (num >= 48 && num <= 57) { num -= 48; } else if (num >= 65 && num <= 75) { num -= 55; } else if (num >= 97 && num <= 102) { num -= 87; } if (num > 15) { return 63; } b2 += (byte)num; } return b2; } // Token: 0x06002CFA RID: 11514 RVA: 0x0003F654 File Offset: 0x0003D854 private static byte[] Byte2Hex(byte b, byte[] hexChars) { return new byte[] { hexChars[b >> 4], hexChars[(int)(b & 15)] }; } // Token: 0x06002CFB RID: 11515 RVA: 0x0003F684 File Offset: 0x0003D884 public static string URLEncode(string toEncode) { return WWWTranscoder.URLEncode(toEncode, Encoding.UTF8); } // Token: 0x06002CFC RID: 11516 RVA: 0x0003F6A4 File Offset: 0x0003D8A4 public static string URLEncode(string toEncode, Encoding e) { byte[] array = WWWTranscoder.Encode(e.GetBytes(toEncode), WWWTranscoder.urlEscapeChar, WWWTranscoder.urlSpace, WWWTranscoder.urlForbidden, false); return WWWForm.DefaultEncoding.GetString(array, 0, array.Length); } // Token: 0x06002CFD RID: 11517 RVA: 0x0003F6E8 File Offset: 0x0003D8E8 public static byte[] URLEncode(byte[] toEncode) { return WWWTranscoder.Encode(toEncode, WWWTranscoder.urlEscapeChar, WWWTranscoder.urlSpace, WWWTranscoder.urlForbidden, false); } // Token: 0x06002CFE RID: 11518 RVA: 0x0003F714 File Offset: 0x0003D914 public static string QPEncode(string toEncode) { return WWWTranscoder.QPEncode(toEncode, Encoding.UTF8); } // Token: 0x06002CFF RID: 11519 RVA: 0x0003F734 File Offset: 0x0003D934 public static string QPEncode(string toEncode, Encoding e) { byte[] array = WWWTranscoder.Encode(e.GetBytes(toEncode), WWWTranscoder.qpEscapeChar, WWWTranscoder.qpSpace, WWWTranscoder.qpForbidden, true); return WWWForm.DefaultEncoding.GetString(array, 0, array.Length); } // Token: 0x06002D00 RID: 11520 RVA: 0x0003F778 File Offset: 0x0003D978 public static byte[] QPEncode(byte[] toEncode) { return WWWTranscoder.Encode(toEncode, WWWTranscoder.qpEscapeChar, WWWTranscoder.qpSpace, WWWTranscoder.qpForbidden, true); } // Token: 0x06002D01 RID: 11521 RVA: 0x0003F7A4 File Offset: 0x0003D9A4 public static byte[] Encode(byte[] input, byte escapeChar, byte space, byte[] forbidden, bool uppercase) { byte[] array; using (MemoryStream memoryStream = new MemoryStream(input.Length * 2)) { for (int i = 0; i < input.Length; i++) { if (input[i] == 32) { memoryStream.WriteByte(space); } else if (input[i] < 32 || input[i] > 126 || WWWTranscoder.ByteArrayContains(forbidden, input[i])) { memoryStream.WriteByte(escapeChar); memoryStream.Write(WWWTranscoder.Byte2Hex(input[i], (!uppercase) ? WWWTranscoder.lcHexChars : WWWTranscoder.ucHexChars), 0, 2); } else { memoryStream.WriteByte(input[i]); } } array = memoryStream.ToArray(); } return array; } // Token: 0x06002D02 RID: 11522 RVA: 0x0003F878 File Offset: 0x0003DA78 private static bool ByteArrayContains(byte[] array, byte b) { int num = array.Length; for (int i = 0; i < num; i++) { if (array[i] == b) { return true; } } return false; } // Token: 0x06002D03 RID: 11523 RVA: 0x0003F8B8 File Offset: 0x0003DAB8 public static string URLDecode(string toEncode) { return WWWTranscoder.URLDecode(toEncode, Encoding.UTF8); } // Token: 0x06002D04 RID: 11524 RVA: 0x0003F8D8 File Offset: 0x0003DAD8 public static string URLDecode(string toEncode, Encoding e) { byte[] array = WWWTranscoder.Decode(WWWForm.DefaultEncoding.GetBytes(toEncode), WWWTranscoder.urlEscapeChar, WWWTranscoder.urlSpace); return e.GetString(array, 0, array.Length); } // Token: 0x06002D05 RID: 11525 RVA: 0x0003F914 File Offset: 0x0003DB14 public static byte[] URLDecode(byte[] toEncode) { return WWWTranscoder.Decode(toEncode, WWWTranscoder.urlEscapeChar, WWWTranscoder.urlSpace); } // Token: 0x06002D06 RID: 11526 RVA: 0x0003F93C File Offset: 0x0003DB3C public static string QPDecode(string toEncode) { return WWWTranscoder.QPDecode(toEncode, Encoding.UTF8); } // Token: 0x06002D07 RID: 11527 RVA: 0x0003F95C File Offset: 0x0003DB5C public static string QPDecode(string toEncode, Encoding e) { byte[] array = WWWTranscoder.Decode(WWWForm.DefaultEncoding.GetBytes(toEncode), WWWTranscoder.qpEscapeChar, WWWTranscoder.qpSpace); return e.GetString(array, 0, array.Length); } // Token: 0x06002D08 RID: 11528 RVA: 0x0003F998 File Offset: 0x0003DB98 public static byte[] QPDecode(byte[] toEncode) { return WWWTranscoder.Decode(toEncode, WWWTranscoder.qpEscapeChar, WWWTranscoder.qpSpace); } // Token: 0x06002D09 RID: 11529 RVA: 0x0003F9C0 File Offset: 0x0003DBC0 public static byte[] Decode(byte[] input, byte escapeChar, byte space) { byte[] array; using (MemoryStream memoryStream = new MemoryStream(input.Length)) { for (int i = 0; i < input.Length; i++) { if (input[i] == space) { memoryStream.WriteByte(32); } else if (input[i] == escapeChar && i + 2 < input.Length) { i++; memoryStream.WriteByte(WWWTranscoder.Hex2Byte(input, i++)); } else { memoryStream.WriteByte(input[i]); } } array = memoryStream.ToArray(); } return array; } // Token: 0x06002D0A RID: 11530 RVA: 0x0003FA6C File Offset: 0x0003DC6C public static bool SevenBitClean(string s) { return WWWTranscoder.SevenBitClean(s, Encoding.UTF8); } // Token: 0x06002D0B RID: 11531 RVA: 0x0003FA8C File Offset: 0x0003DC8C public static bool SevenBitClean(string s, Encoding e) { return WWWTranscoder.SevenBitClean(e.GetBytes(s)); } // Token: 0x06002D0C RID: 11532 RVA: 0x0003FAB0 File Offset: 0x0003DCB0 public static bool SevenBitClean(byte[] input) { for (int i = 0; i < input.Length; i++) { if (input[i] < 32 || input[i] > 126) { return false; } } return true; } // Token: 0x04000899 RID: 2201 private static byte[] ucHexChars = WWWForm.DefaultEncoding.GetBytes("0123456789ABCDEF"); // Token: 0x0400089A RID: 2202 private static byte[] lcHexChars = WWWForm.DefaultEncoding.GetBytes("0123456789abcdef"); // Token: 0x0400089B RID: 2203 private static byte urlEscapeChar = 37; // Token: 0x0400089C RID: 2204 private static byte urlSpace = 43; // Token: 0x0400089D RID: 2205 private static byte[] urlForbidden = WWWForm.DefaultEncoding.GetBytes("@&;:<>=?\"'/\\!#%+$,{}|^[]`"); // Token: 0x0400089E RID: 2206 private static byte qpEscapeChar = 61; // Token: 0x0400089F RID: 2207 private static byte qpSpace = 95; // Token: 0x040008A0 RID: 2208 private static byte[] qpForbidden = WWWForm.DefaultEncoding.GetBytes("&;=?\"'%+_"); } }