├── README.md ├── .vs ├── mkdnSolution │ └── v14 │ │ └── .suo └── config │ └── applicationhost.config ├── MkdnViewer ├── Assets │ ├── StoreLogo.png │ ├── LockScreenLogo.scale-200.png │ ├── SplashScreen.scale-200.png │ ├── Square44x44Logo.scale-200.png │ ├── Wide310x150Logo.scale-200.png │ ├── Square150x150Logo.scale-200.png │ └── Square44x44Logo.targetsize-24_altform-unplated.png ├── MkdnViewer_TemporaryKey.pfx ├── ApplicationInsights.config ├── MkdnViewer.csproj.user ├── App.xaml ├── project.json ├── MainPage.xaml ├── Properties │ ├── AssemblyInfo.cs │ └── Default.rd.xml ├── Package.appxmanifest ├── MainPage.xaml.cs ├── App.xaml.cs └── MkdnViewer.csproj ├── LICENSE └── mkdnSolution.sln /README.md: -------------------------------------------------------------------------------- 1 | # MkdnViewer for Windows 10 2 | Markdown Viewer 3 | -------------------------------------------------------------------------------- /.vs/mkdnSolution/v14/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/options/MkdnViewer/master/.vs/mkdnSolution/v14/.suo -------------------------------------------------------------------------------- /MkdnViewer/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/options/MkdnViewer/master/MkdnViewer/Assets/StoreLogo.png -------------------------------------------------------------------------------- /MkdnViewer/MkdnViewer_TemporaryKey.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/options/MkdnViewer/master/MkdnViewer/MkdnViewer_TemporaryKey.pfx -------------------------------------------------------------------------------- /MkdnViewer/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/options/MkdnViewer/master/MkdnViewer/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /MkdnViewer/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/options/MkdnViewer/master/MkdnViewer/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /MkdnViewer/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/options/MkdnViewer/master/MkdnViewer/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /MkdnViewer/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/options/MkdnViewer/master/MkdnViewer/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /MkdnViewer/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/options/MkdnViewer/master/MkdnViewer/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /MkdnViewer/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/options/MkdnViewer/master/MkdnViewer/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /MkdnViewer/ApplicationInsights.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /MkdnViewer/MkdnViewer.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ShowAllFiles 5 | 6 | -------------------------------------------------------------------------------- /MkdnViewer/App.xaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /MkdnViewer/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "CommonMark.NET": "0.9.1", 4 | "Microsoft.ApplicationInsights": "1.0.0", 5 | "Microsoft.ApplicationInsights.PersistenceChannel": "1.0.0", 6 | "Microsoft.ApplicationInsights.WindowsApps": "1.0.0", 7 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0" 8 | }, 9 | "frameworks": { 10 | "uap10.0": {} 11 | }, 12 | "runtimes": { 13 | "win10-arm": {}, 14 | "win10-arm-aot": {}, 15 | "win10-x86": {}, 16 | "win10-x86-aot": {}, 17 | "win10-x64": {}, 18 | "win10-x64-aot": {} 19 | } 20 | } -------------------------------------------------------------------------------- /MkdnViewer/MainPage.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Myung Shin Kim 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /MkdnViewer/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Markdown Viewer")] 9 | [assembly: AssemblyDescription("Markdown Viewer")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MkdnViewer")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Version information for an assembly consists of the following four values: 18 | // 19 | // Major Version 20 | // Minor Version 21 | // Build Number 22 | // Revision 23 | // 24 | // You can specify all the values or you can default the Build and Revision Numbers 25 | // by using the '*' as shown below: 26 | // [assembly: AssemblyVersion("1.0.*")] 27 | [assembly: AssemblyVersion("1.0.0.0")] 28 | [assembly: AssemblyFileVersion("1.0.0.0")] 29 | [assembly: ComVisible(false)] -------------------------------------------------------------------------------- /MkdnViewer/Properties/Default.rd.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /mkdnSolution.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MkdnViewer", "MkdnViewer\MkdnViewer.csproj", "{28682CF0-E98E-47D7-89A6-E39C68FC61B9}" 7 | EndProject 8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C18F7AFF-862B-4588-8B19-6D686713B013}" 9 | ProjectSection(SolutionItems) = preProject 10 | README.md = README.md 11 | EndProjectSection 12 | EndProject 13 | Global 14 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 15 | Debug|ARM = Debug|ARM 16 | Debug|x64 = Debug|x64 17 | Debug|x86 = Debug|x86 18 | Release|ARM = Release|ARM 19 | Release|x64 = Release|x64 20 | Release|x86 = Release|x86 21 | EndGlobalSection 22 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 23 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Debug|ARM.ActiveCfg = Debug|ARM 24 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Debug|ARM.Build.0 = Debug|ARM 25 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Debug|ARM.Deploy.0 = Debug|ARM 26 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Debug|x64.ActiveCfg = Debug|x64 27 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Debug|x64.Build.0 = Debug|x64 28 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Debug|x64.Deploy.0 = Debug|x64 29 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Debug|x86.ActiveCfg = Debug|x86 30 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Debug|x86.Build.0 = Debug|x86 31 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Debug|x86.Deploy.0 = Debug|x86 32 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Release|ARM.ActiveCfg = Release|ARM 33 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Release|ARM.Build.0 = Release|ARM 34 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Release|ARM.Deploy.0 = Release|ARM 35 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Release|x64.ActiveCfg = Release|x64 36 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Release|x64.Build.0 = Release|x64 37 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Release|x64.Deploy.0 = Release|x64 38 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Release|x86.ActiveCfg = Release|x86 39 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Release|x86.Build.0 = Release|x86 40 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9}.Release|x86.Deploy.0 = Release|x86 41 | EndGlobalSection 42 | GlobalSection(SolutionProperties) = preSolution 43 | HideSolutionNode = FALSE 44 | EndGlobalSection 45 | EndGlobal 46 | -------------------------------------------------------------------------------- /MkdnViewer/Package.appxmanifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Markdown Viewer 7 | myungkim 8 | Assets\StoreLogo.png 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | Markdown 33 | Markdown File 34 | 35 | .md 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /MkdnViewer/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using CommonMark; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.IO; 5 | using System.Linq; 6 | using System.Runtime.InteropServices.WindowsRuntime; 7 | using System.Threading.Tasks; 8 | using Windows.Foundation; 9 | using Windows.Foundation.Collections; 10 | using Windows.Storage; 11 | using Windows.Storage.Pickers; 12 | using Windows.Storage.Streams; 13 | using Windows.UI.Xaml; 14 | using Windows.UI.Xaml.Controls; 15 | using Windows.UI.Xaml.Controls.Primitives; 16 | using Windows.UI.Xaml.Data; 17 | using Windows.UI.Xaml.Input; 18 | using Windows.UI.Xaml.Media; 19 | using Windows.UI.Xaml.Navigation; 20 | 21 | // The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 22 | 23 | namespace MkdnViewer 24 | { 25 | /// 26 | /// An empty page that can be used on its own or navigated to within a Frame. 27 | /// 28 | public sealed partial class MainPage : Page 29 | { 30 | public MainPage() 31 | { 32 | this.InitializeComponent(); 33 | } 34 | 35 | /// 36 | /// Open App Button Event Handler 37 | /// 38 | /// 39 | /// 40 | private async void OpenAppBarButton_Click(object sender, RoutedEventArgs e) 41 | { 42 | FileOpenPicker openPicker = new FileOpenPicker(); 43 | openPicker.FileTypeFilter.Add(".md"); 44 | 45 | try 46 | { 47 | StorageFile mkdnFile = await openPicker.PickSingleFileAsync(); 48 | if (mkdnFile != null) 49 | { 50 | LoadMkdnFile(mkdnFile); 51 | } 52 | } 53 | catch 54 | { 55 | // Nothing to do. It just swallows all exception regarding user experience 56 | } 57 | } 58 | 59 | /// 60 | /// Load converted html with markdown into webview control 61 | /// 62 | /// 63 | private async void LoadMkdnFile(StorageFile mkdnFile) 64 | { 65 | webView.NavigateToString(await GetHtmlContentFromMkdnFile(mkdnFile)); 66 | } 67 | 68 | /// 69 | /// Convert makrdown file to html string 70 | /// 71 | /// makrdown file 72 | /// 73 | private async Task GetHtmlContentFromMkdnFile(StorageFile mkdnFile) 74 | { 75 | return CommonMarkConverter.Convert(await FileIO.ReadTextAsync(mkdnFile)); 76 | } 77 | 78 | /// Deprecated 79 | /// 80 | /// Convert markdown file to html file in passed folder(as folder param) 81 | /// 82 | /// Folder location to save html file 83 | /// Markdown file to convert 84 | /// unique html file path using GUID and CreationCollisionOption.GenerateUniqueName. 85 | /// it could be null if fails to create new file 86 | private async Task CreateHtmlFileFromMkdnFile(StorageFolder folder, StorageFile mkdnFile) 87 | { 88 | StorageFile htmlFile = await folder.CreateFileAsync(Guid.NewGuid().ToString(), CreationCollisionOption.GenerateUniqueName); 89 | 90 | using (var mkdnReadStream = new StreamReader(await mkdnFile.OpenStreamForReadAsync())) 91 | using (var htmlWriteStream = new StreamWriter(await htmlFile.OpenStreamForWriteAsync())) 92 | { 93 | CommonMark.CommonMarkConverter.Convert(mkdnReadStream, htmlWriteStream); 94 | } 95 | 96 | return htmlFile?.Path; 97 | } 98 | 99 | private const string s_suggestedFileName = "untitled.html"; 100 | private async void ExportAppBarButton_Click(object sender, RoutedEventArgs e) 101 | { 102 | FileSavePicker savePicker = new FileSavePicker(); 103 | savePicker.SuggestedFileName = s_suggestedFileName; 104 | savePicker.FileTypeChoices.Add("HTML", new List() { ".html" }); 105 | savePicker.FileTypeChoices.Add("HTM", new List() { ".htm" }); 106 | StorageFile htmlFile = await savePicker.PickSaveFileAsync(); 107 | } 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /MkdnViewer/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Runtime.InteropServices.WindowsRuntime; 6 | using Windows.ApplicationModel; 7 | using Windows.ApplicationModel.Activation; 8 | using Windows.Foundation; 9 | using Windows.Foundation.Collections; 10 | using Windows.UI.Xaml; 11 | using Windows.UI.Xaml.Controls; 12 | using Windows.UI.Xaml.Controls.Primitives; 13 | using Windows.UI.Xaml.Data; 14 | using Windows.UI.Xaml.Input; 15 | using Windows.UI.Xaml.Media; 16 | using Windows.UI.Xaml.Navigation; 17 | 18 | namespace MkdnViewer 19 | { 20 | /// 21 | /// Provides application-specific behavior to supplement the default Application class. 22 | /// 23 | sealed partial class App : Application 24 | { 25 | /// 26 | /// Initializes the singleton application object. This is the first line of authored code 27 | /// executed, and as such is the logical equivalent of main() or WinMain(). 28 | /// 29 | public App() 30 | { 31 | Microsoft.ApplicationInsights.WindowsAppInitializer.InitializeAsync( 32 | Microsoft.ApplicationInsights.WindowsCollectors.Metadata | 33 | Microsoft.ApplicationInsights.WindowsCollectors.Session); 34 | this.InitializeComponent(); 35 | this.Suspending += OnSuspending; 36 | } 37 | 38 | /// 39 | /// Invoked when the application is launched normally by the end user. Other entry points 40 | /// will be used such as when the application is launched to open a specific file. 41 | /// 42 | /// Details about the launch request and process. 43 | protected override void OnLaunched(LaunchActivatedEventArgs e) 44 | { 45 | 46 | #if DEBUG 47 | if (System.Diagnostics.Debugger.IsAttached) 48 | { 49 | this.DebugSettings.EnableFrameRateCounter = true; 50 | } 51 | #endif 52 | 53 | Frame rootFrame = Window.Current.Content as Frame; 54 | 55 | // Do not repeat app initialization when the Window already has content, 56 | // just ensure that the window is active 57 | if (rootFrame == null) 58 | { 59 | // Create a Frame to act as the navigation context and navigate to the first page 60 | rootFrame = new Frame(); 61 | 62 | rootFrame.NavigationFailed += OnNavigationFailed; 63 | 64 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) 65 | { 66 | //TODO: Load state from previously suspended application 67 | } 68 | 69 | // Place the frame in the current Window 70 | Window.Current.Content = rootFrame; 71 | } 72 | 73 | if (rootFrame.Content == null) 74 | { 75 | // When the navigation stack isn't restored navigate to the first page, 76 | // configuring the new page by passing required information as a navigation 77 | // parameter 78 | rootFrame.Navigate(typeof(MainPage), e.Arguments); 79 | } 80 | // Ensure the current window is active 81 | Window.Current.Activate(); 82 | } 83 | 84 | /// 85 | /// Invoked when Navigation to a certain page fails 86 | /// 87 | /// The Frame which failed navigation 88 | /// Details about the navigation failure 89 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e) 90 | { 91 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName); 92 | } 93 | 94 | /// 95 | /// Invoked when application execution is being suspended. Application state is saved 96 | /// without knowing whether the application will be terminated or resumed with the contents 97 | /// of memory still intact. 98 | /// 99 | /// The source of the suspend request. 100 | /// Details about the suspend request. 101 | private void OnSuspending(object sender, SuspendingEventArgs e) 102 | { 103 | var deferral = e.SuspendingOperation.GetDeferral(); 104 | //TODO: Save application state and stop any background activity 105 | deferral.Complete(); 106 | } 107 | 108 | /// 109 | /// Invoked when a user double click .mk file 110 | /// create new window and open file if app is running state 111 | /// 112 | /// 113 | protected override void OnFileActivated(FileActivatedEventArgs args) 114 | { 115 | // Todo 116 | } 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /MkdnViewer/MkdnViewer.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | x86 7 | {28682CF0-E98E-47D7-89A6-E39C68FC61B9} 8 | AppContainerExe 9 | Properties 10 | MkdnViewer 11 | MkdnViewer 12 | en-US 13 | UAP 14 | 10.0.10240.0 15 | 10.0.10240.0 16 | 14 17 | true 18 | 512 19 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 20 | MkdnViewer_TemporaryKey.pfx 21 | 22 | 23 | true 24 | bin\ARM\Debug\ 25 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 26 | ;2008 27 | full 28 | ARM 29 | false 30 | prompt 31 | true 32 | 33 | 34 | bin\ARM\Release\ 35 | TRACE;NETFX_CORE;WINDOWS_UWP 36 | true 37 | ;2008 38 | pdbonly 39 | ARM 40 | false 41 | prompt 42 | true 43 | true 44 | 45 | 46 | true 47 | bin\x64\Debug\ 48 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 49 | ;2008 50 | full 51 | x64 52 | false 53 | prompt 54 | true 55 | 56 | 57 | bin\x64\Release\ 58 | TRACE;NETFX_CORE;WINDOWS_UWP 59 | true 60 | ;2008 61 | pdbonly 62 | x64 63 | false 64 | prompt 65 | true 66 | true 67 | 68 | 69 | true 70 | bin\x86\Debug\ 71 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 72 | ;2008 73 | full 74 | x86 75 | false 76 | prompt 77 | true 78 | 79 | 80 | bin\x86\Release\ 81 | TRACE;NETFX_CORE;WINDOWS_UWP 82 | true 83 | ;2008 84 | pdbonly 85 | x86 86 | false 87 | prompt 88 | true 89 | true 90 | 91 | 92 | 93 | 94 | PreserveNewest 95 | 96 | 97 | 98 | 99 | 100 | App.xaml 101 | 102 | 103 | MainPage.xaml 104 | 105 | 106 | 107 | 108 | 109 | Designer 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | MSBuild:Compile 126 | Designer 127 | 128 | 129 | MSBuild:Compile 130 | Designer 131 | 132 | 133 | 134 | 14.0 135 | 136 | 137 | false 138 | 139 | 140 | 147 | -------------------------------------------------------------------------------- /.vs/config/applicationhost.config: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | 22 | 23 | 50 | 51 | 52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 | 61 | 62 | 63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | 81 |
82 |
83 | 84 |
85 |
86 |
87 |
88 |
89 |
90 | 91 |
92 |
93 |
94 |
95 |
96 | 97 |
98 |
99 |
100 | 101 |
102 |
103 | 104 |
105 |
106 | 107 |
108 |
109 |
110 | 111 | 112 |
113 |
114 |
115 |
116 |
117 |
118 | 119 |
120 |
121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | --------------------------------------------------------------------------------