private static void AddRawText(RichTextBox text_block, Paragraph par, string raw_text) { TextElementEnumerator elementEnumerator = StringInfo.GetTextElementEnumerator(raw_text); StringBuilder stringBuilder = new StringBuilder(); bool flag1 = elementEnumerator.MoveNext(); while (flag1) { string textElement1 = elementEnumerator.GetTextElement(); string hexString1 = BrowserNavigationService.ConvertToHexString(Encoding.BigEndianUnicode.GetBytes(textElement1)); if (hexString1 == "") { flag1 = elementEnumerator.MoveNext(); } else { bool flag2 = true; bool flag3 = BrowserNavigationService._flagsPrefixes.Contains(hexString1); int elementIndex = elementEnumerator.ElementIndex; if ((flag3 || BrowserNavigationService._modificatableSmiles.Contains(hexString1)) && elementEnumerator.MoveNext()) { string textElement2 = elementEnumerator.GetTextElement(); string hexString2 = BrowserNavigationService.ConvertToHexString(Encoding.BigEndianUnicode.GetBytes(textElement2)); if (hexString2 == "" && elementEnumerator.MoveNext()) { textElement2 = elementEnumerator.GetTextElement(); hexString2 = BrowserNavigationService.ConvertToHexString(Encoding.BigEndianUnicode.GetBytes(textElement2)); } if (hexString2 != "" && (flag3 || BrowserNavigationService._smilesModificators.Contains(hexString2))) { flag2 = false; hexString1 += hexString2; textElement1 += textElement2; } else { elementEnumerator.Reset(); elementEnumerator.MoveNext(); while (elementEnumerator.ElementIndex != elementIndex) { elementEnumerator.MoveNext(); } } } if (flag2) { BrowserNavigationService.CheckRelationsSmiles(ref hexString1, ref elementEnumerator, ref textElement1); } string name; Emoji.Dict.TryGetValue(hexString1, out name); if (name != null) { string text = stringBuilder.ToString(); stringBuilder = stringBuilder.Clear(); if (text != string.Empty) { ((PresentationFrameworkCollection <Inline>)par.Inlines).Add((Inline)BrowserNavigationService.GetRunWithStyle(text, text_block)); } ((PresentationFrameworkCollection <Inline>)par.Inlines).Add((Inline)BrowserNavigationService.GetImage(name)); } else { stringBuilder = stringBuilder.Append(textElement1); } flag1 = elementEnumerator.MoveNext(); } } string text1 = stringBuilder.ToString(); if (!(text1 != string.Empty)) { return; } ((PresentationFrameworkCollection <Inline>)par.Inlines).Add((Inline)BrowserNavigationService.GetRunWithStyle(text1, text_block)); }